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