SaltStack環(huán)境設置
在本案例我們使用兩個環(huán)境base和prod,base環(huán)境用來存放初始化的功能。prod環(huán)境用于放置生產的配置管理功能:
[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配置文件的修改。為保證實驗順利完成,建議創(chuàng)建和本案例一致的配置和路徑。
創(chuàng)建目錄結構并重啟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安裝
如果你的監(jiān)控系統(tǒng)使用的是Zabbix(推薦),那么所有的Minion都應該安裝上Zabbix Agent,主要涉及SaltStack的pkg、file、service狀態(tài)模塊以及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}} #修改此行
這樣后期就可以將自定義的監(jiān)控配置放在/etc/zabbix_agentd.conf.d/目錄下??梢韵仍谀骋慌_機器上手動安裝Zabbix Agent,然后把相關的文件復制到Salt Master。
初始化環(huán)境引用
目前已經把所有初始化所需要的功能都寫好了,每個小功能都是一個sls文件。統(tǒng)一放置在init目錄下,這樣歸類后很容易解讀。那么怎樣來使用呢?在top file里面把這些功能都列出了,可不是一個好主意,我們需要再編寫一個sls把這些初始化的功能都包含進來:
[root@master ~]# cat /srv/salt/base/init/env_init.sls
include: - init.zabbix_agent
現(xiàn)在我們就可以在top.sls里面給Minion指定狀態(tài)并執(zhí)行了:
[root@master ~]# cat /srv/salt/base/top.sls
base: '*': - init.env_init
注意,在生產環(huán)境中,每次執(zhí)行狀態(tài),強烈建議先進行測試,確定SaltStack會執(zhí)行哪些操作然后再應用狀態(tài)到服務器上:
[root@master ~]# salt '*' state.highstate test=True
在所有Minion上執(zhí)行狀態(tài):
[root@master ~]# salt '*' state.highstate
2017年3月21日 上午11:09 沙發(fā)
真是時光荏苒!
2017年3月26日 上午8:15 板凳
感覺不錯哦,認真拜讀咯!