カスタムチャンネル

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

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

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チェックを無効にするとセキュリティリスクが生じます。

従来のRed Hat Enterprise Linux 7またはSLES Expanded Support 7クライアントを登録している場合、署名されていないパッケージでエラーが発生する場合があります。 詳細については、従来のRed Hatクライアントの登録のトラブルシューティングを参照してください。

リポジトリが有効なソフトウェアリポジトリである場合は、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. キーをpubキーリングにインポートするgpgコマンドは次のとおりです。

    gpg --keyring /var/lib/spacewalk/gpgdir  --import /path/to/gpg.key
    gpg --edit-key <keyid>

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では、カスタムチャンネルをリモートリポジトリの変更に合わせて最新の状態に保つことをお勧めします。

デフォルトでは、カスタムチャンネルは自動的に同期されません。カスタムチャンネルを最新の状態に維持するには、次の操作を実行する必要があります。

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

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

また、作成したすべてのカスタムチャンネルの自動同期を有効にすることもできます。これを実行するには、/etc/rhn/rhn.confで次のように設定します。

java.unify_custom_channel_management = 1

このプロパティをオンにすると、同期が自動的に実行されます。

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

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

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

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

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

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

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

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

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で、チャンネルに関連付けられていないパッケージを削除できます。 ソフトウェア  管理  パッケージに移動して、削除するパッケージをオンにして、パッケージの削除をクリックします。