插件:Ansible plugin
一、ansible ad-hoc command
二、ansible-playbook
批量部署zabbix-agent示例:
playbook 目录及文件组成
[root@bogon zabbix]# cat zabbix1.yml
- hosts: zabbix-agent
roles:
- { role: init }
- { role: zabbix }
[root@bogon zabbix]# cat host
[eee]
10.20.200.47:2702 ansible_ssh_user=hzcfroot [zabbix-agent] 10.10.10.14 ansible_ssh_port=2702
10.10.10.16 ansible_ssh_port=2702
[root@bogon zabbix]# tree roles/
roles/
├── init
│ ├── files
│ ├── handlers
│ ├── tasks
│ │ └── main.yml
│ ├── templates
│ └── vars
└── zabbix
├── files
│ └── zabbix-3.2.7.tar.gz
├── handlers
│ └── main.yaml
├── tasks
│ └── main.yml
├── templates
│ └── zabbix_agentd.conf
└── vars
└── main.yml 12 directories, 6 files
[root@bogon zabbix]# cat roles/init/tasks/main.yml
---
- name: install dependency packs
yum: name={{ item }} state=latest
with_items:
- curl-devel - name: add user
user:
name: zabbix
shell: /bin/bash
state: present
[root@bogon zabbix]# cat roles/zabbix/tasks/main.yml
---
#- name: copy zabbix
# copy: src={{ item.src }} dest={{ item.dest }}
# with_items:
# - { src: zabbix-3.2.7.tar.gz , dest: /opt/zabbix-3.2.7.tar.gz } - name: unarchive
unarchive:
src=/root/zabbix-3.2.7.tar.gz
dest=/opt/
copy=yes - name: install
shell: chdir={{ dir_root }} ./configure --prefix=/usr/local/zabbix --enable-agent --with-mysql --with-net-snmp --with-libcurl --with-libxml2 && make && make install - name: copy file
template: src=zabbix_agentd.conf dest=/usr/local/zabbix/etc/zabbix_agentd.conf owner=root group=root mode=644 - name: start agent
shell: /usr/local/zabbix/sbin/zabbix_agentd
[root@bogon zabbix]# cat roles/zabbix/templates/zabbix_agentd.conf |grep -v "^$\|^#"
LogFile=/tmp/zabbix_agentd.log
Server=10.10.10.11
ServerActive=10.10.10.11
Hostname={{ inventory_hostname }}
HostMetadataItem=system.uname
Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
UnsafeUserParameters=1
[root@bogon zabbix]# cat roles/zabbix/vars/main.yml
dir_root: /opt/zabbix-3.2.7
[root@bogon zabbix]# ls roles/zabbix/files/
zabbix-3.2.7.tar.gz
执行结果:
[test_ansible_maven] $ ansible-playbook /etc/ansible/zabbix/zabbix1.yml -i /etc/ansible/zabbix/host -l zabbix-agent -f 5 --private-key /root/apache-tomcat/temp/ssh2148971613044433366.key -u root
channel stopped PLAY [zabbix-agent] ************************************************************ TASK [Gathering Facts] *********************************************************
ok: [10.10.10.14]
ok: [10.10.10.16] TASK [init : install dependency packs] *****************************************
changed: [10.10.10.16] => (item=[u'curl-devel'])
changed: [10.10.10.14] => (item=[u'curl-devel']) TASK [init : add user] *********************************************************
changed: [10.10.10.14]
changed: [10.10.10.16] TASK [zabbix : unarchive] ******************************************************
changed: [10.10.10.14]
changed: [10.10.10.16] TASK [zabbix : install] ********************************************************
changed: [10.10.10.16]
changed: [10.10.10.14] TASK [zabbix : copy file] ******************************************************
changed: [10.10.10.16]
changed: [10.10.10.14] TASK [zabbix : start agent] ****************************************************
changed: [10.10.10.14]
changed: [10.10.10.16] PLAY RECAP *********************************************************************
10.10.10.14 : ok=7 changed=6 unreachable=0 failed=0
10.10.10.16 : ok=7 changed=6 unreachable=0 failed=0 Finished: SUCCESS