【问题标题】:Is there a way to use galaxy roles without downloading them?有没有办法在不下载的情况下使用银河角色?
【发布时间】:2025-12-19 16:00:06
【问题描述】:

我在 terraform 中运行 ansible。

我使用以下方式下载了一个星系角色:

ansible-galaxy install <role>

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

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

所以我指定了一个这样的目录:

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

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

我想知道是否有一种方法可以在不实际下载的情况下使用银河角色?或者,如果有一种方法可以在我的 ansible playbook 中指定在我的角色之外寻找其他角色的位置?

【问题讨论】:

  • This question (and answer) about requirements.yml for role downloads 可能会给您一些关于如何组织项目的想法。
  • 有没有办法触发playbook中需求文件的下载?还是我需要在剧本之前手动运行命令?
  • 这不是在剧本中完成的(尽管我从未尝试过......)。您必须在 git cloned/pull 项目后立即执行此操作。 AWX/Tower 会自动执行此操作。

标签: ansible ansible-galaxy


【解决方案1】:

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

您可以通过设置ANSIBLE_ROLES_PATH 环境变量或在ansible.cfg 中设置roles_path 来告诉Ansible 在哪里寻找角色。详情请见the documentation

【讨论】:

    最近更新 更多