**自:
來自:
說明: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...