我有我的目录结构设置,使得 playbooks 目录位于/var/lib/awx/projects/
并且角色是 playbooks 下的符号链接。
我需要角色的符号链接,因为我使用本地系统中的 git push 推playbooks/roles
送到 Tower,并且剧本和角色都在不同的 git repo 下。
当我尝试在 Tower 中运行工作时,它抱怨说找不到我的角色。当我查看 ansible 声明它已查看的每条路径时,它们就在那里。
任何想法为什么找不到我的角色?
我有我的目录结构设置,使得 playbooks 目录位于/var/lib/awx/projects/
并且角色是 playbooks 下的符号链接。
我需要角色的符号链接,因为我使用本地系统中的 git push 推playbooks/roles
送到 Tower,并且剧本和角色都在不同的 git repo 下。
当我尝试在 Tower 中运行工作时,它抱怨说找不到我的角色。当我查看 ansible 声明它已查看的每条路径时,它们就在那里。
任何想法为什么找不到我的角色?
如果符号链接确实是问题(我不知道),那么git submodules可能是您的解决方案。您可以将“角色”存储库作为子模块添加到剧本所在的存储库中。您需要克隆父存储库然后递归:
git clone --recursive playbooks
请注意,子模块可能是一个巨大的 PITA,但如果您需要在单独的存储库中拥有剧本和角色,并且符号链接确实没有跟随 tower,这可能是一个解决方案。
另一种解决方案是为每个角色创建一个单独的 git 存储库。然后你可以通过ansible-galaxy分别安装每个角色。为此,您需要一个requirements.yml
具有如下定义的所有角色:
- src: https://gitsource.host/user/some_role
version: master
name: some_role
Ansible Tower 将自动安装所有列出的角色,如此处所述。