什么是playbook?

PlayBook即"剧本","兵书"之意,PlayBook是由以下部分组成的
play: 定义的是主机的角色。(主角还是配角)
task: 定义的是具体执行的任务。(角色的台词和动作)
playbook: 由一个或多个play(角色)组成,一个play(角色)可以包含多个task(台词,动作)。
简单理解为: 使用不同的模块完成一件事情
在Ansible中"剧本文件"是以yml结尾的文件。
在SaltStack中"剧本文件"是以sls结尾的文件。
但是语法,使用的都是yaml语法

playbook组成:

核心组件:

name:多用于说明
hosts:受控主机列表
tasks:任务,用于选择执行部分代码

playbook的构成

 1   target section:定义将要执行playbook的远程主机组
 2   variable section:定义playbook运行时需要使用的变量
 3   task section:定义将要在远程主机上执行的任务列表
 4   handler section:定义task执行完成以后需要调用的任务

Playbook对应的目录层有五个,分别如下:

1 vars 变量层
2 tasks 任务层
3 handlers 触发条件
4 files 文件
5 template 模板

语法:

#语法 描述
缩进:YAML使用固定的缩进风格表示层级结构,每个缩进由两个空格组成, 不能使用TAB
冒号:以冒号结尾的除外,其他所有冒号后面所有必须有空格
短横线:表示列表项,使用一个短横杠加一个空格,多个项使用同样的缩进级别作为同一列表
#示例:
- hosts: all
  tasks:
  - name: 创建zls组
      group:
        name: zls
        gid: 777
        state: present
  - name: 创建zls用户
      user:
        name: zls
        uid: 777
        group: 777
        shell: /sbin/nologin
        create_home: false

语法检测:ansible-playbook --syntax-check 文件名