Menu Close

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 を 1 度実行します。
  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 はリポジトリーの同期をブロックします。別のディレクトリーを使用する必要がある場合は、SELinux タイプ httpd_sys_r_r_content_t または pulp_tmp_t を使用できます。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 サーバーにモジュールを公開する場合も同様です。

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

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

    file:///modules

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

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

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