有没有办法在不下载 galaxy 角色的情况下使用它们?

Is there a way to use galaxy roles without downloading them?

我 运行 在 terraform 中是 ansible。

我使用以下方法下载了 galaxy 角色:

ansible-galaxy install <role>

这将它下载到我的 ~/.ansible/roles 目录。

但是当我在我与 terraform 一起使用的 ansible 剧本中引用角色名称时,它找不到它。

所以我指定了一个目录,如下所示:

ansible-galaxy install --roles-path . <role>

虽然这现在可以工作,但它与我所有其他受源代码控制的脚本混合在一起。

我想知道是否有一种方法可以在不实际下载 galaxy 角色的情况下使用它?或者,如果有一种方法可以在我的 ansible 剧本中指定除我的角色外还可以在哪里寻找其他角色?

由于 Ansible 只知道如何从本地文件系统中检索角色,因此您必须先下载角色才能使用它们。

您可以通过设置 ANSIBLE_ROLES_PATH 环境变量或在您的 ansible.cfg 中设置 roles_path 来告诉 Ansible 在哪里寻找角色。有关详细信息,请参阅 the documentation