3.5. Git リポジトリーからの Puppet Modules の追加

モジュールを手動でアップロードする代わりに、Red Hat Satellite 6 には pulp-puppet-module-builder と呼ばれるユーティリティーが含まれています。このツールは、モジュールのセットが含まれるリポジトリーを確認し、モジュールをビルドし、それらを Satellite 6 が同期する構造で公開します。これにより、Git でモジュール開発を管理する効率的な方法が提供され、Satellite 6 ワークフローに追加されます。

Modulefile の使用は、Puppet バージョン 3 以降は非推奨となりました。Puppet バージョン 3.X の使用時に Modulefile を含む Puppet モジュールをビルドすると、非推奨の警告が表示されます。Satellite 6.8 には、モジュールファイルデータを無視する Puppet バージョン 4 が含まれます。Modulefile のデータは metadata.json ファイルに移動する必要があります。以下のように metadata.json ファイルを使用するようにモジュールを変換することができます。

  1. puppet module build Module_Directory を一度実行します。
  2. Modulefile を削除します。
  3. 更新された metadata.json ファイルをリビジョンコントロールリポジトリーに確認します。
注記

pulp-puppet-tools パッケージを使用して、他のマシンに pulp-puppet-module-builder ツールをインストールすることもできます。

一般的な方法の 1 つは、Satellite 6 Server 自体でユーティリティーを実行し、ローカルディレクトリーに公開することです。

Git リポジトリーのローカルディレクトリーへの公開

  1. Satellite Server でディレクトリーを作成し、モジュールを同期します。

    # mkdir /var/www/puppet-modules
    # chmod 755 /var/www/puppet-modules

    モジュールを /var/www/ ディレクトリーに保存すると、SELinux はリポジトリーの同期をブロックします。別のディレクトリーを使用する必要がある場合は、httpd_sys_r_content_t または pulp_tmp_t SELinux タイプを使用できます。httpd_sys_r_content_t SELinux タイプを使用すると、Web サーバーはファイルを読み取ることができます。SELinux ファイルタイプの設定に関する詳細は、『SELinux ユーザーおよび管理者のガイド』を参照してください。

  2. pulp-puppet-module-builder を実行して Git リポジトリーをチェックアウトします。

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

    これは、Git リポジトリーの develop ブランチを git@mygitserver.com:mymodules.git からチェックアウトし、モジュールを/var/www/puppet-modules/ に公開します。

HTTP サーバーにモジュールを公開する場合も同様です。

Web サーバーへの Git リポジトリーの公開

  1. Web サーバーのディレクトリーを作成し、モジュールを同期します。

    # mkdir /var/www/html/puppet-modules
    # chmod 755 /var/www/html/puppet-modules
  2. pulp-puppet-module-builder を実行して Git リポジトリーをチェックアウトします。

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

    これは、Git リポジトリーの develop ブランチを git@mygitserver.com:mymodules.git からチェックアウトし、モジュールを/var/www/html/puppet-modules/に公開します。

Satellite 6 Web UI で、URL が公開されたモジュールの場所に設定した新規リポジトリーを作成します。

Git からの Puppet モジュールのリポジトリーの作成

  1. 製品 ページで、以前に作成したカスタム製品 (MyProduct) をクリックします。
  2. リポジトリー のサブタブに移動します。
  3. 新規リポジトリー をクリックします。
  4. リポジトリーに 名前 を指定します。この例では、MyGitRepo という名前を使用します。
  5. ラベル フィールドには、Name に基づいてラベルが自動的に入力されます。
  6. リポジトリー タイプ として puppet を選択します。
  7. URL フィールドで、以前に定義した場所を設定します。たとえば、Satellite 6 Server のローカルディレクトリーは、file:// プロトコルを使用します。

    file:///modules

    リモートリポジトリーは http:// プロトコルを使用します。

    http://webserver.example.com/modules/
  8. 保存をクリックします。
  9. Sync Now をクリックしてリポジトリーを同期します。

Git リポジトリーの Puppet モジュールが Satellite 6 Server に含まれているようになりました。