saltstack的簡介架構

2021-09-26 05:07:59 字數 2992 閱讀 7257

saltstack是乙個開源的、新的基礎平台管理工具,使用python語言開發,同時提供rest api方便二次開發以及和其他運維管理系統進行整合。

相對於出道比較早的puppet,saltstack先天的優勢就是簡單、易用,可以非常快速的在團隊中推廣和使用,而且執行多平台。

遠端執行:就是在管理節點上實現在上百臺、上千臺機器上同時執行乙個命令。

配置管理:也可以稱之為狀態管理,你可以描述乙個狀態。例如,某台機器要安裝nginx軟體包、nginx必須是啟動的狀態、nginx有乙個配置檔案(內容和某個地方的一樣)。你用一種描述語法描述出來後交給saltstack,saltstack就可以幫你實現,而不用你手動進行nginx軟體包的安裝、配置檔案的修改、啟動等。

雲管理:saltstack有乙個元件叫作salt-cloud,它可以幫你自動化的進行雲主機的建立和管理,支援很多公有雲或私有雲,例如aws、阿里雲、hp雲、openstack、cloudstack等。

事件驅動:事件驅動基礎設施是saltstack最強大也是最神秘的功能,前面的遠端執行和配置管理是最基礎的的,事件驅動是指saltstack在日常執行中可以產生和捕捉事件,並根據捕捉到的事件觸發對應的操作。

local:在本地執行或者說單台使用saltstack

minion/master: 傳統的客戶端/伺服器端(c/s)架構

syndic: 使用**實現架構擴充套件,用於管理更多的節點

salt ssh: 無須安裝客戶端,直接通過ssh通訊

我們進行自動化運維大多數情況下,是我們的伺服器數量已經遠遠超過人工ssh維護的範圍,saltstack可以支數以千計,甚至更多的伺服器。這些效能的提供主要來自於zeromq,因為saltstack底層是基於zeromq進行高效的網路通訊。zmq用於node與node間的通訊,node可以是主機也可以是程序。

zeromq(我們通常還會用ømq , 0mq, zmq等來表示)是乙個簡單好用的傳輸層,像框架一樣的乙個套接字型檔,他使得socket程式設計更加簡單、簡潔和效能更高。它還是乙個訊息處理佇列庫,可在多個執行緒、核心和主機盒之間彈性伸縮。

我是這樣理解的:zmq更像一種方式或者語言,當然,它確實不是,用它在node和node間進行通訊,saltstack用自己的兩種網路服務pub和req讓管理變得更加簡單,實用

zeromq支援publish/subscribe,即發布與訂閱模式,我們經常簡稱pub/sub。

salt master執行兩個網路服務,其中乙個是zeromq pub系統,預設監聽4505埠。可以通過修改/etc/salt/master配置檔案的publish_port引數設定。它是salt的訊息發布系統,如果檢視4505埠,會發現所有的minion連線到master的4505埠,tcp狀態持續保持為established。

[root@ master]# lsof -i:4505
這樣salt master發布乙個訊息,所有連線到4505這個pub埠上的minion都會接收到這個訊息。然後每個minion會再判斷自己是否需要執行這個訊息。zeromq支援request-reply,即請求與響應模式,我們經常簡稱req/rep。

salt master執行的第二個網路服務就是zeromq rep系統,預設監聽4506埠,可以通過修改/etc/salt/master配置檔案的ret_port引數設定。它是salt客戶端與服務端通訊的埠。比如說minion執行某個命令後的返回值就是傳送給master的4506這個rep埠。

如果安裝了python-setproctitle軟體包,就可以直接看到salt master啟動的程序的名稱。

[root@ops-node1 ~]# ps aux | grep salt

/usr/bin/salt-master -d processmanager #中心程序管理器

/usr/bin/salt-master -d _clear_old_jobs #清除舊的jobs檔案及更新fileserver

/usr/bin/salt-master -d publisher #將任務pub到minion端

/usr/bin/salt-master -d eventpublisher #event publisher程序

/usr/bin/salt-master -d reqserver_processmanager #reqserver程序管理器

/usr/bin/salt-master -d mworker #工作程序

/usr/bin/salt-master -d mworker #工作程序

/usr/bin/salt-master -d mworker #工作程序

/usr/bin/salt-master -d mworker #工作程序

/usr/bin/salt-master -d mworker #工作程序

/usr/bin/salt-master -d mworkerqueue #將ret介面(router)資料**到worker(dealer)

SaltStack 一 入門簡介

乙個配置管理系統,能夠維護預定義狀態遠端節點 比如,確保指定的報被安裝,指定的服務在執行 乙個分布式遠端執行系統,用來在遠端節點 可以是單個節點,也可以是任意規則挑出來的節點 上執行命令和查詢資料。開發其他目的是為遠端執行提供最好的解決方案,並使遠端執行變得更好,更快,更簡單。salt 是乙個基礎平...

一 saltstack簡介和安裝

系統環境 centos6.5 準備yum源 epel源 包含了saltstack的包 阿里源 centos base.repo host解析檔案 cat etc hosts 192.168.1.65 super65.cn 192.168.1.66 super66.cn saltstack簡介 sal...

Entity Framework 架構簡介

當微軟的wcf 大行其道,通用資料訪問模型entity framework卻稍遜一籌,有很多需要完善和進步的地方,本文對entity framework 架構做一下簡介。實體框架 entitry framework 以下簡稱ef 看起來像乙個有趣的技術,更強大,比linq to sql 更先進。這兩...