ansible剧本编写简介
一、剧本文件组成部分:
剧本的角色(play), 定义的是主机信息
剧本的任务(task), 定义的是具体任务
playbook组成部分:
1) 一个playbook有多个play组成
2) 一个play可以包含多个task任务
3) 简单理解为使用多个模块功能完成一件事
二、剧本文件优势特点
1)实现自动化功能更加全面
2)可以更好的控制逻辑关系
3)剧本展现命令语法更直观
4)拥有持久反复执行的特性
三、剧本文件编写规范
利用yaml语法编写
空格的用法: 剧本中出现缩进信息时, 利用缩进表示剧本中不同的层级关系
冒号的用法: 剧本中出现冒号信息时, 利用冒号定义具体信息,并且冒号后面要有空格,结尾除外
短横线用法: 剧本中出现列表信息时, 多个项使用同样的缩进级别作为同一列表
四、剧本执行使用方法
1)检查剧本语法: ansible-playbook --syntax-check test.yml
2)剧本模拟执行: ansible-playbook -C test.yml
3)剧本真实运行: ansible-playbook test.yml
4)识别主机清单: ansible-playbook -i /etc/ansible/hosts_rsync test.yaml
五、剧本编写特殊功能
1) playbook的变量:
重复信息可以设置变量方便调用调整
定义变量的方法说明:
01.在剧本文件中进行定义 vars
02. 利用执行参数赋值变量 --extra-vars
03. 单独在一个文件中定义 /etc/ansible/hosts
04. 采用注册方式定义变量 register: 利用debug模块调用注册的变量信息
2)playbook的判断: when
对操作管理的主机信息进行判断, 需要利用setup模块获取内置变量进行判断
3)playbook的循环: with_items
定义完成多件相同任务可以循环
4)playbook的标签: tags
剧本中多个任务可以灵活的执行
5)playbook触发器: handlers
剧本完成什么操作就触发相应操作
6)playbook忽略错误: ignore_errors: yes
可以忽略一些小错误
7)playbook动态包含: include-tasks
六、演示
1、编写剧本test01.yaml
注:name: 是注释
2、检查语法
注:紫色部分先忽略,最后一行显示语法没问题
3、模拟执行
4、真正执行
5、仅仅执行指定任务tags:t2
6、跳过tags: t2 t3执行t1
7、一键化部署rsync服务
执行:
注:查看帮助,官网查看慢,可参照以下
ansible-doc -l ---------------------列出模块使用简介
ansible-doc -s 模块名 ------------ 指定一个模块详细说明
ansible-doc 模块名 ---------------- 查询模块在剧本中应用方法