14.4. 导入和导出模板


您可以使用 Satellite Web UI、hammer CLI 或 Satellite API 导入和导出模板。卫星 API 调用使用基于角色的访问控制系统,该工具可让任务以任何用户身份执行。您可以将模板与版本控制系统(如 Git)或本地目录同步。

14.4.1. 导入模板

您可以从您选择的存储库导入模板。您可以使用不同的协议指向您的存储库,如 /tmp/dirgit://example.comhttps://example.comssh://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
    %>
    Copy to Clipboard Toggle word wrap

要使用 CLI 而不是 Satellite Web UI,请参阅 ]。要使用 API,请参阅 xref:api_Importing_Templates_managing-hosts[

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Sync Templates
  2. Import
  3. 每个字段填充在 Administer > Settings > TemplateSync 中配置的值。根据需要更改您要导入的模板的值。有关每个字段的详情请参考 第 14.2 节 “配置 TemplateSync 插件”
  4. 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"
    Copy to Clipboard Toggle word wrap

    为了更好地索引和管理模板,请使用 --prefix 为您的模板设置类别。要从大型存储库中选择某些模板,请使用 --filter 来定义您要导入的模板的标题。例如,-- filter '.*Ansible Default$' 导入各种 Ansible 默认模板。

API 流程

  1. 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
    Copy to Clipboard Toggle word wrap

    如果导入成功,您会收到 {"message":"Success"}

14.4.2. 导出模板

使用这个流程将模板导出到 git 存储库。

要使用 CLI 而不是 Satellite Web UI,请参阅 ]。要使用 API,请参阅 xref:api_Exporting_Templates_managing-hosts[

流程

  1. 在 Satellite Web UI 中,导航到 Hosts > Sync Templates
  2. 单击 Export
  3. 每个字段填充在 Administer > Settings > TemplateSync 中配置的值。根据需要更改您要导出的模板的值。有关每个字段的详情请参考 第 14.2 节 “配置 TemplateSync 插件”
  4. Submit

Satellite Web UI 显示导出的状态。状态不是持久性;如果您离开状态页面,则无法返回它。

CLI 过程

  1. 要将模板导出到存储库,请输入以下命令:

    hammer export-templates \
    --organization "My_Organization" \
    --repo "https://git.example.com/path/to/repository"
    Copy to Clipboard Toggle word wrap
    注意

    此命令克隆存储库,在提交中进行更改,并推送回存储库。您可以使用 --branch "My_Branch" 选项,将模板导出到特定的分支。

API 流程

  1. 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
    Copy to Clipboard Toggle word wrap

    如果导出成功,您会收到 {"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\"}"
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat