目录结构
ansible/
├── ansible.cfg
├── hosts
├── roles
│ └── zabbix-agentd
│ ├── files
│ │ ├── install_zabbix.sh
│ │ └── zabbix-3.0.1.tar.gz
│ ├── handlers
│ ├── tasks
│ │ └── main.yml
│ └── templates
└── site.yml
[root@localhost ansible]# more site.yml
---
- name: Install Zabbix-agentd
hosts: zabbix-agentd
remote_user: root
roles:
- zabbix-agentd
[root@localhost ansible]# more roles/zabbix-agentd/tasks/main.yml
- name: copy zabbix_tar_gz to client
copy: src=zabbix-3.0.1.tar.gz dest=/tmp/zabbix-3.0.1.tar.gz
- name: copy install_shell to client
copy: src=install_zabbix.sh dest=/tmp/install_zabbix.sh
- name: install zabbix
shell: /bin/bash /tmp/install_zabbix.sh
[root@localhost ansible]# more roles/zabbix-agentd/files/install_zabbix.sh
#######client install#############
yum install -y gcc make libselinux-python
grep -q "zabbix" /etc/group
GROUP_IS=$?
if [ $GROUP_IS == 1 ];then
groupadd zabbix
fi
grep -q "zabbix" /etc/passwd
USER_IS=$?
if [ $USER_IS == 1 ];then
useradd -g zabbix zabbix -M -s /sbin/nologin
fi
mv /usr/local/zabbix /usr/local/zabbix_old-$(date +%Y%m%d)
rm -rf /etc/zabbix
cd /tmp
tar zxvf zabbix-3.0.1.tar.gz
cd zabbix-3.0.1
./configure --prefix=/usr/local/zabbix --enable-agent
make install
ln -s /usr/local/zabbix/etc /etc/zabbix
ln -s /usr/local/zabbix/sbin/zabbix_agentd /usr/local/sbin/
cp misc/init.d/fedora/core/zabbix_agentd /etc/init.d/
cp /etc/zabbix/zabbix_agentd.conf /etc/zabbix/zabbix_agentd.conf-$(date +%Y%m%d)
cat >/etc/zabbix/zabbix_agentd.conf<<EOF
PidFile=/tmp/zabbix_agentd.pid
LogFile=/tmp/zabbix_agentd.log
Server=172.31.x.x
ServerActive=172.31.x.x
ListenPort=10050
ListenIP=0.0.0.0
EnableRemoteCommands=1
UnsafeUserParameters=1
LogFileSize=10
Timeout=30
#UserParameter=key,script
EOF
/etc/init.d/zabbix_agentd start
chkconfig zabbix_agentd on
[root@localhost ansible]# ansible-playbook site.yml