運維工具SaltStack之一安裝部署

運維工具SaltStack之一安裝部署node

1、概述centos

salt是一個異構平臺基礎設置管理工具,使用輕量級的通信器ZMQ,用Python寫成的批量管理工具,徹底開源,遵照Apache2協議,與Puppet,Chef功能相似,有一個強大的遠程執行命令引擎,也有一個強大的配置管理系統,一般叫作Salt State System。緩存


2、基本原理bash

採用C/S模式,server端就是salt的master,client端就是minion,minion與master之間經過ZeroMQ消息隊列通訊。minion上線後先與master端聯繫,把本身的pub key發過去,接受該minion-key後,也就是master與minion已經互信master能夠發送任何指令讓minion執行了。同時SaltStack也支持SSH的方式無需安裝Agent,經過SSH實現管理。    運維

實現步驟:tcp

1.Salt stack的Master與Minion之間經過ZeroMq進行消息傳遞,使用了ZeroMq的發佈-訂閱模式,鏈接方式包括tcp,ipcide

2.salt命令,將cmd.run ls命令從salt.client.LocalClient.cmd_cli發佈到master,獲取一個Jodid,根據jobid獲取命令執行結果。工具

3.master接收到命令後,將要執行的命令發送給客戶端minion。測試

4.minion從消息總線上接收到要處理的命令,交給minion._handle_aes處理spa

5.minion._handle_aes發起一個本地線程調用cmdmod執行ls命令。線程執行完ls後,調用minion._return_pub方法,將執行結果經過消息總線返回給master

6.master接收到客戶端返回的結果,調用master._handle_aes方法,將結果寫的文件中

7.salt.client.LocalClient.cmd_cli經過輪詢獲取Job執行結果,將結果輸出到終端。


參考連接:

官方站點:http://www.saltstack.com/

官方文檔:http://docs.saltstack.com/

中文站點:http://www.saltstack.cn/

中文手冊:http://docs.saltstack.cn/


3、安裝部署

環境準備:

操做系統:centos 7.2

配置EPEL源:# rpm -Uvh http://mirrors.zju.edu.cn/epel/7/x86_64/e/epel-release-7-9.noarch.rpm

Master端:192.168.2.5 

Minion端:192.168.2.71

        Master端安裝# yum install salt-master -y

Minion端安裝# yum install salt-minion -y 

注:安裝完以後,Master配置文件在/etc/salt/master,minion配置文件在/etc/salt/minion,默認初始安裝配置文件都是被註釋,可自定義。

SaltStack經常使用的目錄結構:

/var/cache/salt/master/minions/  #存放minions的緩存數據

/srv/salt             #存放salt的sls文件,默認沒有,需新建

/srv/pillar            #存放pillar配置文件,默認沒有,需新建

/etc/salt             #存放salt的自身配置文件

/var/log/salt           #存放salt的日誌目錄


4、配置Minion端與Master通訊,並簡單測試。

1.打開Master端的自動簽發證書,默認是關閉的,若是不打開minion啓動時會報以下錯誤:

3月 08 14:47:46 node02 salt-minion[2736]: [WARNING ] ** Restarting minion **
3月 08 14:54:56 node02 salt-minion[2736]: [ERROR   ] Attempt to authenticate with the salt master failed
3月 08 14:59:07 node02 salt-minion[2736]: [ERROR   ] The Salt Master has cached the public key for thi...cate


修改Master端配置文件以下:/etc/salt/master

修改:#auto_accept: False

爲:auto_accept: True

# systemctl restart salt-master.service  #重啓Master端

2.修改Minion端配置文件以下:/etc/salt/minion

修改:#master: salt

master: 192.168.2.5  #指向主Master端

修改:#id: salt

id: minion01  #本端Minion id號

# systemctl restart salt-minion.service  #重啓Minion端


這時Master查看salt-key,minion01客戶端自動添加到簽發列表中

[root@node03 ~]# salt-key     #查看全部端key
Accepted Keys:
minion01


注:salt-key經常使用命令

-a          #添加指定id

        -A          #添加所有    

        -R          #拒絕所有

        -d          #刪除指定id

        -D          #刪除所有


    測試:

    [root@node03 ~]# salt 'minion01' cmd.run 'uname -r'  #命令含義已經用法後續介紹
minion01:
    3.10.0-327.el7.x86_64


###################Master端和Minion端經常使用配置參數說明#####################

Master端經常使用的配置參數說明:

interface:指定bind的地址,默認爲0.0.0.0

publish_port:指定發佈端口,默認爲4505

ret_port:指定結果返回端口,與minion配置文件中的master_port對應,默認爲4506

uesr:指定master進程的運行用戶,若是調整,則須要調整部分目錄的權限,默認權限爲root

timeout:指定timeout時間,若是minion規模龐大或絡情況很差,建議增該值,默認5s

keep_jobs:默認狀況下,minion會執行結果會返回master,master會緩存到本地的cachedir目錄,該參數指定緩存多長時間,以供查看以前的執行結果,會佔用磁盤空間,默認爲24h

job_cache:master是否緩存執行結構,若是規模龐大(超過5000臺),建議使用其餘方式來存儲jobs,關閉本選項,默認爲True

file_recv:是否容許minion傳送文件到master上,默認是Flase

file_roots:指定file server目錄,默認爲:

file_roots:    

   base:    

       - /srv/salt

pillar_roots:指定pillar目錄,默認爲:

pillar_roots:     

   base:     

       - /srv/pillar

log_level:執行日誌級別,支持的日誌級別由'garbage', 'trace', 'debug', info', 'warning', 'error', ‘critical ’ ,默認爲’warning’


Minion端經常使用的配置參數說明:

master:指定master主機,默認爲salt

mastar_port:指定認證和執行結果發送到master的哪一個端口,與master配置文件中的ret_port對應,默認爲4506

id:指定minion的標識,Salt內部使用id做爲標識,惟一標識符,默認爲主機名

user:指定運行minion的用戶,因爲安裝包,啓動服務等操做須要特殊用戶,推薦使用root,默認爲root

cache_jobs:minion是否緩存執行結果,默認爲False

backuo_mode:在文件操做(file.managed或file.recurse)時,若是文件發送更改,指定備份目錄,當前有效的值爲minion,備份在cachedir/file_backups目錄下,以原始文件名稱加時間戳來命名,默認爲Disabled

providers:指定模塊對應的providers,若是RHRL系列中,pkg對應的providers是yumpkg5

renderer:指定配置管理系統中的渲染器,默認值爲:yaml_jinja

file_client:指定file client默認去哪裏(remotr或local)尋找文件,默認值爲remote

loglevel:指定日誌級別,默認爲warnning

tcp_keepalive:minion是否與master保持keepalive檢查,zeromq3一下版本存在keepalive bug,會致使某些狀況下連接異常後minion沒法重連master,建議有條件的話吧zeromq3以上版本,默認爲True

相關文章
相關標籤/搜索