我有一个 Ansible 自动化平台实例。我创建了一个使用 git 作为源代码控制类型的项目。
问题是我使用的 Git 提供程序位于反向代理后面,除了 git 服务器本身的用户名/密码之外,它还要求用户提供用于 SSL 身份验证的 SSL 证书/密钥对。在我的电脑上,我的
.gitconfig
看起来像这样(Windows):
[http "https://my.git.server/"]
sslCert = CurrentUser\\MY\\<certificate thumbprint>
sslBackend = schannel
或者这个(Linux):
[http "https://my.git.server/"]
sslCert = /home/my-user/.git/my-user.crt
sslKey = /home/my-user/.git/my-user.key
如何配置 AAP 以在拉取项目剧本并从 SCM 同步时提供用于 SSL 身份验证的证书/密钥对?
解决方案是将证书和
.gitconfig
托管在主机文件系统上,然后将目录映射到执行环境作业。
创建
.gitconfig
文件:
[http "https://my.git.server/"]
sslCert = /home/runner/.git/my-user.crt
sslKey = /home/runner/.git/my-user.key
将它们保存在
awx
用户可访问的中心位置,例如 /etc/ansible
:
/etc/ansible/gitconfig
|
|__ .git/
| |
| |__ my-user.crt
| |
| |__ my-user.key
|
|__ .gitconfig
使
awx
成为目录的所有者:
chown -R awx:awx /etc/ansible/gitconfig
在 Settings > Job settings > 暴露给隔离作业的路径下,将卷装载从主机文件系统上的目录(在本例中为
/etc/ansible/gitconfig
)添加到执行中用户的主文件夹环境图像(在本例中为/home/runner
):
[
"/etc/ansible/gitconfig:/home/runner:O"
]
:O
选项将目录标记为只读。其他选项可以在这里找到。
AWX_ISOLATION_SHOW_PATHS
。