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

前章では、Definitive Media Library (DML) への Red Hat コンテンツのインポート方法を説明しました。本章では、Red Hat コンテンツと少し異なるカスタムコンテンツを説明します。事前に独自の製品を作成し、カスタマイズして、独自のリポジトリーを追加します。さらに、カスタムリポジトリーに Puppet モジュールを追加できます。

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

「Satellite での製品およびリポジトリーの使用」 では、Red Hat Satellite 6 の製品の概念と、その概念を使用してリポジトリーをグループ化する方法を説明しました。Red Hat Satellite 6 では、カスタム製品を作成して複数の関連リポジトリーを追加することもできます。Red Hat Satellite 6 における Red Hat コンテンツとカスタムコンテンツにはいくつかの類似点があります。

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

本章では、2 つの関連リポジトリー (RPM コンテンツを含む RPM リポジトリーと RPM コンテンツを設定するためのモジュール向け Puppet リポジトリー) を含む製品を作成します。

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

5.2. カスタム製品の作成

このシナリオでは、ACME は、PostgreSQL データベースを必要とする Web ベースアプリケーションである Exampleware という名前の製品を開発することを目的としています。また、ACME は、Red Hat Enterprise Linux リポジトリーから PostgreSQL を使用して実稼働レベルの Exampleware を現場で使用し、新しいバージョンの PostgreSQL で Exampleware をテストすることもあります。このような場合は、新しいバージョンを同期できる PostgreSQL 向けのカスタム製品を作成します。

Web UI をご利用の場合

コンテンツ > 製品 に移動し、新製品 をクリックして、以下の詳細情報を入力します。

  • 名前: 製品の簡単な名前。PostgreSQL と入力します。
  • ラベル: 製品の内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • GPG キー: 製品全体の GPG キー。特定のバージョンの PostgreSQL に対して GPG をインストールし、製品の代わりにリポジトリーにアタッチするため、これは空にします。
  • 同期プラン: 製品の同期計画。これは、前の章で作成した Example Plan にアタッチすることができます。
  • 説明: 製品の簡単な説明。Content from PostgreSQL repositories と入力します。

この情報を入力したら、保存 をクリックします。

CLI をご利用の場合

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

# hammer product create \
--name "PostgreSQL" \
--sync-plan "Example Plan" \
--description "Content from PostgreSQL repositories" \
--organization "ACME"

これにより、独自のカスタムリポジトリーを作成し、そのコンテンツを同期できる新しい製品が作成されます。

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

カスタム製品を作成する前に、カスタム GPG キーを作成する必要がある場合があります。これは、PostgreSQL リポジトリーとの RPM トランザクションに対してある程度のセキュリティーを提供するために使用されます。

最初に、バージョン固有のリポジトリーパッケージのコピーをクライアントシステムにダウンロードします。この場合は、pgdg-redhat95 をダウンロードします。

[user@client ~]$ wget http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-redhat95-9.5-2.noarch.rpm

RPM ファイルをインストールせずに抽出します。

[user@client ~]$ rpm2cpio pgdg-redhat95-9.5-2.noarch.rpm | cpio -idmv

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

Web UI をご利用の場合

コンテンツ > GPG キー に移動します。新規 Gpg キー をクリックします。GPG キーに名前 (PostgreSQL 9.5) を指定し、GPG キーのアップロード を選択します。参照 をクリックし、抽出した GPG キーを選択します。保存 をクリックします。

CLI をご利用の場合

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

[user@client ~]$ scp ~/etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG-95 root@satellite.example.com:~/.

GPG キーを Satellite にアップロードします。

[root@satellite ~]# hammer gpg create \
--key ~/RPM-GPG-KEY-PGDG-95 \
--name "PostgreSQL 9.5" \
--organization "ACME"

これで、リポジトリーに関連付ける GPG キーが用意できました。

5.4. カスタム RPM リポジトリーの作成

通常は、実稼働レベルのサーバーでは、安定のために Red Hat Enterprise Linux に含まれる PostgreSQL のバージョンを使用します。ただし、ACME の開発者がより新しいバージョンの PostgreSQL で Exampleware をテストするとします。このとき、新しいバージョンの PostgreSQL 向けのカスタムリポジトリーを作成できます。

Web UI をご利用の場合

カスタム PostgreSQL 製品を作成します。カスタム製品の作成後は、リポジトリー画面が表示されます。リポジトリーの作成 をクリックし、新しいリポジトリー向けのフォームを表示します。以下の詳細情報を入力します。

  • 名前: リポジトリーの簡単な名前。PostgreSQL 9.5 と入力します。
  • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • タイプ: リポジトリーのタイプ。RPM ファイル (yum)、Puppet モジュール (puppet)、または Docker イメージ (docker) のいずれかのリポジトリーを選択できます。本書のシナリオでは yum を選択します。新しいフィールドが表示されます。
  • URL: ソースとして使用する外部リポジトリーの URL 。http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/ と入力します。
  • ダウンロードポリシー: Satellite Server が実行する同期タイプを決定します。即時 を選択します。詳細は 「ダウンロードポリシーの使用」 を参照してください。
  • 同期時のミラーリング: アップストリームのリポジトリーにないコンテンツが同期中に削除されるようにします。デフォルトでチェックが入っているので、そのままにします。
  • チェックサム: リポジトリーのチェックサム。この例ではデフォルトで SHA256 となる Default にします。これが Red Hat Enterprise Linux 7 で必要となるチェックサムです。Red Hat Enterprise Linux 5 以前のバージョンでは、チェックサムに SHA1 を選択します。
  • HTTP での公開: リポジトリーを HTTP で公開可能にします。このオプションは自動的に選択されます。
  • GPG キー: このリポジトリーの GPG キー。これまでに作成した PostgreSQL 9.5 GPG キーを選択します。

保存 をクリックして、このリポジトリーエントリーを保存します。

リポジトリーは同期プランを使用して定期的に更新されますが、ここで初期同期を実行します。PostgreSQL 9.5 リポジトリーを選択して 同期開始 をクリックします。これでリポジトリーと外部 PostgreSQL リポジトリーとの同期が開始します。

注記

この同期の進捗状況では、コンテンツ > 同期の状態 ページで確認できます。

CLI をご利用の場合

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

# hammer repository create \
--name "PostgreSQL 9.5" \
--content-type "yum" \
--publish-via-http true \
--url http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/ \
--gpg-key "PostgreSQL 9.5" \
--product "PostgreSQL" \
--organization "ACME"

次にリポジトリーを同期します。

# hammer repository synchronize \
--name "PostgreSQL 9.5" \
--product "PostgreSQL" \
--organization "ACME"

これで PostgreSQL 9.5 の同期コピーが用意できました。さらに Puppet モジュールを含めて PostgreSQL サーバーを設定することができます。

注記

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

重要

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

5.5. カスタム Puppet リポジトリーの作成

カスタム製品にも Puppet モジュールのリポジトリーを含めることができます。これを含めると、ホストの状態構成を組み込む方法が提供されます。

まず、PostgreSQL 製品のリポジトリーを作成します。

Web UI をご利用の場合

製品ページ (コンテンツ > 製品) を開いていることを確認します。PostgreSQL 製品をクリックするとリポジトリー一覧が表示されます。リポジトリーの作成 をクリックして、新規リポジトリーのフォームを表示します。以下の詳細を入力します。

  • 名前: リポジトリーの簡単な名前。PostgreSQL Puppet Modules と入力します。
  • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • タイプ: リポジトリーのタイプ。puppet を選択すると URL フィールドが表示されます。
  • URL: ソースとして使用する外部リポジトリーの URL。Puppet モジュールは手動でインポートしますが、Puppet モジュールの同期にはリポジトリーソースを使用できます。

保存 をクリックして、このリポジトリーエントリーを保存します。

CLI をご利用の場合

以下のコマンドを実行して Puppet モジュールリポジトリーを作成します。

# hammer repository create \
--name "PostgreSQL Puppet Modules" \
--content-type "puppet" \
--product "PostgreSQL" \
--organization "ACME"

これで Puppet モジュールのカスタムリポジトリーができました。モジュールを追加します。

5.6. 個別 Puppet モジュールの管理

このシナリオでは、PostgreSQL 設定用の Puppet モジュールを手動でインポートします。

Puppet Forge サイト (https://forge.puppetlabs.com/puppetlabs/postgresql) からこのモジュールをダウンロードします。ブラウザーでこのページを開き、download latest tar.gz をクリックしてローカルのファイルシステムに保存します。

Web UI をご利用の場合

PostgreSQL 製品のリポジトリー一覧ページを開いていることを確認します。PostgreSQL Puppet Modules リポジトリーをクリックし、そのリポジトリーの詳細ページを表示します。

Upload Puppet Module セクションに移動し、参照 をクリックして、ダウンロードした PostgreSQL Puppet Module を選択してアップロードします。数秒すると、Satellite Server が Content successfully uploaded メッセージを表示します。

注記

Puppet モジュールを管理したり、製品から Puppet モジュールを削除するには、Manage Puppet Modules ページをクリックします。

CLI をご利用の場合

以下のコマンドで、使用中の Satellite Server のファイルシステムに Puppet モジュールをコピーします。

[user@client ~]$ scp ~/puppet_module.tar.gz root@satellite.example.com:~/.

Puppet モジュールを PostgreSQL Puppet Modules リポジトリーにインポートします。

[root@satellite ~]# hammer repository upload-content \
--path ~/puppet_module.tar.gz \
--name "PostgreSQL Puppet Modules" \
--product "PostgreSQL" \
--organization "ACME"

これで RPM コンテンツを使用したサーバーをインストールして設定するのに使用する RPM コンテンツ と Puppet モジュールの両方が含まれるカスタムリポジトリーができました。

重要

Red Hat では、Puppet Forge からのモジュールをサポートしていません。PostgreSQL モジュールは、モジュール管理プロセスのデモのために使用されています。これらのモジュールに問題がある場合は、モジュール開発者に連絡してください。

5.7. Puppet リポジトリーの同期

Satellite Server は、アップロードした Puppet モジュールのリポジトリーを作成するだけでなく、完全な Puppet モジュールリポジトリーの同期ができます。この例では、Satellite Server は Puppet Forge リポジトリー全体を同期します。

Web UI をご利用の場合

コンテンツ > 製品 に移動し、新製品 をクリックします。新しい製品のフォームが表示されます。以下の詳細情報を入力します。

  • 名前: 製品の簡単な名前。Puppet Forge と入力します。
  • ラベル: 製品の内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • GPG キー: 製品全体の GPG キー。これは空白にします。
  • 同期プラン: 製品の同期計画。これは、前の章で作成した Example Plan にアタッチすることができます。
  • 説明: 製品の簡単な説明。All modules from Puppet Forge と入力します。

この情報を入力したら、保存 をクリックします。

カスタム製品の作成後は、リポジトリー画面が表示されます。リポジトリーの作成 をクリックし、新しいリポジトリー用のフォームを表示します。以下の詳細情報を入力します。

  • 名前: リポジトリーの簡単な名前。Puppet Forge Modules と入力します。
  • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • タイプ: リポジトリーのタイプ。puppet を選択すると URL フィールドが表示されます。
  • URL: ソースとして使用する外部リポジトリーの URL。http://forge.puppetlabs.com/ と入力します。

保存 をクリックして、このリポジトリーエントリーを保存します。

Puppet Forge Modules リポジトリーを選択し、同期開始 をクリックします。これで Puppet Forge から Satellite Server に全モジュールがインポートされます。

CLI をご利用の場合

製品を作成します。

# hammer product create \
--name "Puppet Forge" \
--sync-plan "Example Plan" \
--description "All modules from Puppet Forge" \
--organization "ACME"

Puppet Forge リポジトリーを作成します。

# hammer repository create \
--name "Puppet Forge Modules" \
--content-type "puppet" \
--product "Puppet Forge" \
--organization "ACME" \
--url http://forge.puppetlabs.com/

リポジトリーを同期します。

# hammer repository synchronize \
--name "Puppet Forge Modules" \
--product "Puppet Forge" \
--organization "ACME"
注記

Puppet Forge リポジトリーには数千のモジュールが含まれてるため、同期には時間がかかる場合があります。

重要

Red Hat では、Puppet Forge からのモジュールをサポートしていません。モジュールは、同期プロセスのデモのために使用されています。これらのモジュールに問題がある場合は、モジュール開発者に連絡してください。

5.8. Git リポジトリーからの Puppet Modules の同期

Red Hat Satellite 6 には pulp-puppet-module-builder と呼ばれるユーティリティーが含まれており、これは pulp-puppet-tools RPM から他のシステムにインストールできます。このツールは Git リポジトリーをチェックアウトし、全モジュールをビルドして、それらを Satellite 6 が同期できる構造で公開します。一般的な方法の 1 つは、Satellite Server 上でこのユーティリティーを実行し、ローカルディレクトリーに公開して、そのディレクトリーに対して同期するというものです。以下は例となります。

# mkdir /modules
# chmod 755 /modules
# pulp-puppet-module-builder \
--output-dir=/modules \
--url=git@mygitserver.com:mymodules.git \
--branch=develop

これで、Git リポジトリーの develop ブランチが git@mygitserver.com:mymodules.git からチェックアウトし、/modules に公開されます。このディレクトリーを Satellite Server の新規リポジトリーの URL (file:///modules) として追加します。以下は例となります。

Web UI をご利用の場合

カスタム製品を開き (ここでは例として MyProduct を使用) リポジトリーの作成 をクリックします。以下の詳細を入力します。

  • 名前: リポジトリーの簡単な名前。Modules from Git と入力します。
  • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
  • タイプ: リポジトリーのタイプ。puppet を選択すると URL フィールドが表示されます。
  • URL: ソースとして使用する外部リポジトリーの URL。file:///modules と入力します。

CLI をご利用の場合

Puppet Forge リポジトリーを作成します。

# hammer repository create \
--name "Modules from Git" \
--content-type "puppet" \
--product "MyProduct" \
--organization "ACME" \
--url file:///modules
注記

リモートの HTTP サーバー上にモジュールを公開する場合でも同じプロセスを実行します。たとえば、Puppet モジュールを公開する標準ウェブホストとして webserver.example.com を使用する場合は、ホストにログインし以下のコマンドを実行します。

# mkdir /var/www/html/modules/
# chmod 755 /var/www/html/modules/
# pulp-puppet-module-builder \
--output-dir=/var/www/html/modules/ \
--url=git@mygitserver.com:mymodules.git \
--branch=develop

Satellite Server では、リポジトリーの URL を http://webserver.example.com/modules/ に設定します。

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

Red Hat Satellite のカスタム製品には、カスタムファイルタイプのリポジトリーを追加することができます。これにより、製品に任意ファイルを組み込む一般的な方法が提供されました。SSH 鍵やソースコードファイルの配布をはじめ、仮想マシンイメージや ISO ファイルなどの大容量ファイルの配布などに使用できます。

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

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

この例では、製品 (My File Product) を作成し、その製品にファイルタイプリポジトリー (My Files) を作成します。 Satellite 以外のファイルタイプリポジトリーの詳細は「付録E リモートファイルタイプリポジトリーの作成」を参照してください。

Web UI をご利用の場合

  1. カスタム製品の作成

    コンテンツ > 製品 に移動し、製品の作成 をクリックして、以下の詳細情報を入力します。

    • 名前: 製品の簡単な名前。My File Product と入力します。
    • ラベル: 製品の内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
    • GPG キー: 製品全体の GPG キー。これは空欄にします。
    • 同期プラン: 製品の同期計画。たとえば、前の章で作成した Example Plan です。
    • 説明: 製品の簡単な説明。My files と入力します。
  2. ファイルタイプリポジトリーの作成

    コンテンツ > 製品 に移動し、製品名をクリックします (この例では My File Product)。リポジトリー タブで 新規リポジトリー をクリックし、以下の詳細情報を入力します。

    • 名前: リポジトリーの簡単な名前。My Files と入力します。
    • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
    • タイプ: リポジトリーのコンテンツタイプ。file を選択します。
    • アップストリーム URL: ソースとして使用するアップストリームリポジトリーの URL。ファイルを手動でアップロードする場合は、空白のままにできます。
    • SSL の検証: アップストリームのリポジトリーの SSL 証明書が信頼できる認証機関 (CA) によって署名されていることを確認したい場合のみ選択します。
    • アップストリームのユーザー名: 認証に必要な場合は、アップストリームリポジトリーのユーザー名を入力します。リポジトリーに認証が必要ない場合はこのフィールドを空にします。
    • アップストリームのパスワード: アップストリームリポジトリーのパスワードを入力します。リポジトリーに認証が必要ない場合はこのフィールドを空にします。
  3. 保存 をクリックして、このリポジトリーエントリーを保存します。

CLI をご利用の場合

  1. カスタム製品の作成

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

    オプションのパラメーター

    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 "ACME"

    オプションのパラメーター

    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 に設定します。

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

Web UI をご利用の場合

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

CLI をご利用の場合

# hammer repository upload-content \
--product "My File Product" \
--name "My Files" \
--organization "ACME" \
--path example_file

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

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

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

前提条件

Web UI をご利用の場合

  1. コンテンツ > 製品 に移動します。
  2. カスタム製品の名前を選択します (例: My File Product)。
  3. ファイルタイプリポジトリーの名前を選択します (例: My Files)。
  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/

クライアントに、適切な 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

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

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

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

ローカルディレクトリーへのファイルタイプリポジトリーの作成:

  1. サーバーおよび Satellite Tools リポジトリーが有効になっていることを確認します。

    # subscription-manager repos --enable=rhel-7-server-rpms \
    --enable=rhel-7-server-satellite-tools-6.3-rpms
  2. Pulp マニフェストパッケージをインストールします。

    # yum 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 にカスタム製品が存在することを確認します。この例では My File Product を使用します。
  2. ファイルタイプリポジトリーの作成:

    1. Satellite Web UI で、コンテンツ > 製品 に移動します。
    2. 製品の名前を選択します (この例では My File Product)。
    3. リポジトリー タブで 新規リポジトリー を選択し、以下の詳細を入力します。

      • 名前: リポジトリーの簡単な名前。My Files と入力します。
      • ラベル: リポジトリーの内部 ID。Red Hat Satellite 6 では、名前 に入力した内容に基づいてこのフィールドに値が自動的に入力されます。
      • タイプ: リポジトリーのコンテンツタイプ。file を選択します。
      • アップストリーム URL: ソースとして使用するリポジトリーを使用したローカルディレクトリーへのパス (file:///my_file_repo の形式)。
      • SSL の検証: このフィールドに何も入力されていないことを確認します。
      • アップストリームのユーザー名: このフィールドが何も入力されていないことを確認します。
      • アップストリームのパスワード: このフィールド何も入力されていないことを確認します。
  3. 保存 をクリックして、このリポジトリーエントリーを保存します。
  4. ファイルタイプリポジトリーのアップデート:

    1. コンテンツ > 製品 に移動します。
    2. 製品の名前を選択します (この例では My File Product)。
    3. アップデートするリポジトリーの名前を選択します (この例では My Files)。
    4. アクションの選択 メニューから 同期開始 を選択します。
    5. リポジトリーを公開した URL を開いて、ファイルを表示します。

5.13. 本章のまとめ

本章では、Red Hat 以外のコンテンツ向けのカスタムリポジトリーを作成する方法を説明しました。これには、RPM ファイル、Puppet モジュール、カスタムファイルタイプが含まれます。

これで、ベースコンテンツがすべて Satellite Server の DML にインポートされました。これをアプリケーションのライフサイクルに使用できます。

次章では、ACME の開発および実稼働プロセスに一致するようにアプリケーションのライフサイクルを開発する方法を説明します。