Playbook vs Role vs [数据库]和/ etc / ansible / hosts中的类似条目
角色是将任务组合到一个容器中的一种方法。你可以有一个设置MySQL的角色,另一个用于设置Postfix等。
剧本定义
什么
正在发生
哪里
。您可以在此处定义主机(主机组,请参见下文)以及将应用于这些主机的角色。
[databases]
您的广告资源中的其他条目是主机组。主机组定义将运行播放的一组主机。
游戏是剧本中的一组任务或角色(或两者)。在大多数情况下(和示例),剧本将只包含一个剧本。但你可以拥有任意多的人。这意味着你可以拥有一个将扮演角色的剧本
postfix
在主机组上
mail_servers
和角色
mysql
在主机组上
databases
:
- hosts: mail_servers
roles:
- postfix
hosts: databases
roles:
mysql
如果在YAML文件中定义了Playbooks,那么角色定义在哪里?
在Ansible中,几乎所有内容都在YAML中定义,这对于角色和剧本来说都很重要。
除了生活在Ansible服务器上的ansible.cfg之外,如何使用可用的Playbooks / Roles添加/配置Ansible?例如,当我运行ansible-playbook someplaybook.yaml时,Ansible如何知道在哪里可以找到该剧本?
AFAIK你必须在调用时提供playbook的路径
ansible-playbook
。所以
ansible-playbook someplaybook.yaml
期待
someplaybook.yaml
在你当前的目录中。但是你可以提供完整的路径:
ansible-playbook /path/to/someplaybook.yaml