1.什么是playbook
PlayBook即"剧本","兵书"之意,PlayBook是由以下部分组成的
play(host): 定义的是主机的角色。(主角还是配角)
Book(task): 定义的是具体执行的任务。(角色的台词和动作)
playbook: 由一个或多个play(角色)组成,一个play(角色)可以包含多个task(台词,动作)。
简单理解为: 对不同的主机使用很多不同的模块做很多工作完成一件事情
在Ansible中"剧本文件"是以yml结尾的文件。
在SaltStack中"剧本文件"是以sls结尾的文件。
但是语法,使用的都是yaml语法
2.playbook组成
[root@m01 ~]# vim touch.yml
#指定执行动作的主机组
- hosts: web_group
#指定远端操作的用户
remote_user: root
#开始定义变量
vars:
file_name: lhd
#指定动作
tasks:
#注释:说明这个动作
- name: 创建文件
#指定shell模块创建一个文件
shell: touch /tmp/{{ file_name }}
#执行前检查语法
[root@m01 ~]# ansible-playbook --syntax-check touch.yml
playbook: touch.yml
#该命令,只能检查语法,无法验证逻辑
3.PlayBook与ad-hoc
完整性 | √ | ✘ |
持久性 |
√ |
✘ |
特点 |
PlayBook |
ad-hoc |
执行效率 |
低 |
高 |
变量 |
支持 |
不支持 |
耦合度 |
低 |
高 |
1.PlayBook功能比ad-hoc更全,是对ad-hoc的一种编排.
2.PlayBook能很好的控制先后执行顺序, 以及依赖关系.
3.PlayBook语法展现更加的直观.
4.playbook可以持久使用,ad-hoc无法持久使用.