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 コマンドに追加します。
前提条件
各テンプレートに、テンプレートが属するロケーションおよび組織が含まれている必要がある。これは、すべてのタイプのテンプレートタイプに適用されます。テンプレートをインポートする前に、以下のセクションをテンプレートに追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Satellite Web UI の代わりに CLI を使用する場合は、] を参照してください。API を使用するには、xref:api_Importing_Templates_managing-hosts[ を参照してください。
手順
- Satellite Web UI で、ホスト > テンプレートの同期 に移動します。
- インポート をクリックします。
- 各フィールドに、Administer > Settings > TemplateSync で設定した値が入力されます。インポートするテンプレートに従って値を変更します。各フィールドの詳細は、「TemplateSync プラグインの設定」 を参照してください。
- Submit をクリックします。
Satellite Web UI はインポートのステータスを表示します。ステータスは永続的ではありません。ステータスページを離れると、ページに戻ることはできません。
CLI 手順
リポジトリーからテンプレートをインポートするには、以下のコマンドを実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow テンプレートのインデックス化と管理には、
--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
# curl -H "Accept:application/json" \ -H "Content-Type:application/json" \ -u login:password \ -k https://satellite.example.com/api/v2/templates/import \ -X POSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow インポートが成功すると、
{"message":"Success"}が表示されます。
14.4.2. テンプレートのエクスポート リンクのコピーリンクがクリップボードにコピーされました!
テンプレートを git リポジトリーにエクスポートするには、以下の手順を使用します。
Satellite Web UI の代わりに CLI を使用する場合は、] を参照してください。API を使用するには、xref:api_Exporting_Templates_managing-hosts[ を参照してください。
手順
- Satellite Web UI で、ホスト > テンプレートの同期 に移動します。
- エクスポート をクリックします。
- 各フィールドに、Administer > Settings > TemplateSync で設定した値が入力されます。エクスポートするテンプレートに従って値を変更します。各フィールドの詳細は、「TemplateSync プラグインの設定」 を参照してください。
- Submit をクリックします。
Satellite Web UI はエクスポートのステータスを表示します。ステータスは永続的ではありません。ステータスページを離れると、ページに戻ることはできません。
CLI 手順
テンプレートをリポジトリーにエクスポートするには、次のコマンドを入力します。
hammer export-templates \ --organization "My_Organization" \ --repo "https://git.example.com/path/to/repository"
hammer export-templates \ --organization "My_Organization" \ --repo "https://git.example.com/path/to/repository"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記このコマンドは、リポジトリーのクローンを作成し、コミットに変更を加えて、リポジトリーにプッシュして戻します。
--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
# curl -H "Accept:application/json" \ -H "Content-Type:application/json" \ -u login:password \ -k https://satellite.example.com/api/v2/templates/export \ -X POSTCopy to Clipboard Copied! Toggle word wrap Toggle overflow エクスポートが成功すると、
{"message":"Success"}が表示されます。
-d パラメーターを使用して、リクエストでデフォルトの API 設定を上書きします。以下の例では、git.example.com/templates リポジトリーにテンプレートをエクスポートします。