自動化運維概述和SaltStack簡介

2021-10-08 15:55:05 字數 2039 閱讀 8670

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,是...