playbook基本语法
YAML语法介绍:http://www.yaml.org/spec/1.2/spec.html#Syntax
第二行:定义该YAML针对的目标主机,all是所有,也可以是单个或者组
第三行:定义tasks集合,上面图片中就有3个task
第四行:定义task名称,非必须,建议根据task实际任务命名
第五行:定义一个状态action, 例如上面就是用yum安装nginx
第6-9行:使用template模板管理文件,validate参数指文件生成后使用后面命令做nginx语法验证;notify是触发handlers,如果同步后文件MD5有变化会触发restart nginx service 这个handler.
第10-12行:定义一个handler状态让nginx服务重启
问题:注意格式,否则会报错:ERROR! Syntax Error while loading YAML.
使用--syntax-check参数检查语法:
$ansible-playbook nginx.yaml --syntax-check
playbook: nginx.yaml
$ansible-playbook nginx.yaml --list-task #列出task任务名称
playbook: nginx.yaml
play #1 (all): all TAGS: []
tasks:
Install Nginx Package TAGS: []
Copy Nginx.conf TAGS: []
$ansible-playbook nginx.yaml --list-hosts #列出针对的主机
#ansible-playbook -i nginx nginx.yaml -f 3 #执行脚本,根据返回结果来判断
PLAY RECAP **************************************************************
192.168.1.2 : ok=4 changed=3 unreachable=0 failed=0
#可以通过命令查看各服务器nginx端口
如果有修改nginx.conf,只需要运行命令
#ansible-playbook -i nginx /etc/ansible/role/nginx/nginx.yaml -f 3 --start-at-task='Copy Nginx.conf'
####################################################################################################################
如果需要修改的比较复杂建议采用多目录方式,看的比较清楚,出错方便查询
####################################################################################################################
playbook支持交互式执行task,可以指定--step参数
ansible-playbook test nginx.yaml -f 3 --start-at-task='Copy Nginx.conf'
playbook变量与引用
1)定义全局变量:在定义主机组的时候进行定义;如果单台主机和主机组定义的变量名称相同,单台主机变量会生效
2)通过ansible-playbook 命令行传入 ansible-playbook test.yaml -e "key=KEYTEST"
支持传多个变量以及指定文件方式传入变量,变量文件支持YAML和JSON格式
3)参数自定义
4)在playbook文件内使用vars_files
将变量定义到某个文件中,然后再去引用这个文件
5)使用register内的变量
说明:例如2个tasks,其中第二个task是否执行需要判断第一个task运行后的结果,这个时候就需要在task之间传递数据了
variable.yaml:
---
- hosts: test
gather_facts: no
tasks:
- name: register variable
shell: hostname
register: info
- name: diplay Variable
debug: msg="The variable is {{ info }}"
#ansible-playbook variable.yaml
6)使用vars_prompt传入
说明:通过交互式的方式给定义好的参数传入变量值
promp.yaml
ansible playbook组件1
翻译文章标签 ansible playbook-1 ansible变量 文章分类 运维
上一篇:Ansible组件介绍
下一篇:我的友情链接
-
Ansible模块 基础模块二 & Playbook剧本
Ansible基础模块二 Playbook剧本 YAML语法 Ansible硬盘管理
Ansible模块 YAML Playbook剧本 硬盘管理 -
ansible组件介绍和简单playbook测试
修改配置文件:/etc/ansible/ansible.cfg其实ansible中的多个inventory跟单个文件的区别不是很大,采用多个inventory的好处是可以吧
ansible hadoop centos docker