カスタムチャンネル

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

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

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

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

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

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

ベンダーが提供するパッケージを使用したい場合は、ベースチャンネルとしてベンダーチャンネルを選択できます。 または、`none`を選択してカスタムチャンネルをベースチャンネルに設定します。

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

  2. Create Software Channel`ページで、チャンネルに名前(例: `My Tools SLES 15 SP1 x86_64)とラベル(例: my-tools-sles15sp1-x86_64)を付けます。 ラベルにはスペースまたは大文字を含めないでください。

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

  4. Architecture`ドロップダウンで、適切なハードウェアアーキテクチャ(例: `x86_64)を選択します。

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

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

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

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

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

このコマンドと手順は、一時的な GPG キーの同期のみに使用されます。 キーを永続的に保存するには、後のセクションを参照してください。

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

これは、ミラーリングしたいリポジトリが特別な方法で設定され、署名の隣に「キー」を提供している場合にのみ機能します。 これは、Open Build Service (OBS) によって生成されたすべてのリポジトリに当てはまります。 他のリポジトリには、以下でさらに説明する特別な準備手順が必要です。

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

有効なソフトウェアリポジトリである場合に限り、SUSE Multi-Linux Manager に Web UI を使用してリポジトリを追加できます。 必要なリポジトリメタデータが利用可能であることを事前に確認してください。 `createrepo`や`reprepro`といったツールがこの点で役立ちます。`mgrpush`は、リポジトリを作成せずに単一のRPMをチャンネルにプッシュするのに役立ちます。

  • `createrepo_c`の詳細については、`https://manpages.opensuse.org/Leap-15.6/createrepo_c/`を参照してください。

  • `reprepro`の詳細については、`https://manpages.opensuse.org/Leap-15.6/reprepro/`を参照してください。

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

  2. Create Repository`ページで、リポジトリにラベル(例: `my-tools-sles15sp1-x86_64-repo)を付けます。

  3. Repository URL`フィールドに、`repodata`ファイルを含むディレクトリへのパス(例: `file:///opt/mytools/)を入力します。 このフィールドでは、任意の有効なアドレッシングプロトコルを使用できます。

  4. `Has Signed Metadata?`チェックボックスをオフにします。

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

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

上記の手順は、ミラーリングしたいリポジトリが署名の隣に「キー」を提供している場合にのみ機能します。 これは、OBSによって生成されたすべてのリポジトリに当てはまりますが、通常、OBSによって提供されていないオペレーティングシステムのリポジトリには当てはまりません。

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

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

    mgradm gpg add /path/to/gpg.key
  2. 詳細については、独自のGPGキーを使用するを参照してください。

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 [component1] [component2] [...]

例:

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

または

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

`suite`と`component`の各ペアについて、仕様ではベースURL `+ suite + component`に基づいて計算される個別のURLが定義されています。

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

  2. `Repositories`タブに移動し、チャンネルに割り当てたいリポジトリが選択されていることを確認します。 リポジトリを保存をクリックします。

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

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

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

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

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

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

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

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

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

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

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

java.unify_custom_channel_management = 0

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

  • `Sync`タブに移動し、Sync Nowをクリックして手動で同期します。

  • `Repositories`タブから自動同期スケジュールを設定します。

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

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

  • SUSE Multi-Linux Manager Web UIで、ソフトウェア  管理  チャンネルに移動し、リポジトリに関連付けられたチャンネルをクリックします。 メニュー:[リポジトリ > 同期]タブに移動します。 リポジトリ名の横に`Sync Status`が表示されます。

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

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

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

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

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

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

エラータを同期しない

パッチを同期しません。

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

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

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

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

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

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

これらのオプションは、各チャンネルに対して永続的に保存されます。 今すぐ同期ボタンは、同期を実行する前にチャンネルオプションも保存します。

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

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

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

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

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

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

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

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

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

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

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

  2. オプション:`List/Remove`タブに移動して、現在チャンネル内のすべてのパッチを表示します。

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

  4. パッチを提供する親チャンネルを選択し、関連パッチを表示をクリックして、リストを表示します。

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

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

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

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

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

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

SUSE Multi-Linux ManagerチャンネルはWeb UIで削除できません。 カスタムチャンネルのみが削除できます。

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

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

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

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

チャンネルが削除されると、削除されたチャンネルに含まれるパッケージは自動的に削除されません。 チャンネルが削除されたパッケージは更新できません。

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