14.4. テンプレートのインポートおよびエクスポート
Satellite Web UI、Hammer CLI、または Satellite API を使用して、テンプレートをインポートおよびエクスポートできます。Satellite API 呼び出しは、ロールベースのアクセス管理システムを使用して、任意のユーザーでタスクの実行が可能になります。Git などのバージョン管理システム、またはローカルディレクトリーとテンプレートを同期できます。
14.4.1. テンプレートのインポート
任意のリポジトリーからテンプレートをインポートできます。/tmp/dir
、git://example.com
、https://example.com
、ssh://example.com
などの異なるプロトコルを使用してリポジトリーにポイントさせることもできます。
Satellite が提供するテンプレートはロックされ、デフォルトではインポートできません。この動作を上書きするには、TemplateSync メニューの Force import
設定を yes
に変更するか、force
パラメーター -d '{ "force": "true" }'
を import コマンドに追加します。
前提条件
各テンプレートに、テンプレートが属するロケーションおよび組織が含まれている必要がある。これは、すべてのタイプのテンプレートタイプに適用されます。テンプレートをインポートする前に、以下のセクションをテンプレートに追加します。
<%# 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 %>
Satellite Web UI の代わりに CLI を使用する場合は、] を参照してください。API を使用するには、xref:api_Importing_Templates_managing-hosts[ を参照してください。
手順
- Satellite Web UI で、ホスト > テンプレートの同期 に移動します。
- インポート をクリックします。
- 各フィールドには、管理 > 設定 > TemplateSync で設定された値が入力されます。インポートするテンプレートに従って値を変更します。各フィールドの詳細は、「TemplateSync プラグインの設定」 を参照してください。
- Submit をクリックします。
Satellite Web UI はインポートのステータスを表示します。ステータスは永続的ではありません。ステータスページを離れると、ページに戻ることはできません。
CLI 手順
リポジトリーからテンプレートをインポートするには、以下のコマンドを実行します。
$ hammer import-templates \ --branch "My_Branch" \ --filter '.*Template Name$' \ --organization "My_Organization" \ --prefix "[Custom Index] " \ --repo "https://git.example.com/path/to/repository"
テンプレートのインデックス化と管理には、
--prefix
を使用してテンプレートにカテゴリーを設定することができます。大型リポジトリーから特定のテンプレートを選択するには、--filter
を使用してインポートするテンプレートのタイトルを定義します。たとえば、--filter '.*Ansible Default$'
とすると、各種 Ansible Default テンプレートをインポートします。
API の手順
POST
リクエストをapi/v2/templates/import
に送信します。# curl -H "Accept:application/json" \ -H "Content-Type:application/json" \ -u login:password \ -k https://satellite.example.com/api/v2/templates/import \ -X POST
インポートが成功すると、
{"message":"Success"}
が表示されます。
14.4.2. テンプレートのエクスポート
テンプレートを git リポジトリーにエクスポートするには、以下の手順を使用します。
Satellite Web UI の代わりに CLI を使用する場合は、] を参照してください。API を使用するには、xref:api_Exporting_Templates_managing-hosts[ を参照してください。
手順
- Satellite Web UI で、ホスト > テンプレートの同期 に移動します。
- エクスポート をクリックします。
- 各フィールドには、管理 > 設定 > TemplateSync で設定された値が入力されます。エクスポートするテンプレートに従って値を変更します。各フィールドの詳細は、「TemplateSync プラグインの設定」 を参照してください。
- Submit をクリックします。
Satellite Web UI はエクスポートのステータスを表示します。ステータスは永続的ではありません。ステータスページを離れると、ページに戻ることはできません。
CLI 手順
テンプレートをリポジトリーにエクスポートするには、次のコマンドを入力します。
hammer export-templates \ --organization "My_Organization" \ --repo "https://git.example.com/path/to/repository"
注記このコマンドは、リポジトリーのクローンを作成し、コミットに変更を加えて、リポジトリーにプッシュして戻します。
--branch "My_Branch"
オプションを使用すると、テンプレートを特定のブランチにエクスポートできます。
API の手順
POST
リクエストをapi/v2/templates/export
に送信します。# curl -H "Accept:application/json" \ -H "Content-Type:application/json" \ -u login:password \ -k https://satellite.example.com/api/v2/templates/export \ -X POST
エクスポートが成功すると、
{"message":"Success"}
が表示されます。
-d
パラメーターを使用して、リクエストでデフォルトの API 設定を上書きします。以下の例では、git.example.com/templates
リポジトリーにテンプレートをエクスポートします。
# curl -H "Accept:application/json" \
-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\"}"