svc salt基本原理

2022-03-21 22:38:02 字數 3549 閱讀 5022

**自:

來自:

說明:salt

是乙個異構平台基礎設定管理工具

(雖然我們通常只用在

linux上)

,使用輕量級的通訊器

zmq,

用python

寫成的批量管理工具,完全開源,遵守

apache2

協議,與

puppet

,chef

功能類似,有乙個強大的遠端執行命令引擎,也有乙個強大的配置管理系統,通常叫做

salt state system

。 基本原理:

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

是來接受訊息的。

具體步驟如下

salt stack的master與minion之間通過zeromq進行訊息傳遞,使用了zeromq的發布-訂閱模式,連線方式包括tcp,ipc

salt命令,將

cmd.run ls

命令從salt.client.localclient.cmd_cli

發布到master,獲取乙個jodid,根據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執行結果,將結果輸出到終端。

安裝:

安裝epel源

#for rhel 5:

rpm -uvh

#for rhel 6:

rpm -uvh

安裝salt-master端,也就是服務端

yum -y install salt-master

安裝salt-minion端,也就是client端

yum -y install salt-minion

配置:

通常學習環境,

master

用預設配置就好,修改

minion

配置檔案

/etc/salt/minion

master: master_ip

或master_fqdn     ##

註明master的ip

或者網域名稱

id: minion_id                      ##

取乙個獨一無二的

minion

名字,以方便辨認

啟動:service salt-master start

service salt-minion start

master

接受minion

的key

:salt-key -l ##

檢視所有

minion_key

salt-key -a 'key-name'##

接受該key

或者salt-key -a        ##

接受所有

key測試

:salt '*'test.ping   ##

minion

salt '*'pkg.install ftp  ##

所有minion

安裝ftp說明:

'*'代表的是

target

是指在那些

minion

上操作'

test',

'pkg

'是乙個執行模組,所有的執行模組見

'ping',

'install

'是執行模組下面的函式,同樣參加上述鏈結檢視幫助

'ftp

'是函式的引數

(arg)

,有的函式需要引數,有的不需要

幫助: salt

''sys.doc ##

檢視所有執行模組的

doc salt

''sys.doc test ##

檢視test

模組的幫助

salt '*

'sys.doc test.ping ##

檢視test.ping

函式的幫助

執行命令:

salt '*'cmd.run 'uptime'##

在所有機器上執行命令

uptime

salt '*'cmd.run '--reboot--'##

這類命令很危險,請不要嘗試,請想辦法禁止

來自

mysql的基本原理 Mysql 基本原理

mysql 基本原理 mysql是一種關聯式資料庫管理系統,關聯式資料庫將資料儲存在不同的表中,而不是將所有資料放在乙個大倉庫內,這樣就增加了速度並提高了靈活性 ysql是資料庫登入命令 uroot預設超級使用者登入 p 預設沒密碼 中寫密碼 mysqladmin uroot password 12...

8 2 1 基本原理

乙個舞台動畫物件在包含許多舞台資訊 出現在何處,佔多大面積,處在什麼角度,是否可見 這些資訊分別儲存在動畫物件的屬性中。在 中讀取這些屬性可以了解物件的位置 大小 角度等狀態資訊 修改這些屬性可以改變物件的位置 大小 角度等狀態。如果從資料的角度去理解,動畫就是在固定時間間隔點不斷修改動畫物件某項屬...

Csocket基本原理

我通過幾個採用 csocket 類編寫並基於 client server 客戶端 服務端 的網路聊天和傳輸檔案的程式 在除錯這些程式的過程中,追蹤深入至 csocket 類核心原始碼 sockcore.cpp 對於csocket 類的執行機制可謂是一覽無遺,並且對於阻塞和非阻塞方式下的 socket...