1. 程式人生 > >學習saltstack (一)

學習saltstack (一)

salt介紹

Salt是一個基礎平臺管理工具

Salt是一個配置管理系統,能夠維護預定義狀態的遠端節點

Salt是一個分散式遠端執行系統,用來在遠端節點上執行命令和查詢資料

salt的核心功能

是命令傳送到遠端系統,而且是並行傳送不是序列的

使用安全加密協議

對網路要求比較低,使用最小最快的網路載荷

提供簡單的程式設計介面(salt使用python開發)

salt的優點

saltstack使用python語言編寫,相當輕量級。 http://www.python.org

saltstack通訊層採用ZeroMQ PUB-SUB pattern實現,使得它很快速。http://www.zearmq.org

saltstack是開源的,通過python可以自己編寫模組。

salt埠說明

salt-master啟動時會啟動兩個埠

4505:為salt的訊息釋出專用埠 
4506:位客戶端與服務端通訊的埠。  ---監控此埠可以監控哪些minion收到的訊息,並回復了結果。

實驗圖解

安裝saltstack

1、安裝指定epel源
    baseurl=http://repo.saltstack.com/yum/redhat/6.7/x86_64/
2、安裝master
    yum -y install salt-master
3、安裝minion
    yum -y install salt-minion

配置saltstack

1、修改minion配置檔案
    vim /etc/salt/master 
    #master: salt         預設master配置的為salt,需在/etc/hosts中增加對映,也可以修改為master的IP地址或域名
    #id:              指定minion的標識, id要是唯一的,預設為主機名
    vim /etc/hosts
    192.168.4.16 salt        master端ip       
2、修改master配置檔案
    vim /etc/salt/master        
    log_level: debug      除錯過程日誌級別修改為debug級別,生產系統可根據實際情況配置
3、啟動服務
    /etc/init.d/salt-master start    先啟動master端     
    /etc/init.d/salt-minion start
  ping salt 測試與master主機是否連通 備註:master端修改配置檔案不用重啟,預設直接生效

服務端master命令

salt-key        
            -a          #新增指定id
            -A          #新增全部
            -r          #拒絕指定id
            -R          #拒絕全部
            -d          #刪除指定id
            -D          #刪除全部
            -y          #去除每步操作確認的一步。
       -L      #列出所有的minion端的key
       -l      #列出特定minion端發過來的請求
提示:無論是accept還是delete都支援Linux的shell萬用字元。

SaltStack認證

            1、minion在第一次啟動時,會在/etc/salt/pki/minion/下自動生成minion.pem(private key)和minion.pub(public key),然後將minion.pub傳送給master。
            2、master在第一次啟動時,會在/etc/salt/pki/master下自動生成master.pem。在接收到minion的public key後,
         通過salt-key命令accept minion public key,這樣在master的/etc/salt/pki/master/minions下的將會存放以minion id命名的public key,
         客戶端會儲存一份master的public key,在/etc/salt/pki/minion_master.pub 3、通過兩個步驟的驗證,master就能對minion傳送指令了。

實驗一:修改主機名

1、minion端:
hostname salt-client-01
sed -i 's#HOSTNAME=*#HOSTNAME=salt-client-01#g' /etc/sysconfig/network
rm -rf /etc/salt/minion_id   /etc/salt/pki/*   
/etc/init.d/salt-minion   restart
2、master端:
salt-key  -d  salt-client01 -y
salt-key  -L
salt-key  -A -y
salt '*' test.ping    
3、如果再master不刪除minion的key,有可能minion程式啟動後,會自動殺死自己。原因是:minion啟動後,會生成自己的key(主機名、IP地址和一些其它資訊聯合生成的),
  當向master註冊後,會儲存一個master的key。當主機名修改後自己的key會改變,如果master不刪除之前minion的key,不僅會註冊失敗,minion還會殺死自己的程序;
4、minion的主機名會快取到/etc/salt/minion_id檔案裡面,修改主機名後需要刪除這個檔案;

實驗二: