14.3. リポジトリーソースの使用

既存のリポジトリーまたはローカルディレクトリーを使用して、テンプレートを Satellite Server と同期できます。

14.3.1. テンプレートを既存のリポジトリーと同期する

この手順を使用して、Satellite Server と既存のリポジトリーの間でテンプレートを同期します。

手順

  1. HTTPS を使用してリポジトリーに接続する必要があり、Git サーバーで自己署名証明書認証を使用する場合は、証明書を検証します。

    # sudo -u foreman git config --global http.sslCAPath Path_To_My_Certificate
  2. SSH を使用してリポジトリーに接続する場合は、次の手順を実行します。

    1. SSH 鍵ペアがない場合は作成します。パスフレーズは指定しないでください。

      # sudo -u foreman ssh-keygen
    2. Satellite の公開鍵を使用してバージョン管理サーバーを設定します。公開鍵は、/usr/share/foreman/.ssh/id_rsa.pub にあります。
    3. Git SSH ホストキーを foreman ユーザーとして受け取ります。

      # sudo -u foreman ssh git.example.com
  3. TemplateSync タブで TemplateSync プラグイン設定を設定します。

    1. Branch 設定を変更して、Git サーバーへのターゲットブランチに一致します。
    2. Git リポジトリーに一致するように、Repo 設定を変更します。たとえば、git@git.example.com/templates.git に置いたリポジトリーに対しては、git@git.example.com/templates.git に設定します。

14.3.2. ローカルディレクトリーを使用したテンプレートの同期

ローカルディレクトリーで、バージョン管理リポジトリーを設定した場合は、テンプレートをローカルディレクトリーと同期すると便利です。これにより、テンプレートを編集し、ディレクトリーで編集履歴を追跡できます。テンプレートの編集後に変更を Satellite Server に同期することも可能です。

前提条件

  • 各テンプレートに、テンプレートが属するロケーションおよび組織が含まれている必要がある。これは、すべてのタイプのテンプレートタイプに適用されます。テンプレートをインポートする前に、以下のセクションをテンプレートに追加します。

    <%#
    kind: provision
    name: My_Provisioning_Template
    oses:
    - My_first_OS
    - My_second_OS
    locations:
    - My_first_Location
    - My_second_Location
    organizations:
    - My_first_Organization
    - My_second_Organization
    %>

手順

  1. /var/lib/foreman に、テンプレートを保存するためのディレクトリーを作成します。

    # mkdir /var/lib/foreman/My_Templates_Dir
    注記

    テンプレートを /var/lib/foreman の外部のカスタムディレクトリーに配置できますが、Foreman サービスがその内容を読み取れるようにする必要があります。ディレクトリーには正しいファイルパーミッションと foreman_lib_t SELinux ラベルが必要です。

  2. 新しいテンプレートディレクトリーの所有者を foreman ユーザーに変更します。

    # chown foreman /var/lib/foreman/My_Templates_Dir
  3. TemplateSync タブの Repo 設定を /var/lib/foreman/My_Templates_Dir/ ディレクトリーと一致するように変更します。