本篇是实战篇,主要是通过saltstack进行部署,生产如果使用,请在测试环境测试后在执行,记得叫test=Ture,如果您对saltstack不太熟悉,建议您查看下:Saltstack相关文章
一、环境介绍
服务器系统 | IP | 主机名 |
---|---|---|
CentOS7.2 x86_64 | salt-master | 192.168.56.11 |node01 |
CentOS7.2 x86_64 | salt-minion | 192.168.56.12 |node02 |
二、Zabbix-agent部署过程
环境是基于前几篇博客基础上Master和minion已经配置完成
2.1,创建zabbix项目文件夹,用于存放状态文件
[root@node01 salt]# mkdir /srv/salt/base/zabbix -p
[root@node01 salt]# mkdir /srv/salt/base/init/files -p
2.2 配置salt的epel源文件
[root@node01 salt]# cd /srv/salt/base/init/files/
[root@node01 files]# wget http://mirrors.aliyun.com/repo/epel-7.repo
2.3 拷贝zabbix配置文件作为salt的zabbix源文件
[root@node01 files]# ll /etc/zabbix/zabbix_agent.conf
lrwxrwxrwx 1 root root 22 11月 7 17:40 /etc/zabbix/zabbix_agent.conf -> /etc/zabbix_agent.conf
[root@node01 files]# yum install zabbix22-agent.x86_64
[root@node01 files]# mkdir /srv/salt/base/zabbix/files
[root@node01 files]# cp /etc/zabbix_agentd.conf /srv/salt/base/zabbix/files
三、添加jiaja模板变量到salt的zabbix源文件
[root@linux-node1 files]# grep ^[a-Z] zabbix_agentd.conf
PidFile=/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log
LogFileSize=0
Server={{ ZABBIX_SERVER }}
Hostname={{ AGENT_HOSTNAME }}
Include=/etc/zabbix_agentd.conf.d/
四、配置epel状态文件管理
[root@linux-node1 init]# pwd
/srv/salt/base/init
[root@linux-node1 init]# vim yum-repo.sls
[root@linux-node1 init]# cat yum-repo.sls
/etc/yum.repos.d/epel-7.repo:
file.managed:
- source: salt://init/files/epel-7.repo
- user: root
- group: root
- mode: 644
五,写zabbix-agent的状态文件
[root@linux-node1 zabbix]# pwd
/srv/salt/base/zabbix
[root@linux-node1 zabbix]# cat zabbix-agent.sls
include: #支持include功能
- init.yum-repo
zabbix-agent:
pkg.installed:
- name: zabbix22-agent
- require:
- file: /etc/yum.repos.d/epel-7.repo
file.managed:
- name: /etc/zabbix_agentd.conf
- source: salt://zabbix/files/zabbix_agentd.conf
- user: root
- group: root
- mode: 644
- template: jinja
- defaults:
ZABBIX_SERVER: 192.168.56.12
AGENT_HOSTNAME: {{ grains['fqdn'] }}
- require:
- pkg: zabbix-agent
service.running:
- name: zabbix-agent
- enable: True
- watch:
- file: zabbix-agent
- pkg: zabbix-agent
zabbix_agentd.conf.d:
file.directory:
- name: /etc/zabbix_agentd.conf.d
- watch_in:
- service: zabbix-agent
- require:
- pkg: zabbix-agent
- file: zabbix-agent
六、测试
[root@linux-node1 files]# salt 'node02' state.sls zabbix.zabbix-agent test=True
七,执行
[root@linux-node1 files]# salt 'node02' state.sls zabbix.zabbix-agent
八、登陆到node2上面,zabbix 已正常启动
[root@linux-node2 ~]# ps aux |grep zabbix
zabbix 4595 0.0 0.0 77792 1364 ? S 20:34 0:00 /usr/sbin/zabbix_agentd
zabbix 4596 0.0 0.0 77792 1320 ? S 20:34 0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec]
zabbix 4597 0.0 0.0 77792 1012 ? S 20:34 0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection]
zabbix 4598 0.0 0.0 77792 1012 ? S 20:34 0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection]
zabbix 4599 0.0 0.0 77792 1012 ? S 20:34 0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection]
zabbix 4600 0.0 0.0 77792 1340 ? S 20:34 0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec]
root 4645 0.0 0.0 112652 976 pts/1 S+ 20:35 0:00 grep --color=auto zabbix
九、本章重点总结
1.Jinja模板变量名不支持中横线 -
2.状态文件可以根据项目或服务进行分类管理
3.状态文件支持include功能,支持正则匹配minion id
4.在编写状态文件之前需要先查清楚相关的软件包名称及配置文件名称
5.要习惯先用test=True进行测试,避免不必要的故障
6.基础的东西(jdk,web应用等) 通用的安装全放在一个目录,然后使用include功能
7.做好状态模块之间的依赖关系,避免不必要的状态执行
·
- QQ精品交流群
-
- 微信公众号
-