详解ansible批量管理服务

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 将输出的信息变得有格式
      

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1594.html