14.4. 导入和导出模板
您可以使用 Satellite Web UI、hammer CLI 或 Satellite API 导入和导出模板。卫星 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
要使用 CLI 而不是 Satellite Web UI,请参阅 ]。要使用 API,请参阅 xref:api_Importing_Templates_managing-hosts[。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Sync Templates。
- 点 Import。
- 每个字段填充在 Administer > Settings > TemplateSync 中配置的值。根据需要更改您要导入的模板的值。有关每个字段的详情请参考 第 14.2 节 “配置 TemplateSync 插件”。
- 点 Submit。
Satellite Web UI 显示导入的状态。状态不是持久性;如果您离开状态页面,则无法返回它。
CLI 过程
要从存储库导入模板,请输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为了更好地索引和管理模板,请使用
--prefix
为您的模板设置类别。要从大型存储库中选择某些模板,请使用--filter
来定义您要导入的模板的标题。例如,--filter '.*Ansible Default$'
导入各种 Ansible 默认模板。
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 POST
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果导入成功,您会收到
{"message":"Success"}
。
14.4.2. 导出模板 复制链接链接已复制到粘贴板!
使用这个流程将模板导出到 git 存储库。
要使用 CLI 而不是 Satellite Web UI,请参阅 ]。要使用 API,请参阅 xref:api_Exporting_Templates_managing-hosts[。
流程
- 在 Satellite Web UI 中,导航到 Hosts > Sync Templates。
- 单击 Export。
- 每个字段填充在 Administer > Settings > TemplateSync 中配置的值。根据需要更改您要导出的模板的值。有关每个字段的详情请参考 第 14.2 节 “配置 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 POST
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果导出成功,您会收到
{"message":"Success"}
。
您可以使用 -d
参数在请求中指定它们来覆盖默认的 API 设置。以下示例将模板导出到 git.example.com/templates
存储库: