Ansible Playbooks

2025年3月17日 | 阅读 3 分钟

Playbooks 是编写 Ansible 代码的文件。 Playbooks 以 YAML 格式编写。 YAML 意思是“另一种标记语言”,因此不需要太多语法。 Playbooks 是 Ansible 的核心特性之一,用于告诉 Ansible 执行什么,并且用于复杂场景。 它们提供了更高的灵活性。

Playbooks 包含用户希望在特定机器上执行的步骤。 Playbooks 顺序执行。 Playbooks 是 Ansible 所有用例的构建块。

Ansible playbooks 倾向于更多的是配置语言而不是编程语言。

通过 playbook,您可以将特定角色分配给某些主机,并将其他角色分配给其他主机。 通过这样做,您可以在一个 playbook 中协调多个服务器,这些服务器在非常不同的场景中。

Playbook 结构

每个 playbook 都是一个或多个 plays 的集合。 Playbooks 使用 Plays 结构化。 一个 playbook 中可以有多个 play。

Ansible Playbooks

play 的功能是将定义针对特定主机的一组指令映射出来。

有不同的 YAML 编辑器,但更喜欢使用简单的编辑器,例如 notepad++。 首先,打开 notepad++ 并复制粘贴下面的 YAML,并将语言更改为 YAML(语言 → YAML)。

YAML 始终以 ---(3 个连字符)开头。

创建 Playbook

让我们从编写一个 YAML 示例文件开始。 首先,我们必须定义一个任务。 这些是角色和 playbooks 的 ansible 模块的接口。

一个 playbook,一个 play,包含多个任务,如下例所示。

上面是 playbook 的基本语法。 将其保存为文件 test.yml。 YAML 语法需要遵循正确的缩进。

YAML 标签

下面给出了一些 YAML 标签,例如

标签说明
名称它指定 Ansible Playbooks 的名称。
主机它指定您要运行任务的主机列表。 并且主机的标签是强制性的。 它告诉 Ansible 在哪些主机上运行列出的任务。 这些任务可以在同一台机器或远程机器上运行。 可以在多台机器上运行这些任务,并且主机的标签也可以包含一组主机的条目。
变量Vars 标签定义了您可以在 playbook 中使用的变量。 它的用法类似于任何编程语言中的变量。
任务任务是需要在 playbooks 中执行的操作列表。 所有 playbooks 都应包含要执行的任务。 任务字段包含任务的名称。 它不是强制性的,但对调试 playbook 很有用。 在内部,每个任务都链接到称为模块的一段代码。 应该执行一个模块,以及您要运行的模块所需的参数。

下一主题Ansible Tower