首页 文章

Ansible Tower无法找到我的角色

提问于
浏览
2

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

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

当我试图在Tower工作时,它抱怨它无法找到我的角色 . 当我看到ansible指出它所查看的每条路径时,它们就在那里 .

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

1 回答

  • 1

    如果符号链接确实是问题(我无法分辨)那么git submodules可能是你的解决方案 . 您可以将"roles"存储库作为子模块添加到剧本所在的存储库中 . 您需要克隆父存储库然后递归:

    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所述 .

相关问题