我可以在 Ansible Tower 中使用 Ansible 中的角色吗?

我可以在 Ansible Tower 中使用 Ansible 中的角色吗?

我在 ansible 中创建了大约 30 个角色。我是否必须在单个剧本中手动转换这些角色才能在 Ansible Tower 中使用它们?

答案1

是的,您可以在 Tower 中使用角色。我们执行类似以下操作,将相关角色分组到剧本中(本例中为 playbook.yml),然后从 Tower 作业中调用该剧本。

剧本.yml

---
- name: Example playbook
  hosts: '{{ target }}'
  roles:
    - { role: init }
    - { role: deploy }
    - { role: cleanup }

目录树

roles/
  init/
    ...
    tasks/
      main.yml
    ...
  deploy/
    ...
    tasks/
      main.yml
    ...
  cleanup/
    ...
    tasks/
      main.yml
  ...

然后从 Tower 作业中,您可以提供{{ target }}或使用调查来提示用户。

答案2

您可以将所有角色移动到角色文件夹,然后可以从 yml 文件中调用它们,以便可以从 ansible tower 执行它们。

以下是对我有用的示例文件。

---
- name: Give your name
    roles:
       - { role: role1 }
       - { role: role2 }

注意:创建一个名为“roles”的文件夹,在其中创建此 yml 文件,并将所有角色移动到此文件夹。请参阅目录布局请参阅 Ansible 文档以获取更多信息。

答案3

您可以利用 tower + galaxy 自动下载角色。只需在您的 playbook 项目中创建一个 requirements.yml 文件即可。

http://docs.ansible.com/ansible-tower/2.4.1/html/userguide/projects.html#ansible-galaxy-support

相关内容