想着机器已经有几台了,说多不多,少也不算少,想着利用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