jgfh 发表于 2016-9-1 10:29:56

ansible安装zabbix_agent客户端

想着机器已经有几台了,说多不多,少也不算少,想着利用ansible安装zabbix_agent 客户端方便点了。做完了有些东西记录下,于是就有了这篇文章了。

1
2
# 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





1
2
# cat host
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





1
2
3
4
5
6
7
8
9
10
11
# 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/





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 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





1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 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, MA02110-1301, USA.
# Start/Stop the Zabbix agent daemon.
# Place a startup script in /sbin/init.d, and link to it from /sbin/rc.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





1
2
3
4
5
6
7
8
9
# 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 }}
Timeout=30
Include=/usr/local/zabbix-2.4.5/etc/zabbix_agentd.conf.d/*.conf
UnsafeUserParameters=1





1
2
3
4
5
# cat vars/main.yml
zabbix_dir: /usr/local/
zabbix_user: zabbix
zabbix_port: 10050
zabbix_server_ip: 192.168.50.30



页: [1]
查看完整版本: ansible安装zabbix_agent客户端