第6章 カスタムコンテンツのインポート

本章では、さまざまな種類のカスタムコンテンツを Satellite にインポートする方法を概説します。Satellite に ISO、Puppet モジュール、またはさまざまなコンテンツタイプをインポートする場合は、この章とほぼ同じ手順を実行します。

たとえば、特定のタイプのカスタムコンテンツの情報については、以下の章を使用できますが、基本的な手順は同じです。

6.1. Satellite でのカスタム製品の使用

Satellite の Red Hat コンテンツとカスタムコンテンツはいずれも、次の点が類似しています。

  • 製品とそのリポジトリー間の関係は同じであり、リポジトリーは引き続き同期する必要があります。
  • カスタム製品には、クライアントがアクセスするサブスクリプション (Red Hat 製品に対するサブスクリプションと同様) が必要です。Satellite では、作成する各カスタム製品に対してサブスクリプションが作成されます。

RPM の作成およびパッケージングの詳細は、Red Hat Enterprise Linux ドキュメンテーションの『RPM パッケージングガイド』を参照してください。

6.2. カスタム SSL 証明書のインポート

カスタムコンテンツを作成する前に、必要なカスタム SSL 証明書をすべてインポートしてください。

RPM のダウンロードに SSL 証明書とキーが必要な場合は、Satellite に追加することができます。

  1. Satellite Web UI で コンテンツ > コンテンツの認証情報 に移動します。コンテンツ認証ウィンドウで、コンテンツの認証情報の作成 をクリックします。
  2. 名前 フィールドに、SSL 証明書の名前を入力します。
  3. タイプ の一覧から、SSL 証明書 を選択します。
  4. コンテンツの認証情報 フィールドに SSL 証明書を貼り付けるか、参照 をクリックして SSL 証明書をアップロードします。
  5. 保存 をクリックします。

6.3. カスタム GPG キーのインポート

カスタムコンテンツを作成する前に、必要な GPG キーをすべてインポートしてください。

前提条件

  1. バージョン固有のリポジトリーパッケージのコピーをクライアントシステムにダウンロードする。

    $ wget http://www.example.com/9.5/example-9.5-2.noarch.rpm
  2. RPM ファイルをインストールせずに抽出する。

    $ rpm2cpio example-9.5-2.noarch.rpm | cpio -idmv

GPG キーは、その抽出ファイルに相対的な場所である etc/pki/rpm-gpg/RPM-GPG-KEY-EXAMPLE-95 に存在します。

手順

GPG キーをインポートするには、以下の手順を実行してください。

  1. Satellite Web UI でコンテンツ > コンテンツの認証情報に移動して、ウィンドウの右上のコンテンツの認証情報の作成をクリックします。
  2. リポジトリーの名前を入力し、タイプ の一覧から GPG キー を選択します。
  3. GPG キーを コンテンツ認証情報の内容 フィールドに貼り付けるか、参照をクリックし、インポートする GPG キーファイルを選択します。

    カスタムリポジトリーに複数の GPG キーで署名されたコンテンツが含まれている場合、必要なすべての GPG キーを コンテンツ認証情報の内容 フィールドに入力しますが、この時、各キーの間に新たな行を入れる必要があります。以下に例を示します。

    -----BEGIN PGP PUBLIC KEY BLOCK-----
    
    mQINBFy/HE4BEADttv2TCPzVrre+aJ9f5QsR6oWZMm7N5Lwxjm5x5zA9BLiPPGFN
    4aTUR/g+K1S0aqCU+ZS3Rnxb+6fnBxD+COH9kMqXHi3M5UNzbp5WhCdUpISXjjpU
    XIFFWBPuBfyr/FKRknFH15P+9kLZLxCpVZZLsweLWCuw+JKCMmnA
    =F6VG
    -----END PGP PUBLIC KEY BLOCK-----
    
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    
    mQINBFw467UBEACmREzDeK/kuScCmfJfHJa0Wgh/2fbJLLt3KSvsgDhORIptf+PP
    OTFDlKuLkJx99ZYG5xMnBG47C7ByoMec1j94YeXczuBbynOyyPlvduma/zf8oB9e
    Wl5GnzcLGAnUSRamfqGUWcyMMinHHIKIc1X1P4I=
    =WPpI
    -----END PGP PUBLIC KEY BLOCK-----
  4. 保存 をクリックします。

CLI をご利用の場合

  1. GPG キーを Satellite Server にコピーします。

    $ scp ~/etc/pki/rpm-gpg/RPM-GPG-KEY-EXAMPLE-95 root@satellite.example.com:~/.
  2. GPG キーを Satellite にアップロードします。

    # hammer gpg create \
    --key ~/RPM-GPG-KEY-EXAMPLE-95 \
    --name "My_Repository" \
    --organization "My_Organization"

6.4. カスタム製品の作成

以下の手順を使用してカスタム製品を作成し、後でリポジトリーを追加できます。

手順

カスタム製品を作成するには、以下の手順を行います。

  1. Satellite Web UI で コンテンツ > 製品 に移動して、製品の作成 をクリックします。
  2. 名前 フィールドで、製品の名前を入力します。Satellite 6 では、名前 に入力した内容に基づいて ラベル フィールドに自動的に入力されます。
  3. オプション: GPG キー の一覧から、製品の GPG キーを選択します。
  4. オプション: SSL CA 証明書 の一覧から、製品の SSL CA 証明書を選択します。
  5. オプション: SSL クライアント証明書 の一覧から、製品の SSL クライアント 証明書を選択します。
  6. オプション: SSL クライアントキー の一覧から、製品の SSL クライアントキーを選択します。
  7. オプション: 同期プラン の一覧から、既存の同期プランを選択するか、同期プランの作成 をクリックし、製品要件の同期プランを作成します。
  8. 説明フィールドには、製品の説明を入力します。
  9. 保存 をクリックします。

CLI をご利用の場合

製品を作成するには、以下のコマンドを実行します。

# hammer product create \
--name "My_Product" \
--sync-plan "Example Plan" \
--description "Content from My Repositories" \
--organization "My_Organization"

6.5. カスタム RPM リポジトリーの追加

以下の手順を使用して、Satellite でカスタム RPM リポジトリーを追加します。

Satellite Web UI の製品ウィンドウには、リポジトリーの検出 機能があり、URL からすべてのリポジトリーを見つけ、どのリポジトリーを自分のカスタム製品に追加するかを選択できます。たとえば、リポジトリーの検出 を使用して、http://yum.postgresql.org/9.5/redhat/ を検索し、Red Hat Enterprise Linux の各バージョンおよびアーキテクチャー用のすべてのリポジトリーを一覧表示することができるので、1 つのソースから複数のリポジトリーをインポートする時間を節約できます。

カスタム RPM のサポート

Red Hat では、サードパーティーのサイトに、直接接続されているアップストリーム RPM はサポートしていません。これらの RPM は同期プロセスのデモに使用されます。これらの RPM について問題がある場合は、サードパーティーの開発者に連絡してください。

手順

  1. Satellite Web UI で、コンテンツ > 製品 に移動し、使用する製品を選択して、リポジトリーの作成 をクリックします。
  2. 名前 フィールドで、リポジトリーの名前を入力します。Red Hat Satellite 6 では、名前 に入力した内容に基づいて ラベル フィールドに値が自動的に入力されます。
  3. タイプ の一覧から、リポジトリーのタイプを選択します。RPM ファイル (yum)、Puppet モジュール (puppet)、または Docker イメージ (docker) のいずれかのリポジトリーを選択できます。
  4. URL フィールドに、ソースとして使用する外部リポジトリーの URL を入力します。
  5. ダウンロードポリシー の一覧から、Satellite Server が実行する同期の種類を選択します。
  6. 同期時のミラー チェックボックスが選択されていることを確認します。アップストリームのリポジトリーにないコンテンツが同期中に削除されるようにします。
  7. チェックサム の一覧から、リポジトリーのチェックサムタイプを選択します。
  8. オプション: 必要に応じて、HTTP 経由で公開 チェックボックスの選択を解除して、このリポジトリーの HTTP 経由での公開を無効にできます。
  9. オプション: GPG キー の一覧から、製品の GPG キーを選択します。
  10. 保存 をクリックします。

製品のウィンドウで即時同期を実行する場合は、今すぐ同期 をクリックします。

CLI をご利用の場合

  1. 以下のコマンドを実行してリポジトリーを作成します。

    # hammer repository create \
    --name "My_Repository" \
    --content-type "yum" \
    --publish-via-http true \
    --url http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/ \
    --gpg-key "My_Repository" \
    --product "My_Product" \
    --organization "My_Organization"
  2. リポジトリーを同期します。

    # hammer repository synchronize \
    --name "My_Repository" \
    --product "My Product" \
    --organization "My_Organization"

6.6. カスタム RPM リポジトリーにコンテンツをアップロードします。

個別の RPM およびソース RPM をカスタム RPM リポジトリーにアップロードできます。RPM は、Satellite Web UI または Hammer CLI を使用してアップロードできます。ソース RPM をアップロードするには、Hammer CLI を使用する必要があります。

手順

  1. Satellite Web UI で、コンテンツ > 製品 をクリックします。
  2. カスタム製品の名前をクリックします。
  3. リポジトリー タブで、カスタム RPM リポジトリーの名前をクリックします。
  4. パッケージのアップロード参照…​ をクリックし、アップロードする RPM を選択します。
  5. アップロード をクリックします。

このリポジトリー内のすべての RPM を表示するには、コンテンツ数 配下の パッケージ の横にある数字をクリックします。

CLI をご利用の場合

  • 以下のコマンドを入力して、RPM をアップロードします。

    # hammer repository upload-content \
    --id repo_ID \
    --path /path/to/example-package.rpm
  • 以下のコマンドを入力して、ソース RPM をアップロードします。

    # hammer repository upload-content \
    --content-type srpm \
    --id repo_ID \
    --path /path/to/example-package.src.rpm

    アップロードが完了すると、hammer srpm list コマンドおよび hammer srpm info --id srpm_ID コマンドを使用して、ソース RPM に関する情報を表示できます。