14.3. 使用存储库源
您可以使用现有存储库或本地目录来将模板与 Satellite 服务器同步。
14.3.1. 使用现有存储库同步模板
使用这个流程在 Satellite 服务器和现有存储库之间同步模板。
流程
如果要使用 HTTPS 连接到存储库,并在 Git 服务器上使用自签名证书颁发机构(CA):
在
/usr/share/foreman/
目录下创建一个新目录,以存储证书的 Git 配置:# mkdir --parents /usr/share/foreman/.config/git
在新目录中创建一个名为
config
的文件:# touch /usr/share/foreman/.config/git/config
允许
foreman
用户访问.config
目录:# chown --recursive foreman /usr/share/foreman/.config
使用您自签名 CA 证书的路径为
foreman
用户更新 Git 全局配置:# sudo --user foreman git config --global http.sslCAPath Path_To_CA_Certificate
如果要使用 SSH 连接到存储库:
如果还没有 SSH 密钥对,请创建一个 SSH 密钥对。不要指定密码短语。
# sudo --user foreman ssh-keygen
-
使用 Satellite 的公钥配置您的版本控制服务器,该密钥位于
/usr/share/foreman/.ssh/id_rsa.pub
。 以
foreman
用户身份接受 Git SSH 主机密钥:# sudo --user foreman ssh git.example.com
在 TemplateSync 选项卡中配置 TemplateSync 插件设置。
- 更改 Branch 设置,使其与 Git 服务器上的目标分支匹配。
-
更改 Repo 设置以匹配 Git 存储库。例如,对于位于
git@git.example.com/templates.git
的存储库,将设置设置为git@git.example.com/templates.git
。
14.3.2. 将模板与本地目录同步
如果您在本地目录中配置了版本控制系统,则与本地目录同步模板很有用。这样,您可以编辑模板并跟踪目录中编辑的历史记录。您也可以在编辑模板后将更改同步到 Satellite 服务器。
先决条件
每个模板必须包含模板所属的位置和组织。这适用于所有模板类型。在导入模板前,请确保将以下部分添加到模板中:
<%# 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 %>
流程
在
/var/lib/foreman
中,创建一个用于存储模板的目录:# mkdir /var/lib/foreman/My_Templates_Dir
注意您可以将模板放在
/var/lib/foreman
以外的自定义目录中,但必须确保Foreman
服务可以读取其内容。目录必须具有正确的文件权限和foreman_lib_t
SELinux 标签。将新 templates 目录的所有者改为
foreman
用户:# chown foreman /var/lib/foreman/My_Templates_Dir
-
更改 TemplateSync 选项卡上的 Repo 设置,以匹配
/var/lib/foreman/My_Templates_Dir/
目录。