1 ansible-playbook 任务剧本
1.1 剧本文件概念
(1)playbook可以将多个批量操作模块功能整合,完成一件事情。(2)简化运维工作复杂度(3)playbook通过yaml语法识别描述的状态文件,扩展名是yaml
1.2 剧本文件组成部分
(1)剧本的角色(hosts)定义的是主机信息(2)剧本的任务(tasks)定义的是具体任务信息(3)一个剧本文件有多个hosts组成,一个hosts可以包含多个tasks任务
1.3 剧本文件优势特点
(1)实现自动化功能更加全面(2)可以更好的控制逻辑关系(3)剧本展现命令语法更直观(4)拥有持久反复执行的特性
1.4 剧本文件编写规范
(1)缩进特点: 两个空格表示一个缩进关系(2)冒号用法: 冒号后面需要有空格 冒号结尾不需要有空格主机信息: 172.16.1.41 --- key: value (键值写法) (3)列表用法: 利用短横线加空格构建列表清单
1.5 剧本执行使用方法
(1)检查剧本语法:ansible-playbook --syntax-check test.yaml (2)剧本模拟执行:ansible-playbook -C test.yaml (3)剧本真实运行:ansible-playbook test.yaml
1.6 剧本编写扩展功能
(1)剧本变量编写功能(2)剧本信息通知功能(3)剧本信息判断功能(4)剧本信息循环功能(5)剧本编写忽略错误(6)剧本标签设置功能(7)剧本忽略采集功能(8)剧本信息触发功能
1.6.1 剧本变量编写功能
设置变量方法一: 在剧本执行命令参数中设置变量,命令行最优先
[root@m01 ansible_playbook]#ansible-playbook -e dir=/etc -e file=rsyncd.conf test_变量编写.yaml
设置变量方法二: 在剧本中设置变量,剧本变量其次优先
[root@m01 ansible_playbook]#vim test_变量编写.yaml - hosts: 172.16.1.41 vars: dir: /etc file: rsyncd.conf tasks: - name: copy file copy: src={{ dir }}/{{ file }} dest={{ dir }}/ # {{}}调用变量
设置变量方法二: 在主机清单中设置变量,主机清单变量最不优先
[root@m01 ansible_playbook]#vim /etc/ansible/hosts [sersync_server] 172.16.1.31 [sersync_client] 172.16.1.41 [sersync_server:vars] dir=/etc file=rsyncd.conf # 直接给主机组设置变量,这样主机组内的所有主机都可以调用变量了
1.6.2 剧本信息通知功能
编辑剧本
[root@m01 ansible_playbook]#vim test_通知功能.yaml - hosts: 172.16.1.41 tasks: - name: boot server service: name=rsyncd state=started - name: check server boot shell: netstat -lntup|grep 873 register: oldboy - debug: msg={{ oldboy.stdout_lines }} # 将shell中命令执行结果通过register注册给oldboy,oldboy相当于一个变量,{{}}调取oldboy # debug类似echo,输出信息 # stdout_lines 将输出的信息变得有格式
内容版权声明:除非注明,否则皆为本站原创文章。