第 3 章 Ansible Playbook 的实际示例
Ansible 可以与许多不同的设备分类(从基于云的 REST API、Linux 和 Windows 系统、网络硬件等)通信。
以下是两个 Ansible 模块的示例,会自动更新两种类型的服务器。
3.1. Playbook 执行 复制链接链接已复制到粘贴板!
playbook 以从上到下的顺序运行。在每个 play 中,任务也会按照从上到下的顺序运行。具有多个"play"的 playbook 可以编排多计算机部署,在您的 webservers 上运行一个 play,然后在数据库服务器上运行另一个 play,然后在网络基础架构中有一个第三个 play,等等。
每个 play 至少定义了两个内容:
- 使用模式到目标的受管节点
- 至少一个要执行的任务
使用 playbook 中的完全限定集合名称来确保选择了正确的模块,因为多个集合可以包含具有相同名称的模块(如 user)。
如需更多信息,请参阅在 playbook 中使用集合。
在本例中,第一个 play 以 Web 服务器为目标;第二个 play 以数据库服务器为目标。
playbook 包含两个 play:
- 第一个检查 web 服务器软件是否是最新的,并根据需要运行更新。
- 第二个检查数据库服务器软件是否是最新的,并根据需要运行更新。
您的 playbook 可以包含多个主机行和任务。
例如,此示例 playbook 为每个 play 设置 remote_user。这是 SSH 连接的用户帐户。您可以在 playbook、play 或任务级别上添加其他 Playbook 关键字,以影响 Ansible 的行为。Playbook 关键字可以控制连接插件,无论是使用特权升级、如何处理错误等。
为了支持各种环境,Ansible 可让您在 Ansible 配置或清单中将许多参数设置为命令行标志。学习这些数据源的优先级规则可帮助您扩展 Ansible 生态系统