在我最初的awx设置中,我使用了我的角色、清单和剧本,并将它们放在一个由ssh密钥身份验证所保护的GIT存储库中。在Ansible-AWX7.0中,HTTPS似乎被破坏了
我将GIT-存储库作为一个项目导入到ansible-awx中。
我已经设法参考了剧本和清单。如何使用GIT存储库中的角色?
我尝试使用以下requirements.yml:
- src: ansible-awx@<some azure devops repo>
name: hosting
scm: git当尝试运行将宿主角色应用于我的库存的剧本时,无法解决宿主角色。
百无所成。
我们非常感谢你的帮助。
更新:实际设置。1.角色放置在单独的GIT回购中。
/
- defaults
- files
- handlers
- meta
- tasks
- templates
- varsIdentity added: /tmp/awx_5_kjl4ecco/artifacts/5/ssh_key_data (/tmp/awx_5_kjl4ecco/artifacts/5/ssh_key_data)
ERROR! the role 'celum-hosting' was not found in /var/lib/awx/projects/_8__cps_tc_git/playbooks/hosting/roles:/var/lib/awx/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:/var/lib/awx/projects/_8__cps_tc_git/playbooks/hosting
The error appears to be in '/var/lib/awx/projects/_8__cps_tc_git/playbooks/hosting/playbook_applyhostingrole.yml': line 4, column 7, but may
be elsewhere in the file depending on the exact syntax problem.
The offending line appears to be:
roles:
- { role: celum-hosting }
^ here发布于 2020-03-17 09:05:29
如果在git的path /中有一个剧本,那么剧本所需要的角色必须位于路径/roles中相同的基本dir中。你不能“分享”角色。这是Ansible的一个“问题”。在早期,工作dir可能是roles搜索路径的基础,但是这是一个安全风险,并且被删除了。Ansible总是在文件夹中查找角色文件夹,在其中运行剧本。
因此,您不能只为角色创建Git存储库,而为AWX中的剧本设置另一个存储库,因为这两个存储库都位于不同的位置。
也许-你能做的是把角色存储库作为一个Git子模块放在你的剧本中,在这种情况下,剧本回购也会签出角色存储库。但在这种情况下,你永远不可能在你的剧本回购中扮演角色。
https://serverfault.com/questions/985294
复制相似问题