4

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

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

当我尝试在 Tower 中运行工作时,它抱怨说找不到我的角色。当我查看 ansible 声明它已查看的每条路径时,它们就在那里。

任何想法为什么找不到我的角色?

4

1 回答 1

2

如果符号链接确实是问题(我不知道),那么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 将自动安装所有列出的角色,如此所述。

于 2016-01-08T03:12:45.320 回答