D.3. 导入和导出模板
可以通过一系列 API 调用来导入和导出任务。API 调用使用基于角色的访问控制系统,它允许以任何用户身份执行任务。TemplateSync 插件允许与 Git 存储库或本地目录同步。
先决条件
要使导入的模板出现在 Satellite Web UI 中,每个模板必须包含模板所属位置和组织。这适用于所有模板类型。在导入模板前,请确保在模板中添加以下部分:
您还可以使用 Hammer 导入和导出模板。有关更多信息,请参阅 Hammer Cli Guide 中的 Provisioning 模板。
D.3.1. 将模板与 Git 存储库同步 复制链接链接已复制到粘贴板!
- 配置使用 SSH 授权的 Git 服务器,如 gitosis、gitolite 或 git 守护进程。
在 TemplateSync 选项卡中配置 TemplateSync 插件设置。
- 更改 Branch 设置,使其与 Git 服务器上的目标分支匹配。
-
更改 Repo 设置以匹配 Git 存储库。例如,对于位于
git@git.example.com/templates.git的存储库,将设置设置为ssh://git@git.example.com/templates.git。
以 foreman 用户身份接受 Git SSH 主机密钥:
sudo -u foreman ssh git.example.com
# sudo -u foreman ssh git.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以看到
Permission denied,请再次尝试。输出中的消息是预期的,因为 SSH 连接还无法成功。如果还没有密钥对,请创建 SSH 密钥对。不要指定任何密码短语。
sudo -u foreman ssh-keygen
# sudo -u foreman ssh-keygenCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用您 Satellite 中的公钥配置 Git 服务器,该公钥位于
/usr/share/foreman/.ssh/id_rsa.pub中。 将 Satellite 服务器中的模板导出到 TemplateSync 菜单中指定的 Git 存储库:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在其内容被更改后将模板导入到 Satellite 服务器:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,Satellite 提供的模板会被锁定,您无法默认导入它们。要覆盖此行为,请将 TemplateSync 菜单中的
Force import设置改为yes,或将force参数-d '{ "force": "true" }'改为 import 命令。
D.3.2. 将模板与本地目录同步 复制链接链接已复制到粘贴板!
如果您在本地目录中配置了任何修订控制系统存储库,则与本地目录同步模板很有用。这样,您可以编辑模板并跟踪目录中编辑的历史记录。您也可以在编辑模板后将更改同步到 Satellite 服务器。
创建存储模板的目录,并应用适当的权限和 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
# mkdir -p /usr/share/templates_dir/ # chown foreman /usr/share/templates_dir/ # chcon -t httpd_sys_rw_content_t /usr/share/templates_dir/ -RCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
更改 TemplateSync 选项卡中的 Repo 设置,使其与导出目录
/usr/share/templates_dir/匹配。 将模板从 Satellite 服务器导出到本地目录:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在其内容被更改后将模板导入到 Satellite 服务器:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,Satellite 提供的模板会被锁定,您无法默认导入它们。要覆盖此行为,请将 TemplateSync 菜单中的
Force import设置改为yes,或将force参数-d '{ "force": "true" }'改为 import 命令。
您可以使用 -d 参数在请求中指定它们来覆盖默认的 API 设置。以下示例将模板导出到 git.example.com/templates 存储库: