什么是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 文件名