SaltStack环境设置
在本案例我们使用两个环境base和prod,base环境用来存放初始化的功能。prod环境用于放置生产的配置管理功能:
[root@master ~]# vim /etc/salt/master
file_roots: base: - /srv/salt/base prod: - /srv/salt/prod #Pillar settings pillar_roots: base: - /srv/pillar/base prod: - /srv/pillar/prod
请参照上面的配置进行Master配置文件的修改。为保证实验顺利完成,建议创建和本案例一致的配置和路径。
创建目录结构并重启salt-master,如下所示:
[root@master ~]# mkdir -pv /srv/salt/{base,prod}
[root@master ~]# mkdir -pv /srv/pillar/{base,prod}
[root@master ~]# /etc/init.d/salt-master restart
Zabbix Agent安装
如果你的监控系统使用的是Zabbix(推荐),那么所有的Minion都应该安装上Zabbix Agent,主要涉及SaltStack的pkg、file、service状态模块以及Pillar的使用。
通过使用Pillar来设置Zabbix Server的IP地址:
[root@master ~]# cat /srv/pillar/base/top.sls
base: '*': - zabbix
[root@master ~]# cat /srv/pillar/base/zabbix.sls
zabbix-agent: Zabbix_Server: 192.168.100.200
安装并启动Zabbix Agent:
[root@master ~]# cat /srv/salt/base/init/zabbix_agent.sls
zabbix-agent: pkg.installed: - name: zabbix22-agent file.managed: - name: /etc/zabbix_agentd.conf - source: salt://init/files/zabbix_agentd.conf - template: jinja - defaults: - Server: {{ pillar['zabbix-agent']['Zabbix_Server'] }} - require: - pkg: zabbix-agent service.running: - enable: True - watch: - pkg: zabbix-agent - file: 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
注:zabbix_agentd.conf.d Zabbix配置文件目录用来存放用户自定义的配置。
编写完毕Zabbix Agent的部署后,请将zabbix_agentd.conf文件放置/srv/salt/base/init/files/目录下,同时修改如下:
Include=/etc/zabbix_agentd.conf.d/ #修改或增加
Server={{Server}} #修改此行
这样后期就可以将自定义的监控配置放在/etc/zabbix_agentd.conf.d/目录下。可以先在某一台机器上手动安装Zabbix Agent,然后把相关的文件复制到Salt Master。
初始化环境引用
目前已经把所有初始化所需要的功能都写好了,每个小功能都是一个sls文件。统一放置在init目录下,这样归类后很容易解读。那么怎样来使用呢?在top file里面把这些功能都列出了,可不是一个好主意,我们需要再编写一个sls把这些初始化的功能都包含进来:
[root@master ~]# cat /srv/salt/base/init/env_init.sls
include: - init.zabbix_agent
现在我们就可以在top.sls里面给Minion指定状态并执行了:
[root@master ~]# cat /srv/salt/base/top.sls
base: '*': - init.env_init
注意,在生产环境中,每次执行状态,强烈建议先进行测试,确定SaltStack会执行哪些操作然后再应用状态到服务器上:
[root@master ~]# salt '*' state.highstate test=True
在所有Minion上执行状态:
[root@master ~]# salt '*' state.highstate
2017年3月21日 上午11:09 沙发
真是时光荏苒!
2017年3月26日 上午8:15 板凳
感觉不错哦,认真拜读咯!