Ansible Tower无法找到我的角色

时间:2016-01-08 02:15:51

标签: ansible ansible-tower

我的目录结构设置使得playbooks目录位于/var/lib/awx/projects/下,而角色是playbooks下的符号链接。

我需要角色的符号链接,因为我正在使用本地系统中的git push将playbooks/roles推送到Tower,而且剧本和角色都在不同的git仓库中。

当我尝试在Tower工作时,它抱怨它无法找到我的角色。当我看到ansible所说的每条路径时,它们就在那里。

为什么我的角色无法找到?

1 个答案:

答案 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所述。