Playbook简介
Ansible Playbook(剧本)的核心作用是通过声明式YAML文件实现自动化配置管理、应用部署和基础设施编排。Playbook的核心元素包括:
- hosts:指定要执行任务的主机列表,主机列表中的主机需首先在主机清单中定义。
- tasks:定义要在远程主机上执行的任务列表,是Playbook的主体部分。
- variables:定义playbook运行时使用的变量,可以是内置变量或自定义变量。
- templates:配合变量使用的模板文件,在不同主机上使用同一个模板文件可以生成不同的内容。
- handlers与notity:两者结合使用,可以实现触发器的功能,并能根据条件执行或不执行某些操作。
- tags:标签,可以通过标签实现执行指定代码的功能。
Playbook元素详解
hosts与tasks
hosts与tasks是playbook的基本元素,hosts用于指定要执行任务的主机列表,tasks用于定义要在远程主机上执行的任务列表,每项任务都有一个用户自定义的任务名称name和要执行的Ansible模块及命令。
1、在playbook中使用hosts与tasks。

2、执行任务列表,命令为:ansible-playbook playbook名称。

tags
tags用于为任务打标签,可以通过标签执行指定的任务。
1、在playbook中使用tags。

2、执行指定标签的任务,命令为:ansible-playbook playbook名称 −t 标签名称。

handlers与notity
handlers与notity两者结合使用,可以实现触发器的功能。当有notify属性的任务被执行时会自动触发notify指定的任务。

variables
variables元素用于定义Playbook运行时使用的变量。变量名称必须是以字母开头的字符串,并且只能包含字母,数字和下划线,变量的引用格式为:{{变量名}}。变量的定义有以下几种方式:
1、系统的内置变量。
1.1、系统的内置变量可使用setup模块查看。

1.2、内置变量可在playbook中直接引用。

1.3、执行剧本。

1.4、查看目标主机上的运行结果。
1.4.1、主机一上的执行结果。

1.4.2、主机二上的执行结果。

2、环境变量,运行时通过−e参数传入变量值。
2.1、在playbook中引用变量。

2.2、执行剧本,通过参数传入变量值。

2.3、查看目标主机上的运行结果。

3、在playbook中定义变量。
3.1、在playbook中定义并引用变量,变量的定义使用关键字vars。

3.2、执行剧本。

3.3、查看目标主机上的运行结果。

4、注册变量,用于临时保存命令执行的结果值。
4.1、在playbook中定义并引用变量,注册变量的定义使用关键字register。

4.2、执行剧本。

4.3、查看目标主机上的运行结果。

5、在主机清单中定义变量。
5.1、在主机清单中定义变量,不同的主机可定义不同的变量。

5.2、在playbook中引用变量。

5.3、执行剧本。

5.4、查看目标主机上的运行结果。
5.4.1、主机一上的执行结果。

5.4.2、主机二上的执行结果。
