我在 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