1.剧本模式使用方法
1.创建/server/scripts/playbook目录,用于存放剧本
2.将/etc/ansible/hosts主机清单文件复制到该目录下,cp /etc/ansible/hosts .
3.书写剧本,剧本后缀名需要为yml,举报人你格式如下图,hosts代表执行的终端,与主机清单相对应,此处name为执行步骤,方便剧本执行出错定位错误。
4.执行剧本,ansible-playbook -i hosts 01.show.yml,此处-i,指定主机清单文件,01.show.yml为执行的
案列01:书写剧本,将管理端文件发送给所有被管理端
---- hosts: alltasks:- name: 01创建目录file:path: /server/files/state: directory- name: 02分发文件copy:src: /server/files/day022.txtdest: /server/files/
案例02:书写剧本,给所有被端粒段安装zabbix
---- hosts: alltasks:- name: 01file:path: /tmp/tools/appstate: directory- name: 02ansible.builtin.get_url:validate_certs: nourl: https://mirrors.tuna.tsinghua.edu.cn/zabbix/zabbix/6.0/rhel/7/x86_64/zabbix-agent2-6.0.7-1.el7.x86_64.rpmdest: /tmp/tools/app- name: 03yum:name: /tmp/tools/app/zabbix-agent2-6.0.7-1.el7.x86_64.rpmstate: installed- name: 04systemd:name: zabbix-agent2enabled: yesstate: started
2.剧本的变量
1.在剧本中定义
2.变量文件
3.共用变量,主机组变量
4.register变量(注册变量)如:ip=`hostname -I`
剧本中定义使用方法:在host下一行定义
---- hosts: allvars:dir: /tmp/tools/app (定义变量dir)tasks:- name: 01file:path: "{{ dir }}"state: directory
变量文件方法使用变量
1.定义变量文件的变量
2.
---- hosts: allvars_files:变量文件路径
共用变量根据主机组使用变量,group_vars会自动根据主机清单匹配,剧本中直接使用变量。
xxxx-check.ymlgroup_vars/lb/vars.yml #存放lb组的变量web/vars.yml #存放web组的变量data/vars.yml #存放xxx组的变量all/vars.yml #所有主机共用的变量一般使用all分组即可,把所有变量存放在一起,供剧本使用
register注册变量需要配合shell一起使用,如下所示
---- hosts: alltasks:- name: 01shell: date +%Fregister: shijian- name: 02debug:msg: "{{ shijian.stdout }}"
3.facts变量
facts变量是ansible的内置变量,通过setup模块获取
禁用facts变量可以提高ansible运行速度,hosts下一行写gather_facts:no