我有一组角色,我需要与ansible-galaxy一起安装。
- src: 'https://gitlab.private/role-openstack-net.git'
scm: 'git'
version: '1.0.0'
name: 'role-openstack-net'
- src: 'https://gitlab.private/role-openstack-subnet.git'
scm: 'git'
version: '1.0.0'
name: 'role-openstack-subnet'
真实的上,我有大约20个角色。
所有的角色都是私有的,所以当我运行:
ansible-galaxy install -f -c -r galaxy.yml
它要求我提供每个角色的用户/通行证,这有点麻烦
手动执行以下操作:
git config --global credential.helper store
我输入凭据一次,它就会记住所有凭据
但是我该怎么做Jenkins的工作呢?
我看到这里有一种摆放令牌的方式:
https://github.com/ansible/ansible/pull/34621
但似乎不起作用。
你知道吗?
2条答案
按热度按时间6pp0gazn1#
当前不支持在运行时将凭据参数传递到ansible-galaxy。
可以将凭据添加到
requirements.yml
中,但通常将凭据添加到代码中并不理想,因为其他人有一天可能会利用它们。解决方案是在运行时更新
requirements.yml
。通过查看您的个人资料并更新设置来创建Gitlab个人访问令牌:https://private.gitlab/profile/personal_access_tokens
使用您选择的密码管理器在运行时使用令牌设置变量PAT_TOKEN。
在Jenkins脚本中,使用
sed
更新ansible-galaxy install
之前的requirements.yml
如果您使用的是Gitlab-ci而不是Jenkins,则可以使用现有的ci标记:
mfpqipee2#
如果你已经安装了git,你可以在gitlab中使用这个:
CI_JOB_TOKEN是运行程序用于提取代码的标记。您可以使用自己的标记(安全性较低)