【发布时间】:2015-11-13 01:51:53
【问题描述】:
根据 Ansible 文档,Playbook 是:
...真正简单的配置管理和多机部署系统的基础,不同于现有的任何系统,并且非常适合部署复杂的应用程序。
同样,根据这些相同的文档,Role 是:
...基于已知文件结构自动加载某些 vars_files、任务和处理程序的方法。按角色对内容进行分组还可以轻松地与其他用户共享角色。
但是,这些及其不同用例之间的区别对我来说并不是很明显。例如,如果我将/etc/ansible/hosts 文件配置为:
[databases]
mydb01.example.org
mydb02.example.org
[mail_servers]
mymail01.example.org
mymail_dr.example.org
...那么这个“[databases]”条目是什么...一个角色?或者某个地方的剧本 YAML 文件的名称?还是别的什么?!?
如果有人可以向我解释这些差异,我对 Ansible 的理解将大大提高!
- Playbook vs Role vs
[databases]以及/etc/ansible/hosts中的类似条目 - 如果剧本是在 YAML 文件中定义的,那么角色是在哪里定义的?
- 除了位于 Ansible 服务器上的
ansible.cfg之外,如何使用可用的 Playbook/角色添加/配置 Ansible?例如,当我运行ansible-playbook someplaybook.yaml时,Ansible 怎么知道在哪里可以找到该剧本?
【问题讨论】:
-
角色是一种使剧本中的代码可重用的方法,方法是将功能放入通用的“库”中,然后可以根据需要在任何剧本中使用。
-
tasks做事。playbooks组织和启动任务。roles组织执行特定功能的任务、处理程序等。启动role(s) 需要一些playbook。roles和playbooks的集合叫什么?例如,一个管理您站点上所有主机配置的主机? -
简单有效的 Ansible 结构元素概览:devops.stackexchange.com/a/9833/17395
标签: ansible