自動化運維工具Saltstack學習筆記(二)

前面學習了Saltstack安裝和基本的配置,可以通過Saltstack批量執行系統命令,包括系統重啓,查看系統負載,添加/刪除用戶等等。也可以把線上WEB,DB,BBS等安裝和配置相同或相近的服務器分爲一組,通過Saltstack的group功能批量執行管理。下面通過Saltstack來實現批量安裝,卸載RPM軟件包,批量分發文件,壓縮包和推送目錄到指定的minion,定期修改Apache/Nginx/Mysql等配置文件並實施推送到minion。

1.物理環境

154621933.jpg

2.配置Saltstack master

1)編輯/etc/salt/master, 取掉下面註釋行,目錄/srv/salt是Saltstack核心配置文件目錄。

file_roots:
  base:
    - /srv/salt/

2)查看我規劃的Saltstack的.sls,配置文件和軟件包的目錄結構。

170953759.jpg

3)在/srv/salt目錄下面新建top.sls文件,該文件是Saltstack入口配置文件。Saltstack "top.sls"文件開頭一般用base:書寫,通配符'*'表示所有的minion,-conf.pack表示conf目錄下面的pack.sls文件,在這裏我定義的是RPM軟件包管理。

base:
  '*':
    - conf.pack
    - conf.nginx
    - conf.apache
    - conf.mysql
    - conf.software

3.軟件包的管理

1)創建軟件包管理的配置文件pack.sls 文件,httpd表示要安裝軟件包,pkg:表示Saltstack安裝包管理,-name表示安裝軟件包名稱,-installed表示安裝,-removed表示卸載,service:表示Saltstack服務管理,後兩行保證apache的服務是開啓的。

httpd:
  pkg:
    - name: httpd
    - installed
  service:
      - running
      - enable: True

2)軟件包管理測試,在ID爲WEB2013-10-23的服務器上面已經安裝apache服務並啓動。

162528587.jpg

4.Nginx/apache配置文件的分發

1)創建Nginx sls配置文件nginx.sls ,第一行表示分發到minion文件路徑,-managed表示Saltstack文件管理,-source:表示master端配置文件地址,是從master配置文件定義的路徑/srv/salt開始查找的,下面三行表示文件的屬性。

/usr/local/nginx/conf/nginx.conf:
  file:
    - managed
    - source: salt://nginx/nginx.conf
    - user: www
    - group: www
    - mode: 644
    - backup: minion

2)Nginx/apache配置文件的分發測試,在ID爲WEB2013-10-23的服務器查看Nginx配置文件及其屬性都是OK的。

164149904.jpg

5.Saltstack常用命令總結

通過salt '*' sys.doc | grep "salt '*'"可以查看所有salt幫助文檔的說明。

1)Saltstack通過cp.get_file可以將master文件分發到minion,/software/Install_Centos_LAMP_v.0.1.sh表示把文件分發到minion上的文件路徑,makedirs=True表示如果目錄不存在自動創建,在傳輸大文件的時候還支持壓縮傳輸,在傳輸大文件的時候還支持壓縮傳輸gzip。

165519954.jpg

2)cp.get_dir和cp.get_file一樣,不過get_dir是用來下載整個目錄的,也支持壓縮傳輸。

170043966.jpg

3)Saltstack cmd.run 命令可以執行系統命令並把結果返回。

171756726.jpg

3)Saltstack state.highstate命令表示主動推送master和minion同步,也可以通過schedule方式讓客戶端minion定期同步master。

salt '*' state.highstate

4)2013.12.27補充,上次網友和博友提問說如何只同步top.sls下面的nginx或者mysql的配置文件,而不是全部同步。當然應該也支持N(分組)和E(正則)參數。

salt '*' state.sls conf.nginx












發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章