Ansible - 剧本


在本章中,我们将学习 Ansible 中的 Playbook。

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

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

剧本结构

每个剧本都是其中一个或多个剧本的聚合。Playbook 是使用 Play 构建的。一本剧本中可以有多个剧本。

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

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

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

创建剧本

让我们首先编写一个示例 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 标签。不同的标签描述如下 -

姓名

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

主机

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

变量

Vars 标签允许您定义可以在剧本中使用的变量。用法与任何编程语言中的变量类似。

任务

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