第16章 カスタム Puppet コンテンツの管理
Satellite で、Puppet モジュールを使用してホストの状態設定を組み込む場合は、Puppet モジュールが状態設定を組み込むのに使用するリポジトリーで、カスタム製品を作成します。
16.1. カスタム Puppet リポジトリーの作成
カスタム Puppet モジュールリポジトリーを作成する手順は、リポジトリー作成時に "strong">puppet タイプを選択することを除き、カスタムコンテンツの作成手順と同じです。製品を作成してから、カスタムリポジトリーを追加する必要があります。
手順
- Satellite Web UI で、コンテンツ > 製品 に移動し、使用する製品をクリックします。
- リポジトリーの作成 をクリックします。
- 名前 フィールドで、リポジトリーの名前を入力します。Red Hat Satellite 6 では、名前 に入力した内容に基づいて ラベル フィールドに値が自動的に入力されます。
- タイプ の一覧から puppet を選択します。
- URL フィールドに、ソースとして使用する外部リポジトリーの URL を入力します。Puppet モジュールの同期にはリポジトリーソースを使用できます。
- 保存をクリックします。
CLI をご利用の場合
以下のコマンドを実行して Puppet モジュールリポジトリーを作成します。
# hammer repository create \ --name "PostgreSQL Puppet Modules" \ --content-type "puppet" \ --product "PostgreSQL" \ --organization "My_Organization"
16.2. Puppet モジュールの個別管理
RPM コンテンツと Puppet モジュールの両方が含まれるカスタム製品を作成して、カスタム RPM コンテンツを使用するサーバーをインストールして設定する場合には、「カスタム Puppet リポジトリーの作成」の手順を使用してから、以下の手順に従い、Puppet モジュールをアップロードします。
カスタム RPM のサポート
Red Hat では、Puppet Forge からのモジュールをサポートしていません。これらのモジュールに問題がある場合は、モジュール開発者に連絡してください。
前提条件
- https://forge.puppetlabs.com/puppetlabs/postgresql など、Puppet Forge の Web サイトから、使用するモジュールをダウンロードしておく。
- Web ブラウザーで、download latest tar.gz をクリックしてローカルのファイルシステムに保存しておく。
手順
- Satellite Web UI で、コンテンツ > 製品 に移動し、管理する Puppet リポジトリーが含まれる製品を選択します。
- リポジトリーウィンドウで、新しい Puppet リポジトリーをクリックすると、そのリポジトリーの詳細ページが表示されます。
- Puppet モジュールのアップロード エリアに移動し、参照 をクリックします。新たにダウンロードして抽出された Puppet モジュールを選択し、アップロード をクリックします。
Puppet モジュールを管理し、製品から削除するには、以下の手順を行います。
- Puppet モジュールリポジトリーのウィンドウで、ウィンドウの右上の コンテンツ数 エリアに移動します。Puppet モジュール 行で、Puppet モジュールに表示されている数値をクリックします。
- Puppet モジュールリポジトリーウィンドウの Puppet モジュールの管理 で、管理するモジュールを選択して、アクションの選択 をクリックし、アクションを実行するか、Puppet モジュールの削除 を選択します。
CLI をご利用の場合
以下のコマンドで、使用中の Satellite Server のファイルシステムに Puppet モジュールをコピーします。
$ scp ~/puppet_module.tar.gz root@satellite.example.com:~/.
Puppet モジュールを Puppet Modules リポジトリーにインポートします。
# hammer repository upload-content \ --path ~/puppet_module.tar.gz \ --name "My Puppet Modules" \ --organization "My_Organization"
16.3. Puppet リポジトリーの同期
Satellite Server は、アップロードした Puppet モジュールのリポジトリーを作成するだけでなく、完全な Puppet モジュールリポジトリーの同期ができます。この例では、Satellite Server は Puppet Forge リポジトリー全体を同期します。
カスタム RPM のサポート
Red Hat では、Puppet Forge からのモジュールをサポートしていません。モジュールは、同期プロセスのデモのために使用されています。これらのモジュールに問題がある場合は、モジュール開発者に連絡してください。
手順
- Satellite Web UI で コンテンツ > 製品 に移動して、製品の作成 をクリックします。
- 名前 フィールドで、製品の名前を入力します。Red Hat Satellite 6 では、名前 に入力した内容に基づいて ラベル フィールドに自動的に入力されます。
- オプション: GPG キー の一覧から、製品の GPG キーを選択します。
- オプション: 同期プラン リストから製品の同期プランを選択します。
- 説明フィールドには、製品の説明を入力します。
- 保存をクリックします。
- リポジトリーの作成 をクリックすると、新しいリポジトリーのフォームが表示されます。
- 名前 フィールドに、リポジトリーの名前を入力します。Red Hat Satellite 6 では、名前 に入力した名前をもとに、このフィールドに値が自動的に入力されます。
- タイプ の一覧から puppet を選択します。
-
URL フィールドに、
http://forge.puppetlabs.com/
と入力します。 - 保存 をクリックします。
- 新しい Puppet リポジトリーを選択し、今すぐ同期 をクリックして、Puppet Forge から Satellite Server に全モジュールをインポートします。この処理には時間がかかることがあります。
CLI をご利用の場合
製品を作成します。
# hammer product create \ --name "Puppet Forge" \ --sync-plan "Example Plan" \ --description "All modules from Puppet Forge" \ --organization "My_Organization"
Puppet Forge リポジトリーを作成します。
# hammer repository create \ --name "Puppet Forge Modules" \ --content-type "puppet" \ --product "Puppet Forge" \ --organization "My_Organization" \ --url http://forge.puppetlabs.com/
リポジトリーを同期します。
# hammer repository synchronize \ --name "Puppet Forge Modules" \ --product "Puppet Forge" \ --organization "My_Organization"
Puppet Forge リポジトリーには数千のモジュールが含まれてるため、同期には時間がかかる場合があります。
16.4. 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
) として追加します。
リモート HTTP サーバー上の Puppet モジュールの公開
リモートの HTTP サーバー上にモジュールを公開する場合でも同じプロセスを実行します。たとえば、Puppet モジュールを公開する標準 Web ホストとして 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/
に設定します。
Web UI を使用した Git リポジトリーからの Puppet モジュールの同期
以下の手順を使用して、Git リポジトリーから Puppet モジュールを同期します。
手順
- カスタム製品を作成し、リポジトリーの作成 をクリックします。
- タイプ の一覧から puppet を選択します。
-
URL フィールドに、ソースとして使用する外部 Git リポジトリーの URL を
file:///modules
の形式で入力します。
CLI をご利用の場合
Puppet Forge リポジトリーを作成します。
# hammer repository create \ --name "Modules from Git" \ --content-type "puppet" \ --product "MyProduct" \ --organization "My_Organization" \ --url file:///modules