付録F Git を使用したテンプレートの同期
Red Hat Satellite 6 は、Satellite Server と、Git リポジトリーまたはローカルディレクトリーとの間で、ジョブテンプレート、プロビジョニングテンプレート、およびパーティションテーブルテンプレートの同期を有効にします。
Git リポジトリーまたはローカルディレクトリーと、Satellite Server との間でテンプレートを同期するのはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat サービスレベルアグリーメント (SLA) では完全にサポートされていません。これらは、機能的に完全でない可能性があり、実稼働環境での使用を目的とはしていませんが、近々発表予定のプロダクトイノベーションをリリースに先駆けてご提供することにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。
このセクションでは、以下のワークフローを説明します。
- TemplateSync プラグインのインストールおよび設定
- タスクのエクスポートおよびインポートの実行
F.1. TemplateSync プラグインの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Satellite Server でプラグインを有効にします。
satellite-installer --enable-foreman-plugin-templates
# satellite-installer --enable-foreman-plugin-templates
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - プラグインが適切にインストールされていることを確認するには、管理 > 設定 に TemplateSync メニューがあることを確認します。
F.2. TemplateSync プラグインの設定 リンクのコピーリンクがクリップボードにコピーされました!
管理 > 設定 > TemplateSync に移動して、プラグインを設定します。以下の表は、属性の動作を説明します。一部の属性は、タスクのインポートまたはエクスポートにのみ使用されます。
パラメーター | API パラメーター名 | インポートの意味 | エクスポートの意味 |
---|---|---|---|
関連付け |
許可される値: |
OS、組織、およびロケーションベースのメタデータへのテンプレートの関連付け |
該当なし |
ブランチ |
|
Git リポジトリーで、読み取るデフォルトブランチを指定します。 |
Git リポジトリーで、書き込むデフォルトブランチを指定します。 |
ディレクトリー名 |
|
リポジトリー下で、読み込むサブディレクトリーを指定します。 |
リポジトリー下で、書き込むサブディレクトリーを指定します。 |
フィルター |
|
正規表現に一致する名前を持つテンプレートだけをインポートします。 |
正規表現に一致する名前を持つテンプレートだけをエクスポートします。 |
強制インポート |
|
インポートしたテンプレートで、ロックされている同じ名前のテンプレートを上書きします。 |
該当なし |
メタデータエクスポートモード |
許可される値: |
該当なし |
エクスポートする際にメタデータが処理される方法を定義します。
|
否定 |
許可される値: |
フィルター属性を無視するテンプレートをインポートします。 |
フィルター属性を無視するテンプレートをエクスポートします。 |
接頭辞 |
|
テンプレート名は接頭辞で開始しないため、指定した文字列をテンプレートの頭に追加します。 |
該当なし |
リポジトリー |
|
同期するリポジトリーへのパスを定義します。 |
エクスポートするリポジトリーへのパスを定義します。 |
詳細 |
許可される値: |
このアクションについて、詳細なメッセージをログに記録します。 |
該当なし |
F.3. テンプレートのインポートおよびエクスポート リンクのコピーリンクがクリップボードにコピーされました!
タスクのインポートおよびエクスポートは、一連の API コールを介して利用できます。API コールは、ロールベースのアクセスコントロールシステムを使用し、これによりどのユーザーもタスクを実行できます。TemplateSync プラグインにより、Git リポジトリーまたはローカルディレクトリーで同期できます。
前提条件
インポートしたテンプレートが Satellite Web UI に表示されるようにするには、各テンプレートに、テンプレートが属するロケーションおよび組織が含まれている必要があります。これは、すべてのタイプのテンプレートタイプに適用されます。テンプレートをインポートする前に、以下のセクションをテンプレートに追加します。
Hammer を使用したテンプレートのインポートやエクスポートも可能です。詳細は、『Hammer Cli ガイド』の「テンプレートのプロビジョニング」を参照してください。
F.3.1. Git リポジトリーでテンプレートの同期 リンクのコピーリンクがクリップボードにコピーされました!
- SSH 認証 (gitosis、gitolite、git デーモンなど) を使用する Git サーバーを設定します。
TemplateSync タブで TemplateSync プラグイン設定を設定します。
- Branch 設定を変更して、Git サーバーへのターゲットブランチに一致します。
-
Git リポジトリーに一致するように、Repo 設定を変更します。たとえば、
git@git.example.com/templates.git
に置いたリポジトリーに対して、設定をssh://git@git.example.com/templates.git
に設定します。
Foreman ユーザーとして Git SSH ホストキーを許可します。
sudo -u foreman ssh git.example.com
# sudo -u foreman ssh git.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow SSH 接続が成功していないため、出力に
Permission denied, please try again.
メッセージが表示されることが期待されます。SSH キーペアがない場合は作成します。パスフレーズは指定しないでください。
sudo -u foreman ssh-keygen
# sudo -u foreman ssh-keygen
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Satellite の公開キーを使用して Git サーバーを設定します。これは、
/usr/share/foreman/.ssh/id_rsa.pub
に保存されます。 Satellite Server から、TemplateSync メニューに指定した Git リポジトリーにテンプレートをエクスポートします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテンツを変更したら、テンプレートを Satellite Server にインポートします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite が提供するテンプレートがロックされ、デフォルトではインポートできません。この動作を上書きするには、TemplateSync メニューの
Force import
設定をyes
に変更するか、force
パラメーター-d '{ "force": "true" }’
を import コマンドに追加します。
F.3.2. ローカルディレクトリー リンクのコピーリンクがクリップボードにコピーされました!
ローカルディレクトリーでリビジョン管理システムリポジトリーを設定した場合は、テンプレートをローカルディレクトリーと同期すると便利です。つまり、テンプレートを編集し、ディレクトリーで編集履歴を追跡できます。テンプレートの編集後に変更を Satellite Server に同期します。
テンプレートを保存するディレクトリーを作成し、適切なパーミッションおよび SELinux コンテキストを適用します。
mkdir -p /usr/share/templates_dir/ chown foreman /usr/share/templates_dir/ chcon -t httpd_sys_rw_content_t /usr/share/templates_dir/ -R
# mkdir -p /usr/share/templates_dir/ # chown foreman /usr/share/templates_dir/ # chcon -t httpd_sys_rw_content_t /usr/share/templates_dir/ -R
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
TemplateSync タブで Repo 設定を変更し、エクスポートディレクトリー
/usr/share/templates_dir/
に一致させます。 Satellite Server からローカルディレクトリーにテンプレートをエクスポートします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテンツを変更したら、テンプレートを Satellite Server にインポートします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite が提供するテンプレートがロックされ、デフォルトではインポートできません。この動作を上書きするには、TemplateSync メニューの
Force import
設定をyes
に変更するか、force
パラメーター-d '{ "force": "true" }’
を import コマンドに追加します。
-d
パラメーターを使用して、リクエストでデフォルトの API 設定を上書きします。以下の例では、git.example.com/templates
リポジトリーにテンプレートをエクスポートします。
F.4. 高度な Git 設定 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインで、または .gitconfig
ファイルを編集して、TemplateSync プラグインに追加の Git 設定を実行できます。
自己署名の Git 証明書の同意
Git サーバーで自己署名証明書の認証を使用している場合は、git config http.sslCAPath
コマンドでその証明書を検証します。
たとえば、以下のコマンドを実行して/cert/cert.pem
に保存されている自己署名証明書を確認します。
sudo -u foreman git config --global http.sslCAPath cert/cert.pem
# sudo -u foreman git config --global http.sslCAPath cert/cert.pem
高度なオプションの一覧は、git-config
の man ページを参照します。
F.5. プラグインのアンインストール リンクのコピーリンクがクリップボードにコピーされました!
アンインストール後にエラーを回避するには、以下を行います。
Satellite インストーラーを使用するプラグインを無効にします。
satellite-installer --no-enable-foreman-plugin-templates
# satellite-installer --no-enable-foreman-plugin-templates
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プラグインのカスタムデータを削除します。このコマンドは、作成したテンプレートには影響しません。
foreman-rake templates:cleanup
# foreman-rake templates:cleanup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プラグインをアンインストールします。
yum remove tfm-rubygem-foreman_templates
# yum remove tfm-rubygem-foreman_templates
Copy to Clipboard Copied! Toggle word wrap Toggle overflow