想着机器已经有几台了,说多不多,少也不算少,想着利用ansible安装zabbix_agent 客户端方便点了。做完了有些东西记录下,于是就有了这篇文章了。
[root@1_WEB01 ansible ]# tree .├── ansible.cfg├── hosts├── roles│ └── zabbix_agent_install│ ├── files│ │ ├── gcc_zabbix.sh│ │ └── zabbix-2.4.5.tar.gz│ ├── tasks│ │ └── main.yml│ ├── templates│ │ ├── zabbix_agentd│ │ └── zabbix_agentd.conf│ └── vars│ └── main.yml└── zabbix_agent_install.yml6 directories, 9 files
[root@1_WEB01 ansible ]# cat host [66server]192.168.50.1:9831192.168.50.2:9831192.168.50.3:9831192.168.50.4:9831192.168.50.5:9831192.168.50.6:9831
[root@1_WEB01 zabbix_agent_install]# cat files/gcc_zabbix.sh #!/bin/bash #tar xf zabbix-2.4.5.tar.gz cd /tmp/zabbix-2.4.5 ./configure --prefix=/usr/local/zabbix-2.4.5/ --enable-agent sleep 1 make make install mkdir -p /var/log/zabbix/ touch /var/log/zabbix/zabbix_agentd.log chown zabbix:zabbix -R /var/log/zabbix/
[root@1_WEB01 zabbix_agent_install]# cat tasks/main.yml
- name: Create zabbix user
user: name={{ zabbix_user }} state=present createhome=no shell=/sbin/nologin
- name: replicate Zabbix Client
copy: src=zabbix-2.4.5.tar.gz dest=/usr/local/src/zabbix-2.4.5.tar.gz owner=root group=root
- name: Uncompression Zabbix Client File
shell: tar zxf /usr/local/src/zabbix-2.4.5.tar.gz -C /tmp/
- name: Install zabbix
script: gcc_zabbix.sh #这里是因为shell没办法编译,所以就用来script模块
- name: Copy zabbix start script
template: src=zabbix_agentd dest=/etc/init.d/zabbix_agentd owner=root group=root mode=0755
- name: Copy Zabbix Config File
template: src=zabbix_agentd.conf dest={{ zabbix_dir }}/zabbix-2.4.5/etc/zabbix_agentd.conf owner={{ zabbix_user }} group={{ zabbix_user }} mode=0664
- name: Modify Zabbix Dir Permisson
file: path= {{ zabbix_dir }}/zabbix owner= {{ zabbix_user }} group= {{ zabbix_user }} mode=0755 recurse=yes
- name: Start Zabbix Service
shell: /etc/init.d/zabbix_agentd start
- name: Add Boot start
shell: chkconfig --level 345 zabbix_agentd on[root@1_WEB01 zabbix_agent_install]# cat templates/zabbix_agentd
#!/bin/sh
#chkconfig: 2345 10 90
#description: Activates/Deactivates zabbix_agentd Server
# Zabbix
# Copyright (C) 2001-2015 Zabbix SIA
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# Start/Stop the Zabbix agent daemon.
# Place a startup script in /sbin/init.d, and link to it from /sbin/rc[023].d
SERVICE="Zabbix agent"
DAEMON=/usr/local/zabbix-2.4.5/sbin/zabbix_agentd
PIDFILE=/tmp/zabbix_agentd.pid
case $1 in
‘start‘)
if [ -x ${DAEMON} ]
then
$DAEMON
# Error checking here would be good...
echo "${SERVICE} started."
else
echo "Can‘t find file ${DAEMON}."
echo "${SERVICE} NOT started."
fi
;;
‘stop‘)
if [ -s ${PIDFILE} ]
then
if kill `cat ${PIDFILE}` >/dev/null 2>&1
then
echo "${SERVICE} terminated."
rm -f ${PIDFILE}
fi
fi
;;
‘restart‘)
$0 stop
sleep 10
$0 start
;;
*)
echo "Usage: $0 start|stop|restart"
;;
esac[root@_WEB01 zabbix_agent_install]# grep -v ‘^#‘ templates/zabbix_agentd.conf |grep -v ‘^$‘
LogFile=/var/log/zabbix/zabbix_agentd.log
Server=192.168.50.30
StartAgents=5
ServerActive=192.168.50.30:10051
Hostname={{ ansible_all_ipv4_addresses[1] }}
Timeout=30
Include=/usr/local/zabbix-2.4.5/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1[root@1_WEB01 zabbix_agent_install]# cat vars/main.yml zabbix_dir: /usr/local/ zabbix_user: zabbix zabbix_port: 10050 zabbix_server_ip: 192.168.50.30
本文出自 “孜孜不倦的学习着...” 博客,请务必保留此出处http://jonyisme.blog.51cto.com/3690784/1844866
原文地址:http://jonyisme.blog.51cto.com/3690784/1844866