PLAYBOOK基本编写
Playbook是以YAML格式编写的文本文件,通常使用拓展名yml。
Playbook使用空格字符缩进表示其数据结构,YAML对于空格数量没有要求,但是有两个基本规则。
1.处于层次结构中同一级别的数据元素(例如同一列表中的项目)必须具有相同的缩进量。
2.如果项目属于其他项目的子项,其缩进量必须大于父项。
Playbook开头的一行是由三个破折号组成(---)是文档的开始标记
末尾可能是用三个圆点作为文档结束符,可以省略(...)
在这两个标记符之间会以列表的形式定义playbook。YAML列表中的项目以一个破折号加空格开头。Play是一个键值对集合。统一Play中应当使用相同缩进量
---
- name: Configure important user consistently
hosts: servera. lab.example.com
tasks:
- name: newbie exists with UID 4000
user:
name:newbieuid:4000
state: present
play的第一行是破折号加空格(表示该play是列表的第一项)
- name: Configure important user consistently
name属性是可选的,它用于记录你的playbook用途
hosts: servera. lab.example.com
hosts属性是指定对其运行的play中的任务的主机
tasks:
- name: newbie exists with UID 4000
user:
name:newbieuid:4000
state: present- name:****** (可以忽略 但是一定要在前加一个-,以表示这是新的一个命令)
模块:***
tasks属性其值指定要为play运行的任务列表
user是需要运行的模块,其参数是一组键值对,他们是模块的子项
运行PLAYBOOK
ansible-playbook命令可用于运行playbook。参数是文件名称
amsible-playbook demo.yml
他会显示每个play和任务的name键的值
运行ansible playbook中的任务是幂等的,是可以安全的多次运行
提高输出的详细程度
选项 | 描述 |
-v | 显示任务结果 |
-vv | 任务结果和人物配置都会显示 |
-vvv | 包含关于受管主机链接信息 |
-vvvv | 增加了链接插件相关的额外详细程度选项,包括受管主机用于执行脚本的用户,以及所执行的脚本 |
语法验证
ansible-playbook --syntax-check demo.yml
如果验证失败。将报告语法错误。
执行空运行
-C选项对playbook执行空运行。这会使ansible报告playbook执行时会发生什么,但是不会对其有任何的更改