12.3.4. Satellite API を使用したローカルディレクトリーとテンプレートの同期
ローカルディレクトリーで、バージョン管理リポジトリーを設定した場合は、テンプレートをローカルディレクトリーと同期すると便利です。これにより、テンプレートを編集し、ディレクトリーで編集履歴を追跡できます。テンプレートの編集後に変更を Satellite Server に同期することも可能です。
前提条件
各テンプレートに、テンプレートが属するロケーションおよび組織が含まれている必要がある。これは、すべてのタイプのテンプレートタイプに適用されます。テンプレートをインポートする前に、以下のセクションをテンプレートに追加します。
<%# kind: provision name: My Kickstart File oses: - RedHat 7 - RedHat 6 locations: - First Location - Second Location organizations: - Default Organization - Extra Organization %>
手順
テンプレートを保存するディレクトリーを作成し、適切なパーミッションおよび 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-
TemplateSync タブで Repo 設定を変更し、エクスポートディレクトリー
/usr/share/templates_dir/に一致させます。 Satellite Server からローカルディレクトリーにテンプレートをエクスポートします。
$ curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -u login:password \ -k https://_satellite.example.com/api/v2/templates/export \ -X POST \ {"message":"Success"}コンテンツを変更したら、テンプレートを Satellite Server にインポートします。
$ curl -H "Accept:application/json,version=2" \ -H "Content-Type:application/json" \ -u login:password \ -k https://_satellite.example.com/api/v2/templates/import \ -X POST {“message”:”Success”}Satellite が提供するテンプレートがロックされ、デフォルトではインポートできない点にご留意ください。この動作を上書きするには、TemplateSync メニューの
Force import設定をyesに変更するか、forceパラメーター-d '{ "force": "true" }’を import コマンドに追加します。
-d パラメーターを使用して、リクエストでデフォルトの API 設定を上書きします。以下の例では、git.example.com/templates リポジトリーにテンプレートをエクスポートします。
$ curl -H "Accept:application/json,version=2" \
-H "Content-Type:application/json" \
-u login:password \
-k https://satellite.example.com/api/v2/templates/export \
-X POST \
-d "{\"repo\":\"git.example.com/templates\"}"