Ansible - Playbooks 剧本

在本章中,我们将了解 Ansible 中的 Playbook。

playbook是编写 Ansible 代码的文件。 playbook 以 YAML 格式编写。 YAML 代表另一种标记语言。 Playbooks 是 Ansible 的核心功能之一,它告诉 Ansible 要执行什么。 它们就像 Ansible 的待办事项列表,其中包含任务列表。

playbook包含用户想要在特定机器上执行的步骤。 playbook 按顺序运行。 Playbook 是 Ansible 所有用例的构建块。


playbook结构

每个playbook都是其中一个或多个playbook的集合。 Playbooks 是使用 Plays 构建的。 playbook中可以有多个playbook。

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

YAML 是一种严格类型的语言; 因此,在编写 YAML 文件时需要格外小心。 有不同的 YAML 编辑器,但我们更喜欢使用像 notepad++ 这样的简单编辑器。 只需打开 notepad++ 并复制并粘贴以下 yaml 并将语言更改为 YAML (Language → YAML)。

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


创建playbook

让我们从编写一个示例 YAML 文件开始。 我们将逐一介绍用 yaml 文件编写的每个部分。


--- 
   name: install and configure DB
   hosts: testServer
   become: yes

   vars: 
      oracle_db_port_value : 1521
   
   tasks:
   -name: Install the Oracle DB
      yum: <code to install the DB>
    
   -name: Ensure the installed service is enabled and running
   service:
      name: <your service name>

以上是一个示例playbook,我们试图涵盖playbook的基本语法。 将上述内容另存为 test.yml 文件。 YAML 语法需要遵循正确的缩进,并且在编写语法时需要小心。


不同的 YAML 标签

现在让我们看看不同的 YAML 标签。 不同的标签如下所述 −

name

此标签指定 Ansible playbook 的名称。 就像这本playbook将要做的那样。 可以为playbook指定任何逻辑名称。

hosts

这个标签指定了我们想要运行任务的主机或主机组的列表。 主机字段/标签是强制性的。 它告诉 Ansible 在哪些主机上运行列出的任务。 这些任务可以在同一台机器或远程机器上运行。 一个人可以在多台机器上运行任务,因此主机标签也可以有一组主机的条目。

vars

Vars 标签让你定义你可以在你的playbook中使用的变量。 用法类似于任何编程语言中的变量。

tasks

所有playbook都应包含要执行的任务或任务列表。 任务是一个需要执行的操作列表。 任务字段包含任务的名称。 这用作用户的帮助文本。 它不是强制性的,但在调试playbook时证明是有用的。 每个任务在内部链接到一段称为模块的代码。 应该执行的模块,以及要执行的模块所需的参数。