コンテンツライフサイクル管理
コンテンツライフサイクル管理では運用クライアントを更新する前にパッケージをカスタマイズおよびテストできます。 これは、限られたメンテナンスウィンドウ中に更新を適用する必要がある場合に特に役立ちます。
コンテンツライフサイクル管理では、ソフトウェアチャンネルをソースとして選択し、必要に応じて環境に合わせて調整して、運用クライアントにインストールする前に徹底的にテストすることがでます。
ベンダチャンネルを直接変更することはできませんが、パッケージとカスタムパッチを追加または削除することで、それらのチャンネルのクローンを作成し、クローンを変更することができます。 これらのクローンチャンネルをテストクライアントに割り当てて、クライアントが期待どおりに動作することを確認できます。
|
By default, cloned vendor channels match the original vendor channel and automatically select the dependencies. You can disable the automatic selection for cloned channels by adding the following option in java.cloned_channel_auto_selection = false |
次に、すべてのテストに合格すると、クローンチャンネルを運用サーバにプロモートできます。
これは、ソフトウェアチャンネルがライフサイクルで移動できる一連の環境を通じて実現されます。 ほとんどの環境ライフサイクルには、少なくともテスト環境と運用環境が含まれていますが、必要な数の環境を持つことができます。
このセクションでは、基本的なコンテンツライフサイクル手順、および使用可能なフィルタについて説明します。 より具体的な例については、コンテンツライフサイクル管理の例を参照してください。
1. コンテンツライフサイクルプロジェクトの作成
コンテンツライフサイクルを設定するには、プロジェクトから開始する必要があります。 プロジェクトでは、ソフトウェアチャンネルソース、パッケージの検索に使用されるフィルタ、およびビルド環境について定義します。
SUSE Multi-Linux Manager Web UIで、に移動し、プロジェクトの作成をクリックします。
In the
Labelfield, enter a label for your project. TheLabelfield only accepts lowercase letters, numbers, periods, hyphens, and underscores.In the
Namefield, enter a descriptive name for your project.作成ボタンをクリックして、プロジェクトを作成し、プロジェクトページに戻ります。
Attach/Detach Sources(ソースの割り当て/取り外し)をクリックします。
In the
Sourcesdialog, select the source type, and select a base channel for your project. チャンネルが必須か推奨されるかに関する情報を含め、選択したベースチャンネルで使用可能な子チャンネルが表示されます。必要な子チャンネルをオンにし、保存をクリックして、プロジェクトページに戻ります。 選択したソフトウェアチャンネルが表示されているはずです。
フィルタの割り当て/取り外しをクリックします。
In the
Filtersdialog, select the filters you want to attach to the project. 新しいフィルタを作成するには、新しいフィルタの作成をクリックします。環境の追加をクリックします。
In the
Environment Lifecycledialog, give the first environment a name, a label, and a description, and click Save. TheLabelfield only accepts lowercase letters, numbers, periods, hyphens, and underscores.ライフサイクルのすべての環境が完了するまで、環境の作成を続行します。 You can select the order of the environments in the lifecycle by selecting an environment in the
Insert beforefield when you create it.
2. フィルタタイプ
SUSE Multi-Linux Managerでは、プロジェクトの構築に使用するコンテンツを制御するために、さまざまなタイプのフィルタを作成できます。 フィルタを使用すると、ビルドに含めるパッケージまたはビルドから除外するパッケージを選択できます。 たとえば、すべてのカーネルパッケージを除外したり、一部のパッケージの特定のリリースのみを含めることができます。
サポートされているフィルタは次のとおりです。
-
パッケージのフィルタリング
-
by name(名前別)
-
by name, epoch, version, release, and architecture(名前、エポック、バージョン、リリース、およびアーキテクチャ別)
-
by provided name(指定された名前別)
-
-
パッチフィルタリング
-
by advisory name(アドバイザリ名別)
-
by advisory type(アドバイザリタイプ別)
-
by synopsis(概要別)
-
by keyword(キーワード別)
-
by date(日付別)
-
by affected package(影響を受けるパッケージ別)
-
-
モジュール
-
by stream(ストリーム別)
-
|
パッケージの依存は、コンテンツのフィルタリング中には解決されません。 |
フィルタで使用できるマッチャーは複数あります。 使用できるマッチャーは、選択したフィルタ タイプによって異なります。
使用できるマッチャーは次のとおりです。
-
含む
-
一致(正規表現の形式を取る必要があります)
-
等しい
-
新しい
-
新しいか等しい
-
古いか等しい
-
古い
-
新しいか等しい
2.1. Filter rule parameter
Each filter has a rule parameter that can be set to either Allow or Deny. The filters are processed like this:
-
If a package or patch satisfies a
Denyfilter, it is excluded from the result. -
If a package or patch satisfies an
Allowfilter, it is included in the result (even if it was excluded by aDenyfilter).Allowfilters for packages only operate on package filters andAllowfilters for patches only operate on patch filters. This means with a package filter you cannot add packages back in that were filtered out through patch filters or vice versa for patches that where filtered out through package filters.
This behavior is useful when you want to exclude large number of packages or patches using a general Deny filter and "cherry-pick" specific packages or patches with specific Allow filters.
|
コンテンツフィルタは組織内でグローバルなものであり、プロジェクト間で共有できます。 |
|
プロジェクトにすでに構築されたソースが含まれている場合、環境を追加すると、既存のコンテンツが自動的に入力されます。 コンテンツは、サイクルの以前の環境から引き出されます(存在していた場合)。 以前の環境がない場合は、プロジェクトソースが再度構築されるまで空のままになります。 |
3. フィルタテンプレート
いくつかの一般的なシナリオでフィルタの作成を支援するため、SUSE Multi-Linux Managerにはフィルタテンプレートが用意されています。 これらのテンプレートを適用すると、特定のユースケースに合わせてカスタマイズされた一連のフィルタを事前に作成できます。
このセクションでは、使用可能なテンプレートとその使用方法について説明します。
3.1. SUSE製品に基づくライブパッチ処理
ライブパッチ処理を含むプロジェクトでは、ライブパッチパッケージのみがクライアントに更新として提供されるように、定期的な将来のカーネルパッケージを除外する必要があります。 一方で、システムの整合性を維持するために、すでにインストールされている通常のカーネルパッケージを含める必要があります。
このテンプレートを適用すると、この動作を実現するために必要な3つのフィルタが作成されます。
-
Allow patches that contain
kernel-defaultpackage equal to a base kernel version -
Deny patches that contain
reboot_suggestedkeyword -
Deny patches that contain a package which provides the name
installhint(reboot-needed)
ライブパッチ処理プロジェクトの設定方法の詳細については、administration:content-lifecycle-examples.adoc#exclude-higher-kernel-versionを参照してください。
SUSE Multi-Linux Manager Web UIで、に移動して、Create Filter(フィルタの作成)をクリックします。
ダイアログで、テンプレートを使用するをクリックします。それに応じて入力が変更されます。
In the
Prefixfield, type a name prefix. This value will be prepended to the name of every individual filter created by the template. If the template is being applied in the context of a project, this field will be prefilled with the project label.In the
Templatefield, selectLive patching based on a SUSE product.In the
Productfield, select the product you wish to set up live patching for.In the
Kernelfield, select a kernel version from the list of versions available in the selected product. The filter to deny the later regular kernel patches will be based on this version.保存をクリックして、フィルタを作成します。
に移動して、プロジェクトを選択します。
フィルタの割り当て/取り外しをクリックします。
指定したプレフィクスを持つフィルタを3つ選択し、保存をクリックします。
3.2. システムに基づくライブパッチ処理
特定の登録済みシステムにインストールされているカーネルバージョンに基づいてライブパッチ処理プロジェクトを設定する場合、「システムに基づくライブパッチ処理」テンプレートを使用できます。
このテンプレートを適用すると、この動作を実現するために必要な3つのフィルタが作成されます。
-
Allow patches that contain
kernel-defaultpackage equal to a base kernel version -
Deny patches that contain
reboot_suggestedkeyword -
Deny patches that contain a package which provides the name
installhint(reboot-needed)
ライブパッチ処理プロジェクトの設定方法の詳細については、administration:content-lifecycle-examples.adoc#exclude-higher-kernel-versionを参照してください。
SUSE Multi-Linux Manager Web UIで、に移動して、Create Filter(フィルタの作成)をクリックします。
ダイアログで、テンプレートを使用するをクリックします。 それに応じて入力が変更されます。
In the
Prefixfield, type a name prefix. This value will be prepended to the name of every filter created by the template. If the template is being applied in the context of a project, this field will be prefilled with the project label.In the
Templatefield, selectLive patching based on a specific system.In the
Systemfield, select a system from the list, or start typing a system name to narrow down the options.In the
Kernelfield, select a kernel version from the list of versions installed in the selected system. The filter to deny the later regular kernel patches will be based on this version.保存をクリックして、フィルタを作成します。
に移動して、プロジェクトを選択します。
フィルタの割り当て/取り外しをクリックします。
指定したプレフィクスを持つフィルタを3つ選択し、保存をクリックします。
3.3. デフォルトのAppStreamモジュール
プロジェクトに含まれているモジュラーリポジトリですべてのモジュールを使用できるようにする場合は、このフィルタテンプレートを使用してモジュールを自動的に追加できます。
このテンプレートを適用すると、モジュールごとにAppStreamフィルタとそのデフォルトストリームが作成されます。
このプロセスがプロジェクトのページから実行された場合、フィルタは自動的にプロジェクトに追加されます。追加されない場合は、作成されたフィルタをに一覧表示し、必要に応じて任意のプロジェクトに追加できます。
個々のフィルタを編集して別のモジュールストリームを選択したり、ターゲットリポジトリからそのモジュールを除外するために完全に削除したりできます。
|
すべてのモジュールストリームが相互に互換性があるわけではないため、個々のストリームを変更すると、モジュール間依存関係を正常に解決できない可能性があります。 この場合、プロジェクトの詳細ページのフィルタペインに問題を説明するエラーが表示され、すべてのモジュールの選択が互換性を持つようになるまでビルドボタンは無効になります。 |
|
Red Hat Enterprise Linux 9以降、モジュールには定義済みのデフォルトストリームがありません。 したがって、Red Hat Enterprise Linux 9のソースでこのテンプレートを使用しても効果はありません。 |
AppStreamリポジトリをコンテンツライフサイクル管理で設定する方法の詳細については、administration:content-lifecycle-examples.adoc#appstream-filtersを参照してください。
SUSE Multi-Linux ManagerのWeb UIで、に移動し、プロジェクトを選択します。
In the
Filterssection, click Attach/Detach Filters, and then click Create New Filter.ダイアログで、テンプレートを使用するをクリックします。 それに応じて入力が変更されます。
In the
Prefixfield, type a name prefix. This value will be prepended to the name of every filter created by the template. If the template is being applied in the context of a project, this field will be prefilled with the project label.In the
Templatefield, selectAppStream modules with defaults.In the
Channelfield, select a modular channel to get the modules from. In this dropdown, only the modular channels are displayed.保存をクリックして、フィルタを作成します。
Scroll to the
Filterssection to see the newly attached AppStream filters.個々のフィルタを編集/削除して、ニーズに合わせてプロジェクトを調整できます。
4. コンテンツライフサイクルプロジェクトの構築
プロジェクトを作成し、環境を定義し、ソースとフィルタを割り当てたら、初めてプロジェクトを構築できます。
構築によって、割り当てられたソースにフィルタが適用され、プロジェクトの最初の環境にそれらが複製されます。
You can use the same vendor channels as sources for multiple content projects. In this case, SUSE Multi-Linux Manager does not create new patch clones for each cloned channel. Instead, a single patch clone is shared between all of your cloned channels. This can cause problems if a vendor modifies a patch; for example, if the patch is retracted, or the packages within the patch are changed. When you build one of the content projects, all the channels that share the cloned patch are synchronized with the original by default, even if the channels are in other environments of your content project, or other content project channels in your organization. You can change this behavior by turning off automatic patch synchronization in your organization settings. To manually synchronize the patch later for all channels sharing the patch, navigate to , click the channel you want to synchronize and navigate to the Sync subtab. Even manual patch synchronization affects all organization channels sharing the patch.
SUSE Multi-Linux Manager Web UIで、に移動し、構築するプロジェクトを選択します。
プロジェクトを構築する前に、利用可能な環境があることを確認してください。
割り当てられたソースとフィルタを確認し、ビルドをクリックします。
このビルドの変更または更新を説明するバージョンメッセージを提供します。
You can monitor build progress in the
Environment Lifecyclesection.
ビルドが完了すると、環境バージョンが1つ増え、ソフトウェアチャンネルなどのビルドソースをクライアントに割り当てることができます。
5. 環境のプロモート
プロジェクトが構築されると、構築されたソースを順次、環境にプロモートできます。
SUSE Multi-Linux Manager Web UIで、に移動し、作業するプロジェクトを選択します。
In the
Environment Lifecyclesection, locate the environment to promote to its successor, and click Promote.You can monitor build progress in the
Environment Lifecyclesection.
6. 環境にクライアントを割り当てる
When you build and promote content lifecycle projects, SUSE Multi-Linux Manager creates a tree of software channels. To add clients to the environment, assign the base and child software channels to your client using in the System Details page for the client.
|
新たに追加されたクローンチャンネルはクライアントに自動的に割り当てられません。 ソースを追加またはプロモートする場合は、チャンネル割り当てを手動で確認して更新する必要があります。 自動割り当ては、今後のバージョンでSUSE Multi-Linux Managerに追加される予定です。 |