bco 发表于 2018-1-3 22:21:23

【SaltStack】在Master上给Minion端安装zabbix

  一、IP信息说明
  【Master】
  IP: 192.168.236.100
  【Minion】
  IP: 192.168.236.101
  二、配置SaltStack
  关于SaltStack Master和Minion的安装这里不再赘述!
  【配置Master】
  1.新建目录
  mkdir-p/srv/salt/iso
  mkdir -p   /srv/salt/install_zabbix
  2.新建配置文件
  (1)/srv/top.sls
  

1 base:  

2    '*':  

3   - cpitables.*  
4   - install_zabbix.*
  

  (2)/srv/salt/install_zabbix/install_zabbix_new.sls
  说明:本sls文件主要用来从Master端的/srv/salt/iso目录下复制文件到Minion端的/soft目录下,然后安装zabbix并启动zabbix
  

1 /soft/zabbix-2.4.5.tar.gz:  

2   file.managed:  

3    - unless: test -e /soft/zabbix-2.4.5.tar.gz  

4    - source: salt://iso/zabbix-2.4.5.tar.gz  
5    - user: root
  
6    - group: root
  
7    - mode: 644
  
8   cmd.run:
  
9    - cwd: /soft
  
10    - name: tar zxf zabbix-2.4.5.tar.gz && cd /soft/zabbix-2.4.5 && ./configure --prefix=/usr/local/zabbix-2.4.5 --enable-agent && make && make install
  
11    - unless: test -d /usr/local/zabbix-2.4.5
  
12    - require:
  
13      - file: /soft/zabbix-2.4.5.tar.gz
  
14
  
15 /soft/install_zabbix.py:
  
16   file.managed:
  
17    - unless: test -e /soft/install_zabbix.py
  
18    - source: salt://install_zabbix/install_zabbix.py
  
19    - user: root
  
20    - group: root
  
21    - mode: 775
  
22   cmd.run:
  
23    - name: /usr/bin/python /soft/install_zabbix.py
  
24    - require:
  
25      - file: /soft/install_zabbix.py
  

  (3)/srv/salt/install_zabbix/install_zabbix.py
  说明:该脚本主要用来修改zabbix客户端的配置文件信息,并设置防火墙
  

1 #!/usr/bin/env python  

2 # coding:utf-8  
3
  
4 import socket
  
5 import os
  
6
  
7 def init_zabbix():
  
8   hostname = socket.gethostname()
  
9   os.system('useradd zabbix -s /sbin/nologin')
  
10   os.system('sed -i "s/Server=127.0.0.1/Server=192.168.236.100/g;s/ServerActive=127.0.0.1/ServerActive=192.168.236.100/g" /usr/local/zabbix-2.4.5/etc/zabbix-agentd.c
  
11 onf')
  
12   os.system('sed -i "s/Hostname=Zabbix server/Hostname=' + hostname+ '/g" /usr/local/zabbix-2.4.5/etc/zabbix-agentd.conf')
  
13   os.system('echo "/usr/local/zabbix-2.4.5/sbin/zabbix_agentd" >> /etc/rc.local')
  
14   os.system("/usr/local/zabbix-2.4.5/sbin/zabbix_agentd")
  
15
  
16   if os.system('service iptables status|grep 10050') > 0:
  
17         os.system('iptables -A INPUT -s 192.168.236.0/24 -p tcp -m state --state NEW -m tcp --dport 10050 -j ACCEPT ')
  
18         os.system('service iptables save')
  
19
  
20 init_zabbix()
  

  (4) 将zabbix客户端安装包zabbix-2.4.5.tar.gz复制到目录/srv/salt/iso
  【Minion】
  在客户端新建目录soft
  mkdir /soft
  三、操作说明
  在Master执行如下命令进行操作:
  

salt '*'state.sls install_zabbix.install_zabbix_new  

  '*' : 表示所有可侦测到的Minion端
  state.sls :为固定用法
  install_zabbix :表示install_zabbix_new.sls文件所在的上次目录,该目录以/etc/salt/master文件中定义的目录为家目录
  install_zabbix_new : 为操作用到的sls文件
  其他可能用到的命令:
  检测Master与Minion的是否连接:
  

salt '*'test.ping  

  在安装zabbix前进行验证测试:
  

salt '*'state.sls install_zabbix.install_zabbix_new test=True  
页: [1]
查看完整版本: 【SaltStack】在Master上给Minion端安装zabbix