环境:
172.25.40.1 server1(westos.org) saltstack-master saltstack-minion zabbix-server
172.25.40.2 server2 saltstack-minion zabbix-agent
一、salt安装
1、配置yum源
2、安装salt-master并修改配置文件启动:
yum install salt-master -y
systemctl start salt-master
systemctl enable salt-master
3、安装salt-minion并修改配置文件:
yum install salt-minion -y
修改配置文件:
vim /etc/salt/minion
master: 172.25.40.1(指向master端)
systemctl start salt-minion
systemctl enable salt-minion
4、验证服务端端是否已经接收客户端key:
salt-key -L
如果没有:
salt-key -A
在查看:
5、检测是否能够通讯:
salt ‘server2’ test.ping
表示成功
vim /etc/hosts
二、配置批量管理(在master(server1)上操作):
1、修改salt-master配置文件:
vim /etc/salt/master
file_roots:
base:
- /srv/salt/ (定义sls路径)
pillar_roots:
base:
- /srv/salt/pillar (定义pillar路径:主要存放自定义变量)
2、创建存放目录:
mkdir /srv/salt/
mkdir /srv/pillar
3、定义入口文件:查看结构:
cd /srv/
server1(westos.org)安装zabbix-server
[root@server1 srv]# cat salt/zabbix_server/install.sls
install-zabbix-server:
pkg.installed:
- pkgs:
- zabbix-server-mysql
- zabbix-web-mysql
- mariadb-server
file.managed:
- name: /etc/zabbix/zabbix_server.conf
- source: salt://zabbix_server/files/zabbix_server.conf
- template: jinja
- context:
DBName: {{ pillar['DBName'] }}
DBUser: {{ pillar['DBUser'] }}
DBPassword: {{ pillar['DBPassword'] }}
- name: /etc/httpd/conf.d/zabbix.conf
- source: salt://zabbix_server/files/zabbix.conf
service.running:
- name: zabbix-server
- watch:
- file: install-zabbix-server
- name: httpd
server2 安装 zabbix-agent
[root@server1 srv]# cat salt/zabbix_agent/install.sls
install-zabbix-agent:
pkg.installed:
- pkgs:
- zabbix-agent
file.managed:
- name: /etc/zabbix/zabbix_agentd.conf
- source: salt://zabbix_agent/files/zabbix_agentd.conf
- template: jinja
- context:
Server: {{ pillar['Server'] }}
ServerActive: {{ pillar['ServerActive'] }}
Hostname: {{ pillar['Hostname'] }}
service.running:
- name: zabbix-agent
- watch:
- file: install-zabbix-agent
设置变量
[root@server1 srv]# ls
pillar salt
[root@server1 srv]# cd pillar/
[root@server1 pillar]# ls
top.sls web
[root@server1 pillar]# cat top.sls
base:
'*':
- web.vars
[root@server1 pillar]# cat web/vars.sls
{% if grains['fqdn'] == 'westos.org' %}
DBName: zabbix
DBUser: zabbix
DBPassword: redhat
webserver: httpd
{% elif grains['fqdn'] == 'server2' %}
Server: 172.25.40.1
ServerActive: 172.25.40.1
Hostname: server2
{% endif %}
在另外一台虚拟机server3安装zabbix-server和zabbix-agent,目的是为server1获取zabbix配置文件
[root@server3 ~]# yum install -y zabbix-server
[root@server3 ~]# yum install -y zabbix-agent
[root@server3 ~]# scp /etc/zabbix/zabbix_server.conf server1:/srv/salt/zabbix_service/files
[root@server3 ~]# scp /etc/zabbix/zabbix_agentd.conf server1:/srv/salt/zabbix_agent/files
修改配置文件:
[root@server1 zabbix_server]# vim files/zabbix_server.conf
DBName={{ DBName }}
DBUser={{ DBUser }}
DBPassword={{ DBPassword }}
[root@server1 zabbix_server]# cd …/zabbix_agent/
[root@server1 zabbix_agent]# ls
files install.sls
[root@server1 zabbix_agent]# vim files/zabbix_agentd.conf
Server={{ Server }}
Hostname={{ Hostname }}
ServerActive={{ ServerActive }}
推送,执行批量操作
[root@server1 pillar]# salt ‘*’ state.highstate
配置数据库
[root@server1 ~]# mysql_secure_installation ##初始化数据库,设置密码
1)创建数据库
[root@server1 ~]# mysql -uroot -predhat
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@localhost identified by ‘redhat’;
授予zabbix库上的所有特权发送到标识的zabbix@localhost用户
MariaDB [(none)]> create database zabbix character set utf8 collate utf8_bin;
#创建数据库zabbix字符集可以包含中文
2)导入数据到zabbix数据库
[root@server1 zabbix-server-mysql-4.0.5]# zcat /usr/share/doc/zabbix-server-mysql-4.0.5/create.sql.gz | mysql -p zabbix
[root@server1 zabbix-server-mysql-4.0.5]# mysql -p ##查看导入数据
Enter password:
MariaDB [(none)]> use zabbix;
MariaDB [zabbix]> show tables;