saltstack(一):saltstack簡介
saltstack(一):saltstack簡介
1 簡介
saltstack是乙個伺服器基礎架構集中化管理平台,具備配置管理、遠端執行、監控等功能,基於python語言實現,結合輕量級訊息佇列(zeromq)與python第三方模組(pyzmq、pycrypto、pyjinjia2、python-msgpack和pyyaml等)構建。
通過部署saltstack,我們可以在成千萬臺伺服器上做到批量執行命令,根據不同業務進行配置集中化管理、分發檔案、採集伺服器資料、作業系統基礎及軟體包管理等。
1.1 主要功能
• saltstack最主要的功能是:配置管理與遠端執行
• saltstack還是乙個雲管理與事件驅動
• saltstack已經支援docker相關模組
• 在友好地支援各大雲平台之後,配合saltstack的mine實時發現功能可以實現各種雲平台業務的自動擴充套件
1.2 saltstack架構
• saltstack基於c/s架構
– 伺服器端稱作master
– 客戶端稱作minion
• 可以實現傳統處理方式,即:客戶端傳送請求給伺服器,伺服器收到請求後處理請求,再將結果返回
• 也可以使用訊息佇列中的發布與訂閱(pub/sub)服務模式
1.3 工作原理
saltstack 採用 c/s模式,server端就是salt的master,client端就是minion,minion與master之間通過zeromq訊息佇列通訊
minion上線後先與master端聯絡,把自己的pub key發過去,這時master端通過salt-key -l命令就會看到minion的key,接受該minion-key後,也就是master與minion已經互信
master可以傳送任何指令讓minion執行了,salt有很多可執行模組,比如說cmd模組,在安裝minion的時候已經自帶了,它們通常位於你的python庫中,locate salt | grep /usr/ 可以看到salt自帶的所有東西。
這些模組是python寫成的檔案,裡面會有好多函式,如cmd.run,當我們執行salt 『*』 cmd.run 'uptime』的時候,master下發任務匹配到的minion上去,minion執行模組函式,並返回結果。master監聽4505和4506埠,4505對應的是zmq的pub system,用來傳送訊息,4506對應的是rep system是來接受訊息的。
1.3.1 具體步驟如下
salt stack的master與minion之間通過zeromq進行訊息傳遞,使用了zeromq的發布-訂閱模式,連線方式包括tcp,ipc
salt命令,將cmd.run ls命令從salt.client.localclient.cmd_cli發布到master,獲取乙個jobid,根據jobid獲取命令執行結果。
master接收到命令後,將要執行的命令傳送給客戶端minion。
minion從訊息匯流排上接收到要處理的命令,交給minion._handle_aes處理
minion._handle_aes發起乙個本地執行緒呼叫cmdmod執行ls命令。執行緒執行完ls後,呼叫minion._return_pub方法,將執行結果通過訊息匯流排返回給master
master接收到客戶端返回的結果,呼叫master._handle_aes方法,將結果寫的檔案中。
salt.client.localclient.cmd_cli通過輪詢獲取job執行結果,將結果輸出到終端。
1.4 saltstack通訊埠
master端:4505
minion端:4506
1.5 saltstack的三種執行方式:
local
master/minion
salt ssh
最傳統的執行方式還是c/s模式,管理端安裝master,被管理節點上安裝minion客戶端
**:
運維自動化
1,cobbler安裝環境準備 安裝epel epel release 6 8.noarch.rpm x86 64 epel release 6 8.noarch.rpm x86 安裝系列依賴環境 要是區域網用,建議關閉iptables 或是放行25151 80 69埠 和關閉selinux 檢視狀...
自動化運維
考慮的因素 源 打包為映象 發布到映象庫 利用k8s發布到物理機器執行,以服務的形式對外提供服務 目前的做法 0 建立乙個執行遠端命令的框架 1 每個應用建立乙個部署檔案指令碼 a 指定元 位址 c 同步源 到目標主機 d 接受指令碼引數 vername 2 版本號,映象tag fromport 3...
自動化運維 Spug 輕量級自動化運維平台
對於中小型企業而言,進行主機和應用的管理是比較麻煩的,應用部署往往需要直接連線伺服器,再進行手動的環境配置 拉取 應用構建和部署發布等工作,容易出錯,且耗時費力。乙個好的自動化運維平台,往往能大大節省人力物力,提高開發部署效率。spug,正是乙個面向中小型企業設計的輕量級自動化運維平台。spug,是...