概述
当你需要反复执行或要执行多个task时,可以将这些task编写入playbook,然后用playbook推送给在inventory中定义好的一组服务器执行。
playbook以YAML格式表示。一个playbook由一个或多个play组成,一个play中包含一个或多个task,一个task对应一个module。
playbook按从上到下的顺序运行。在每个play中,tasks也按从上到下的顺序运行。
示例
playbook:manage-base-env.yml
---
- name: manager instance base env
hosts: liqitest2
vars:
name1: tree
tasks:
- name: install lrzsz
command: yum install -y lrzsz
- name: install tree
command: yum install -y {{ name1 }}
name play的名称
hosts inventory中定义的主机组
vars 定义变量
tasks 任务list
执行playbook
ansible-playbook manage-base-env.yml
验证playbook
ansible -playbook命令提供了多个验证选项,包括--check、--diff、--list-hosts、--list-tasks和--syntax-check。
-C, --check 不做任何改变;相反,试着预测可能发生的一些变化
-D, --diff 更改(小)文件和模板时,显示这些文件中的差异;
--list-hosts 输出匹配主机的列表;不执行任何其他操作
--list-tasks 列出将要执行的所有任务
--syntax-check 对playbook执行语法检查,但不要执行