SaltStack自動化批量部署Zabbix

2017年3月20日14:47:37 2 7,185 ℃

SaltStack環(huán)境設(shè)置

在本案例我們使用兩個環(huán)境base和prod,base環(huán)境用來存放初始化的功能。prod環(huán)境用于放置生產(chǎ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

請參照上面的配置進(jìn)行Master配置文件的修改。為保證實驗順利完成,建議創(chuàng)建和本案例一致的配置和路徑。

創(chuàng)建目錄結(jié)構(gòu)并重啟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都應(yīng)該安裝上Zabbix Agent,主要涉及SaltStack的pkg、file、service狀態(tài)模塊以及Pillar的使用。

通過使用Pillar來設(shè)置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,然后把相關(guān)的文件復(fù)制到Salt Master。

初始化環(huán)境引用

目前已經(jīng)把所有初始化所需要的功能都寫好了,每個小功能都是一個sls文件。統(tǒng)一放置在init目錄下,這樣歸類后很容易解讀。那么怎樣來使用呢?在top file里面把這些功能都列出了,可不是一個好主意,我們需要再編寫一個sls把這些初始化的功能都包含進(jìn)來:

[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

注意,在生產(chǎn)環(huán)境中,每次執(zhí)行狀態(tài),強烈建議先進(jìn)行測試,確定SaltStack會執(zhí)行哪些操作然后再應(yīng)用狀態(tài)到服務(wù)器上:

[root@master ~]# salt '*' state.highstate test=True

在所有Minion上執(zhí)行狀態(tài):

[root@master ~]# salt '*' state.highstate

【騰訊云】云服務(wù)器、云數(shù)據(jù)庫、COS、CDN、短信等云產(chǎn)品特惠熱賣中

發(fā)表評論

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前評論:2   其中:訪客  0   博主  0

    • avatar 嘿嘿嘿 1

      真是時光荏苒!

      • avatar 恩菲 0

        感覺不錯哦,認(rèn)真拜讀咯!