カスタムチャンネル

カスタムチャンネルを使用すると、クライアントを更新するために使用できる、独自のソフトウェアパッケージとリポジトリを作成できます。 また、環境内でサードパーティベンダが提供するソフトウェアを使用することもできます。

このセクションでは、カスタムチャンネルを作成、管理、および削除する方法について詳細に説明します。 カスタムチャンネルを作成および管理できるようにするには、管理者権限が必要です。

1. カスタムチャンネルおよびリポジトリの作成

カスタムチャンネルを作成する前に、関連付けるベースチャンネルと、コンテンツに使用するリポジトリを決定します。

クライアントシステムにインストールする必要があるカスタムソフトウェアパッケージがある場合は、カスタム子チャンネルを作成して管理できます。 システムにチャンネルを割り当てる前に、SUSE Manager Web UIでチャンネルを作成し、パッケージのリポジトリを作成する必要があります。

クライアントシステムと互換性のないパッケージを含む子チャンネルを作成しないでください。

ベンダによって提供されたパッケージを使用する場合は、ベースチャンネルとしてベンダチャンネルを選択できます。 または[なし]を選択して、カスタムチャンネルをベースチャンネルにします。

プロシージャ: カスタムチャンネルの作成
  1. SUSE Manager Web UIで、ソフトウェア  管理  チャンネルに移動して、チャンネルの作成をクリックします。

  2. ソフトウェアチャンネルの作成]ページで、チャンネルに名前(たとえば、My Tools SLES 15 SP1 x86_64)、およびラベル(たとえば、my-tools-sles15sp1-x86_64)を付けます。 ラベルにはスペースまたは大文字を含めないでください。

  3. 親チャンネル]ドロップダウンで、関連するベースチャンネル(たとえば、SLE-Product-SLES15-SP1-Pool for x86_64)を選択します。 パッケージに互換性のある親チャンネルを選択していることを確認します。

  4. アーキテクチャ]ドロップダウンで、適切なハードウェアアーキテクチャ(たとえば、x86_64)を選択します。

  5. ご使用の環境に応じて、連絡先の詳細、チャンネルアクセス制御、およびGPGフィールドに追加情報を入力します。

  6. チャンネルの作成をクリックします。

カスタムチャンネルでは、追加のセキュリティ設定が必要になる場合があります。 多くのサードパーティベンダは、GPGを使用してパッケージをセキュリティ保護しています。 カスタムチャンネルでGPGで保護されたパッケージを使用する場合は、メタデータの署名に使用されたGPGキーを信頼する必要があります。 次に、[メタデータは署名されていますか?]チェックボックスをオンにして、パッケージメタデータを信頼できるGPGキーと照合します。

リモートチャンネルおよびリポジトリがGPGキーで署名されている場合、これらのGPGキーをインポートして信頼することができます。 たとえば、SUSE Managerサーバのコマンドラインからspacewalk-repo-syncを実行します。

/usr/bin/spacewalk-repo-sync -c <channellabelname> -t yum

基盤となるzypperコールは、利用可能な場合はキーをインポートします。 Web UIはこの機能を提供していません。

これは、ミラーするリポジトリが特別な方法で設定されていて、署名の横のリポジトリに「キー」が提供されている場合にのみ機能します 。これは、Open Build Service (OBS)によって生成されたすべてのリポジトリに該当します。その他のリポジトリについては、特別な準備ステップが必要です(以下を参照)。

デフォルトでは、新しいチャンネルを作成する際に[GPGチェックの有効化]フィールドがオンになっています。 チャンネルにカスタムパッケージとアプリケーションを追加する場合は、このフィールドをオフにして、署名されていないパッケージをインストールできるようにしてください。 パッケージが信頼されていないソースからのものである場合、GPGチェックを無効にするとセキュリティリスクが生じます。

リポジトリが有効なソフトウェアリポジトリである場合は、Web UIを使用してSUSE Managerに追加することのみできます。 必要なリポジトリメタデータが使用できることを事前に確認してください。 これに関しては、createreporepreproなどのツールが便利です。 mgrpushはリポジトリを作成せずに単一のRPMをチャンネルにプッシュするのに役立ちます。 詳細については、createrepo_cおよびrepreproのマニュアルページを参照してください。

プロシージャ: ソフトウェアリポジトリの追加
  1. SUSE Manager Web UIで、ソフトウェア  管理  リポジトリに移動し、リポジトリの作成をクリックします。

  2. リポジトリの作成]ページで、リポジトリにラベル(たとえば、my-tools-sles15sp1-x86_64-repo)を付けます。

  3. リポジトリURL]フィールドに、repodataファイル(たとえば、file:///opt/mytools/)を含むディレクトリへのパスを指定します。 このフィールドでは、任意の有効なアドレス指定プロトコルを使用できます。

  4. メタデータは署名されていますか?]チェックボックスをオフにします。

  5. オプション: リポジトリでクライアント証明書認証が必要な場合は、SSLフィールドに入力します。

  6. リポジトリの作成をクリックします。

先に示したプロシージャは、ミラーリングするリポジトリが署名の横にあるリポジトリに「キー」を提供する場合にのみ機能します。これはOBSによって生成されたすべてのリポジトリに該当しますが、通常、OBSによって提供されていないオペレーティングシステムの他のリポジトリには該当しません。

使用するリポジトリにGPGキーがない場合は、自分でGPGキーを指定し、GPGキーをキーリングに手動でインポートできます。gpgコマンドラインツールを使用して/var/lib/spacewalk/gpgdirキーリングにキーをインポートすると、永続的に保存されます。chroot環境が消去されても、キーは保持されます。

プロシージャ: GPGキーを使用してソフトウェアリポジトリを作成する
  1. キーをキーリングにインポートするコマンドは次のとおりです。

    mgradm gpg add /path/to/gpg.key

uyuni_suiteuyuni_component、およびuyuni_archのクエリパラメータを使用して、Debianの非フラットリポジトリを追加します。

uyuni_suite

必須です。 Debianのドキュメントでは、これはdistributionとも呼ばれています。 このパラメータでは、aptソースを指定します。 このパラメータを指定しない場合は、元のアプローチが使用されます。 パラメータの末尾が/の場合、リポジトリはフラットとして識別されます。

uyuni_component

オプションです。このパラメータは1つのコンポーネントのみを指定できます。コンポーネントを一覧にすることはできません。aptソースエントリでは複数のコンポーネントを指定できますが、Uyuniでは指定できません。代わりに、コンポーネントごとに個別のリポジトリを作成する必要があります。

uyuni_arch

オプションです。 省略すると、データベースからチャンネルのSQLクエリを使用してアーキテクチャ名が計算されます。 チャンネルのアーキテクチャと一致しない場合は、明示的にuyuni_archを指定します(アーキテクチャの命名があいまいな場合があります)。

ここにいくつかの例があります。

Table 1. Debian非フラットリポジトリマッピング
タイプ ソース行 / URL

apt ソース行

deb https://pkg.jenkins.io/debian-stable binary/

URLマッピング

https://pkg.jenkins.io/debian-stable?uyuni_suite=binary/

 

aptソース行

deb https://deb.debian.org/debian/dists stable main

URLマッピング

https://deb.debian.org/debian/dists?uyuni_suite=stable&uyuni_component=main

Debianリポジトリ定義フォーマットに関する情報はこちらをご覧ください。この情報は、https://wiki.debian.org/DebianRepository/Format#Overviewに基づいています。

リポジトリ定義フォーマットは次のとおりです。

deb uri suite [コンポーネント1] [コンポーネント2] [...]

例:

deb https://deb.debian.org/debian/dists stable main

または

deb https://pkg.jenkins.io/debian-stable binary/

スイートコンポーネントのペアごとに、仕様ではベースURL + suite + componentに基づいて計算される個別のURLを定義しています。

プロシージャ: リポジトリをチャンネルに割り当てる
  1. ソフトウェア  管理  チャンネルに移動して、新たに作成されたカスタムチャンネルの名前をクリックし、新しいリポジトリをカスタムチャンネルに割り当てます。

  2. リポジトリ]タブに移動し、チャンネルに割り当てるリポジトリがオンになっていることを確認し、リポジトリの更新をクリックします。

  3. デフォルトでは、同期プロセスはすぐに開始されます。

チャンネルの同期の詳細については、カスタムチャンネル同期を参照してください。

プロシージャ: アクティベーションキーへのカスタムチャンネルの追加
  1. SUSE Manager Web UIで、システム  アクティベーションキーに移動して、カスタムチャンネルを追加するキーを選択します。

  2. 詳細]タブの[子チャンネル]リストで、関連付けるチャンネルを選択します。 必要に応じて、複数のチャンネルを選択できます。

  3. アクティベーションキーの更新をクリックします。

2. カスタムチャンネル同期

重要な更新を見逃さないようにするため、SUSEでは、カスタムチャンネルをリモートリポジトリの変更に合わせて最新の状態に保つことをお勧めします。

デフォルトでは、作成したすべてのカスタムチャンネルに対して同期が自動的に行われます。特に、次のことが発生します。

  • UIから、またはspacewalk-common-channelsを使用して、リポジトリをチャンネルに追加した後

  • 毎日のタスクmgr-sync-refresh-defaultの一部として、すべてのカスタムおよびベンダチャンネルを同期します。

このデフォルトの動作を無効にするには、/etc/rhn/rhn.confに以下を設定します。

java.unify_custom_channel_management = 0

このプロパティをオフにすると、同期は自動的に実行されません。カスタムチャンネルを最新の状態に保つには、次の操作を行う必要があります。

  • 同期] タブに移動し、今すぐ同期をクリックして手動で同期し、

  • リポジトリ]タブから自動同期スケジュールを設定します。

プロセス開始時には、チャンネルの同期が終了したかどうかを確認するいくつかの方法があります。

  • SUSE ManagerのWeb UIで、管理  セットアップウィザードに移動し、[製品]タブを選択します。 このダイアログには、同期中の各製品の完了バーが表示されます。

  • SUSE ManagerのWeb UIで、ソフトウェア  管理  チャンネルに移動し、リポジトリに関連付けられているチャンネルをクリックします。 リポジトリ  同期タブに移動します。リポジトリ名の横に[同期状態]が表示されます。

  • コマンドプロンプトで同期ログファイルを確認します。

    tail -f /var/log/rhn/reposync/<channel-label>.log

    同期の進行中に各子チャンネルは独自のログを生成します。 ベースチャンネルと子チャンネルのすべてのログファイルを確認して、同期が完了していることを確認する必要があります。

次のカスタムチャンネル同期オプションが利用できます。

リポジトリから削除されたチャンネル内のパッケージを保持する

これにより、strictモードがオフになります。

エラータを同期しない

パッチを同期しません。

最新パッケージのみ同期する

最新のパッケージバージョンのみを同期します。

キックスタート可能なツリーの作成

このオプションは、Kickstartによる自動インストール用にディレクトリツリーを準備します。

エラーが発生したら終了する

エラーが発生した場合、同期を停止します。

これらのオプションはチャンネルごとに永続的に保存されます。今すぐ同期ボタンをクリックした場合も、同期を実行する前にチャンネルオプションが保存されます。

3. カスタムチャンネルへのパッケージとパッチの追加

既存のチャンネルからクローンを作成せずに新しいカスタムチャンネルを作成する場合、そのチャンネルにはパッケージやパッチは含まれません。 SUSE Manager Web UIを使用して、必要なパッケージとパッチを追加できます。

カスタムチャンネルには、クローンまたはカスタムのパッケージまたはパッチのみを含めることができ、チャンネルの基本アーキテクチャに一致する必要があります。 カスタムチャンネルに追加されたパッチは、チャンネルに存在するパッケージに適用する必要があります。

プロシージャ: カスタムチャンネルへのパッケージの追加
  1. SUSE Manager Web UIで、ソフトウェア  管理  チャンネルに移動して、[パッケージ]タブに移動します。

  2. オプション: [一覧表示/削除]タブに移動して、現在チャンネル内にあるすべてのパッケージを表示します。

  3. 追加]タブに移動して、チャンネルに新しいパッケージを追加します。

  4. パッケージを提供する親チャンネルを選択し、パッケージの表示をクリックして、リストに入力します。

  5. カスタムチャンネルに追加するパッケージをオンにして、パッケージの追加をクリックします。

  6. 選択に問題がなければ、追加の確認をクリックして、チャンネルにパッケージを追加します。

  7. オプション: ソフトウェア  管理  チャンネルに移動し、パッケージ  比較タブに移動して、現在のチャンネルのパッケージを別のチャンネルのパッケージと比較できます。 2つのチャンネルを同じにするには、違いをマージするボタンをクリックし、競合を解決します。

プロシージャ: カスタムチャンネルへのパッチの追加
  1. SUSE Manager Web UIで、ソフトウェア  管理  チャンネルに移動して、[パッチ]タブに移動します。

  2. オプション: [一覧表示/削除]タブに移動して、現在チャンネル内のすべてのパッチを表示します。

  3. 追加]タブに移動し、追加するパッチの種類を選択して、チャンネルに新しいパッチを追加します。

  4. パッチを提供する親チャンネルを選択し、関連付けられたパッチの表示をクリックして、リストに入力します。

  5. カスタムチャンネルに追加するパッチをオンにして、確認をクリックします。

  6. 選択に問題がなければ、確認をクリックして、チャンネルにパッチを追加します。

4. カスタムチャンネルの管理

SUSE Manager管理者とチャンネル管理者は任意のチャンネルを変更または削除できます。

チャンネルを変更または削除する権限を他のユーザに付与するには、ソフトウェア  管理  チャンネルに移動して、編集するチャンネルを選択します。 [ マネージャ]タブに移動して、権限を付与するユーザをオンにします。 更新をクリックして、変更を保存します。

一連のクライアントに割り当てられているチャンネルを削除すると、削除されたチャンネルに関連付けられているすべてのクライアントのチャンネル状態が直ちに更新されます。 これは、変更がリポジトリファイルに正確に反映されるようにするためです。

Web UIを使用してSUSE Managerチャンネルを削除することはできません。 カスタムチャンネルのみを削除できます。

プロシージャ: カスタムチャンネルの削除
  1. SUSE Manager Web UIで、ソフトウェア  管理  チャンネルに移動して、削除するチャンネルを選択します。

  2. ソフトウェアチャンネルの削除をクリックします。

  3. チャンネルの削除]ページで、削除するチャンネルの詳細を確認し、[システムのサブスクライブを中止]チェックボックスをオンにして、まだサブスクライブされている可能性のあるシステムからカスタムチャンネルを削除します。

  4. チャンネルの削除をクリックします。

チャンネルを削除しても、削除されたチャンネルの一部であるパッケージは自動的に削除されません。 チャンネルが削除されたパッケージを更新することはできません。

SUSE Manager Web UIで、チャンネルに関連付けられていないパッケージを削除できます。 ソフトウェア  管理  パッケージに移動して、削除するパッケージをオンにして、パッケージの削除をクリックします。