Ansible - Playbooks

在本章中,我们将了解Ansible中的Playbooks.

Playbooks是写入Ansible代码的文件. Playbooks以YAML格式编写. YAML代表Yet Another Markup Language. Playbooks 是Ansible的核心功能之一,并告诉Ansible要执行什么.它们就像Ansible的待办事项列表,其中包含任务列表.

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

Playbook Structure

每个剧本都是其中一个或多个剧集的集合. Playbooks使用Plays进行结构化.在剧本中可以有多个剧本.

剧本的功能是映射针对特定主持人定义的一组指令.

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,我们试图涵盖一本剧本的基本语法.将上述内容保存在 test.yml 文件中. YAML语法需要遵循正确的缩进,并且在编写语法时需要注意一点.

不同的YAML标记

让我们现在浏览不同的YAML标签.下面描述了不同的标签 :

name

此标签指定Ansible playbook的名称.正如本剧本将要做的那样.任何逻辑名都可以给予剧本.

hosts

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

vars

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

任务

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