Ansible Playbooks
在这一章中,我们将学习Ansible中的Playbooks。
Playbooks是编写Ansible代码的文件。Playbooks以YAML格式编写。YAML代表另一种标记语言。
Playbooks 是Ansible的核心功能之一,告诉Ansible要执行什么。它们就像Ansible的待办事项列表,其中包含一系列任务。
Playbooks包含用户想要在特定机器上执行的步骤。Playbooks按顺序运行。Playbooks是Ansible所有用例的构建块。
Playbook结构
每个Playbook是一个包含一个或多个plays的集合。使用Plays结构化Playbooks。一个Playbook中可以有多个play。
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
此标签指定要针对其运行任务的主机或主机组的列表。hosts字段/标签是必需的。它告诉Ansible在哪些主机上运行列出的任务。任务可以在同一台机器上或远程机器上运行。可以在多台机器上运行任务,因此hosts标签也可以具有一组主机条目。
vars
Vars标签允许您定义在Playbook中可以使用的变量。使用类似于任何编程语言中的变量。
tasks
所有Playbook都应包含要执行的任务或任务列表。任务是一个需要执行的动作列表。一个任务字段包含任务的名称。这作为用户的帮助文本。它不是强制的,但在调试Playbook时很有用。每个任务内部链接到一个称为模块的代码片段。一个应该被执行的模块,以及要执行的模块所需的参数。