ansible-roles(2)

1278人浏览 / 0人评论

lineinfile模块是文件插入模块

一、rolse

ansible roles 角色,适合大规模使用
playbook如果文件较多的情况,不清楚哪些主机执行了哪些状态的yml文件
roles能清楚哪些主机应用哪些角色

roles目录结构

[root@jumpserver roles]# mkdir {zabbix,xunjian}/{vars,tasks,templates,handlers,files} -p

 

zabbix   角色名称

file     存放文件

handlers   触发任务

tasks    具体任务

templates   模板文件

vars  存放变量 

二、查看yml文件

[root@jumpserver zabbix]# ls files/discovery_tcp_port.sh 
files/discovery_tcp_port.sh
 

[root@jumpserver zabbix]# cat handlers/main.yml 
- name: restart zabbix-agent
  service: name=zabbix-agent state=restarted
 

[root@jumpserver zabbix]# cat handlers/main.yml 
- name: restart zabbix-agent
  service: name=zabbix-agent state=restarted
[root@jumpserver zabbix]# cat tasks/main.yml 
- name: create dir
  file: path={{ file_dir }} state=directory mode=755 owner=jumpserver group=root

- name: copy file
  copy: src=discovery_tcp_port.sh dest=/etc/zabbix/zabbix_agentd.d/script/ mode=755

- name: add zabbix-agent config
  lineinfile: dest=/etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf line='UserParameter=discovery.tcpport[*],/etc/zabbix/zabbix_agentd.d/script/discovery_tcp_port.sh $1 $2'
  notify: restart zabbix-agent

 

[root@jumpserver zabbix]# cat vars/main.yml 
file_name: discovery_tcp_port.sh
file_dir: /etc/zabbix/zabbix_agentd.d/script/
 

[root@jumpserver roles]# cat zabbix.yml 
- hosts: zabbix
  remote_user: jumpserver
  roles:
    - zabbix
  tags: zabbix
 

执行

[root@jumpserver roles]# ansible-playbook -i hosts -t zabbix zabbix.yml --ask-vault-pass 

 

全部评论