第15章 カスタムファイルタイプコンテンツの管理

Satellite で、SSH キーおよびソースコードファイル、仮想マシンイメージや ISO ファイルなどの大容量ファイルの管理と配布が必要になる場合があります。これには、Red Hat Satellite のカスタム製品にカスタムファイルタイプのリポジトリーを追加します。こうすることで、製品に任意のファイルを組み込む一般的な方法が提供されます。

リポジトリーにファイルをアップロードし、アップストリームの Satellite Server からファイルを同期できます。ファイルをカスタムのファイルタイプリポジトリーに追加すると、特定のバージョンをコンテンツビューに追加して、さまざまな Capsule Server でファイルのリポジトリーを利用可能にするなど、通常の Satellite 管理機能を使用できます。クライアントは、curl -O で、HTTP または HTTPS からファイルをダウンロードする必要があります。

Satellite Server のファイルタイプリポジトリーはカスタム製品に対してのみ作成できますが、ファイルタイプのリポジトリーは柔軟に作成できます。Satellite がインストールされているシステム、またはリモートの HTTP サーバーのディレクトリーに個別のファイルタイプリポジトリーを作成して、そのディレクトリーのコンテンツを同期できます。この方法は、Satellite リポジトリーに追加するファイルが複数ある場合に便利です。

15.1. Red Hat Satellite でのカスタムのファイルタイプリポジトリーの作成

カスタムファイルタイプリポジトリーを作成する手順は、リポジトリー作成時に ファイル タイプを選択する以外は、カスタムコンテンツの作成手順と同じです。製品を作成してから、カスタムリポジトリーを追加する必要があります。

手順

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

  1. Satellite Web UI で、コンテンツ > 製品 に移動し、製品の作成 をクリックして、以下の詳細情報を入力します。
  2. 名前 フィールドで、製品の名前を入力します。Satellite 6 では、名前 に入力した内容に基づいて ラベル フィールドに自動的に入力されます。
  3. オプション: GPG キー の一覧から、製品の GPG キーを選択します。
  4. オプション: 同期プラン リストから製品の同期プランを選択します。
  5. 説明 フィールドに、製品の説明を入力し、保存 をクリックします。

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

  1. 製品ウィンドウで、リポジトリーを作成する製品の名前を選択します。
  2. リポジトリー タブをクリックして、新規リポジトリー をクリックします。
  3. 名前 フィールドに、リポジトリーの名前を入力します。Satellite では、名前を基に ラベル フィールドに値が自動的に入力されます。
  4. タイプ の一覧から ファイル を選択します。
  5. アップストリーム URL フィールドに、ソースとして使用するアップストリームリポジトリーの URL を入力します。
  6. アップストリームのリポジトリーの SSL 証明書が信頼できる認証機関 (CA) によって署名されていることを確認する場合、SSL の検証 チェックボックスを選択します。
  7. アップストリームのユーザー名 フィールドに、認証に必要な場合にアップストリームリポジトリーのユーザー名を入力します。リポジトリーに認証が必要ない場合はこのフィールドを空にします。
  8. アップストリームのパスワード フィールドに、アップストリームリポジトリーのパスワードを入力します。リポジトリーに認証が必要ない場合はこのフィールドを空にします。
  9. 保存 をクリックします。

CLI をご利用の場合

  1. カスタム製品を作成します。

    # hammer product create \
    --name "My File Product" \
    --sync-plan "Example Plan" \
    --description "My files" \
    --organization "My_Organization"

    表15.1 hammer product create コマンドのオプションパラメーター

    オプション説明

    --gpg-key gpg_key_name

    検索するキー名

    --gpg-key-id gpg_key_id

    GPG キー数値 ID

    --sync-plan sync_plan_name

    検索する同期プラン名

    --sync-plan-id sync_plan_id

    同期プランの数値 ID

  2. ファイルタイプリポジトリーの作成

    # hammer repository create \
    --name "My Files" \
    --content-type "file" \
    --product "My File Product" \
    --organization "My_Organization"

    表15.2 hammer repository create コマンドのオプションパラメーター

    オプション説明

    --checksum-type sha_version

    リポジトリーのチェックサムです。現在、'sha1' および 'sha256' がサポートされています。

    --download-policy policy_name

    yum リポジトリーのダウンロードポリシーです ('immediate'、'on_demand'、または 'background')。

    --gpg-key gpg_key_name

    検索するキー名

    --gpg-key-id gpg_key_id

    GPG キー数値 ID

    --mirror-on-sync boolean

    同期する場合に、このリポジトリーをソースからミラーリングし、古い RPM を削除する必要がありますか? true または falseyes または no、もしくは 1 または 0 に設定します。

    --publish-via-http boolean

    HTTP を使用して公開する必要がありますか? true または falseyes または no1 または 0 に設定します。

    --upstream-username repository_username

    認証に必要な場合は、アップストリームリポジトリーユーザー

    --upstream-password repository_password

    アップストリームリポジトリーユーザーのパスワード

    --url source_repo_url

    ソースリポジトリーの URL

    --verify-ssl-on-sync boolean

    URL の SSL 証明書が信頼できる CA によって署名されているのを Katello が確認する必要がありますか? true または falseyes または no、もしくは 1 または 0 に設定します。

15.2. ローカルディレクトリーにカスタムのファイルタイプリポジトリーの作成

Satellite が pulp-manifest コマンドを使用してインストールされているベースシステムで、ファイルのディレクトリーから、カスタムファイルタイプリポジトリーを作成できます。その後、Satellite Server にファイルを同期します。ファイルタイプリポジトリーにファイルを追加すると、他のリポジトリーと同じようにファイルを操作できます。

以下の手順を使用して、Satellite がインストールされているベースシステムのディレクトリーにリポジトリーを設定します。リモートサーバーのディレクトリーにファイルタイプリポジトリーを作成するには、「リモートファイルタイプリポジトリーの作成」を参照してください。

手順

ローカルディレクトリーにファイルタイプリポジトリーを作成するには、以下の手順を行います。

  1. サーバーおよび Satellite Tools 6.7 リポジトリーが有効になっていることを確認します。
  2. Pulp マニフェストパッケージをインストールします。

    # satellite-maintain packages install python-pulp-manifest
  3. HTTP サーバーのパブリックフォルダーのファイルタイプリポジトリーとして使用するディレクトリーを作成します。

    # mkdir my_file_repo
  4. ディレクトリーにファイルを追加して、テストファイルを作成します。

    # touch my_file_repo/test.txt
  5. Pulp マニフェストコマンドを入力して、マニフェストを作成します。

    # pulp-manifest my_file_repo
  6. マニフェストが作成されたことを確認します。

    # ls my_file_repo
    PULP_MANIFEST test.txt

ファイルタイプリポジトリーからのファイルのインポート

ファイルタイプリポジトリーからファイルをローカルディレクトリーにインポートするには、以下の手順を行います。

  1. カスタム製品が Satellite Server に存在することを確認します。
  2. Satellite Web UI で、コンテンツ > 製品に移動します。
  3. 製品の名前を選択します。
  4. リポジトリー タブをクリックして、新規リポジトリー を選択します。
  5. 名前 フィールドに、リポジトリーの名前を入力します。Satellite 6 では、名前 に入力した内容をもとに、このフィールドに値が自動的に入力されます。
  6. タイプ リストから、リポジトリーのコンテンツタイプを選択します。
  7. アップストリーム URL フィールドに、ソースとして使用するリポジトリーを使用したローカルディレクトリーを入力します (file:///my_file_repo の形式)。
  8. SSL の検証 チェックボックスを選択してリポジトリーの SSL 証明書をチェックするか、SSL の検証 チェックボックスの選択を解除します。
  9. オプション: アップストリームのユーザー名 フィールドに、必要なアップストリームユーザー名を入力します。
  10. オプション: アップストリームのパスワード フィールドに、アップストリームユーザー名のパスワードを入力します。
  11. 保存 をクリックして、このリポジトリーエントリーを保存します。

ファイルタイプリポジトリーの更新

ファイルタイプリポジトリーを更新するには、以下の手順を行います。

  1. Satellite Web UI で、コンテンツ > 製品に移動します。
  2. 製品の名前を選択します。
  3. 更新するリポジトリーの名前を選択します。
  4. アクションの選択 メニューから 同期開始 を選択します。
  5. リポジトリーを公開した URL を開いて、ファイルを表示します。

15.3. リモートファイルタイプリポジトリーの作成

pulp-manifest を使用して、Satellite Server の外部にあるファイルのディレクトリーから、カスタムファイルタイプリポジトリーを作成します。その後、HTTP または HTTPS 経由で Satellite Server にファイルを同期します。ファイルタイプリポジトリーにファイルを追加すると、他のリポジトリーと同じようにファイルを操作できます。

以下の手順を使用して、リモートサーバーのディレクトリーにリポジトリーを設定します。Satellite Server がインストールされているベースシステムのディレクトリーにファイルタイプリポジトリーを作成するには、「ローカルディレクトリーにカスタムのファイルタイプリポジトリーの作成」を参照してください。

前提条件

リモートファイルタイプリポジトリーを作成する前に、以下の条件が存在することを確認します。

  • Red Hat Enterprise Linux 7 サーバーが Satellite または Red Hat CDN に登録されている。
  • Red Hat Enterprise Linux Server および Satellite Tools 6.7 リポジトリーにエンタイトルメントがある。
  • HTTP サーバーがインストールされている。Web サーバーの設定方法は『システム管理者のガイド』における Red Hat Enterprise Linux 7 での「Apache HTTP サーバー」を参照してください。

手順

リモートディレクトリーにファイルタイプリポジトリーを作成するには、以下の手順を行います。

  1. リモートサーバーで、サーバーおよび Satellite Tools 6.7 リポジトリーが有効になっていることを確認します。
  2. Pulp マニフェストパッケージをインストールします。

    # yum install python-pulp-manifest
  3. HTTP サーバーのパブリックフォルダーのファイルタイプリポジトリーとして使用するディレクトリーを作成します。

    # mkdir /var/www/html/pub/my_file_repo
  4. ディレクトリーにファイルを追加して、テストファイルを作成します。

    # touch /var/www/html/pub/my_file_repo/test.txt
  5. Pulp マニフェストコマンドを入力して、マニフェストを作成します。

    # pulp-manifest /var/www/html/pub/my_file_repo
  6. マニフェストが作成されたことを確認します。

    # ls /var/www/html/pub/my_file_repo
    PULP_MANIFEST test.txt

リモートファイルタイプリポジトリーからのファイルのインポート

リモートファイルタイプリポジトリーからファイルをインポートするには、以下の手順を行います。

  1. カスタム製品が Satellite Server に存在することを確認します。ない場合には、カスタム製品を作成します。詳細については、「Red Hat Satellite でのカスタムのファイルタイプリポジトリーの作成」を参照してください。
  2. Satellite Web UI で、コンテンツ > 製品に移動します。
  3. 製品の名前を選択します。
  4. リポジトリー タブをクリックして、新規リポジトリー を選択します。
  5. 名前 フィールドに、リポジトリーの名前を入力します。Red Hat Satellite 6 では、名前 に入力した内容をもとに、このフィールドに値が自動的に入力されます。
  6. タイプ の一覧から ファイル を選択します。
  7. アップストリーム URL フィールドに、ソースとして使用するアップストリームリポジトリーの URL を入力します。
  8. アップストリームのリポジトリーの SSL 証明書が信頼できる認証機関 (CA) によって署名されていることを確認する場合、SSL の検証 チェックボックスを選択します。
  9. アップストリームのユーザー名 フィールドに、認証に必要な場合にアップストリームリポジトリーのユーザー名を入力します。リポジトリーに認証が必要ない場合はこのフィールドを空にします。
  10. アップストリームのパスワード フィールドに、アップストリームリポジトリーのパスワードを入力します。リポジトリーに認証が必要ない場合はこのフィールドを空にします。
  11. 保存 をクリックします。
  12. コンテンツ > 製品 に移動します。更新するリポジトリーが含まれる製品の名前を選択します。
  13. 製品のウィンドウで、更新するリポジトリーの名前を選択します。
  14. アクションの選択 メニューから 同期開始 を選択します。

リポジトリーを公開した URL を開いて、ファイルを表示します。

15.4. Red Hat Satellite へのカスタムファイルタイプリポジトリーへのファイルのアップロード

手順

ファイルをカスタムファイルタイプリポジトリーにアップロードするには、以下の手順を行います。

  1. Satellite Web UI で、コンテンツ > 製品に移動します。
  2. カスタム製品の名前を選択します。
  3. ファイルタイプリポジトリーの名前を選択します。
  4. 参照 をクリックして、アップロードするファイルを選択します。
  5. アップロード をクリックして、選択したファイルを Satellite Server にアップロードします。
  6. リポジトリーを公開した URL を開いて、ファイルを表示します。

CLI をご利用の場合

# hammer repository upload-content \
--id repo_ID \
--organization "My_Organization" \
--path example_file

--path オプションは、ファイル、ファイルディレクトリー、またはファイルの glob 表現を示します。glob は、一重引用符または二重引用符でエスケープする必要があります。

15.5. Red Hat Satellite のカスタムファイルタイプリポジトリーからホストにファイルをダウンロードする手順

curl -O を実行して、HTTPS (HTTP での公開 リポジトリーを選択している場合は HTTP でも可能) でクライアントにファイルをダウンロードします。

前提条件

手順

ファイルをカスタムファイルタイプリポジトリーからホストにダウンロードするには、以下の手順を行います。

  1. Satellite Web UI で、コンテンツ > 製品に移動します。
  2. カスタム製品の名前を選択します。
  3. ファイルタイプリポジトリーの名前を選択します。
  4. HTTP 経由での公開 が有効になっているかどうかを確認します。有効になっていない場合は、HTTPS を使用するための証明書が必要です。
  5. リポジトリーを公開した URL をコピーします。

CLI をご利用の場合

  1. ファイルタイプリポジトリーを一覧表示します。

    # hammer repository list --content-type file
    ---|----------|-----------------|--------------|----
    ID | NAME     | PRODUCT         | CONTENT TYPE | URL
    ---|----------|-----------------|--------------|----
    7  | My Files | My File Product | file         |
    ---|----------|-----------------|--------------|----
  2. リポジトリー情報を表示します。

    # hammer repository info --name "My Files" --product "My File Product" --organization-id 1

    HTTP が有効になっている場合には、出力は次のようになります。

    Publish Via HTTP:   yes
    Published At:       http://satellite.example.com/pulp/isos/uuid/

    HTTP が有効になっていない場合には、出力は次のようになります。

    Publish Via HTTP:   no
    Published At:       https://satellite.example.com/pulp/isos/uuid/
  3. クライアントに、適切な HTTP または HTTPS の形式でコマンドを入力します。

    HTTP の場合:

    # curl -O satellite.example.com/pulp/isos/uuid/my_file

    HTTPS の場合:

    # curl -O --cert ./Default\ Organization-key-cert.pem --cacert katello-server-ca.crt satellite.example.com/pulp/isos/uuid/my_file