參考官檔html
salt-ssh
是 0.17.0
新引入的一個功能,不須要minion對客戶端進行管理,也能夠不須要master
;salt-ssh
也支持salt
大部分的功能:好比grains
,modules
,state
等;salt-ssh
沒有使用ZeroMQ
的通訊架構,執行是串行模式python
salt-ssh
是在salt
基礎上打了一個python
包上傳到客戶端的默認tmp
目錄下, 在客戶端上面解壓並執行返回結果,最後刪除tmp
上傳的臨時文件。salt-minion
方法是salt-mater
先執行語法驗證,驗證經過後發送到minion
,minion
收到Msater
的狀態文件默認保存在/var/cache/salt/minion
salt-ssh
和salt-minion
能夠共存,salt-minion
不依賴於ssh
服務1)安裝salt-ssh
shell
[root@salt-master ~]# yum -y install salt-ssh
2)修改roster
文件,配置須要管理的機器數據庫
[root@salt-master ~]# vim /etc/salt/roster salt-minion01: host: 192.168.1.31 user: root passwd: 123456 port: 22 salt-minion02: host: 192.168.1.32 user: root passwd: 123456 port: 22
3)管理測試 (說明,若是第一次須要輸入yes或no
進行ssh
認證,能夠加-i
參數自動認證)vim
[root@salt-master ~]# salt-ssh '*' test.ping -i salt-minion01: True salt-minion02: True
4)salt-ssh
命令參數後端
-r, –raw, –raw-shell # 直接使用shell命令 –priv #指定SSH私有密鑰文件 –roster #定義使用哪一個roster系統,若是定義了一個後端數據庫,掃描方式,或者用戶自定義的的roster系統,默認的就是/etc/salt/roster文件 –roster-file #指定roster文件 –refresh, –refresh-cache #刷新cache,若是target的grains改變會自動刷新 –max-procs #指定進程數,默認爲25 -i, –ignore-host-keys #當ssh鏈接時,忽略keys –passwd #指定默認密碼 –key-deploy #配置keys 設置這個參數對於全部minions用來部署ssh-key認證, 這個參和–passwd結合起來使用會使初始化部署很快很方便。當調用master模塊時,並加上參數 –key-deploy 便可在minions生成keys,下次開始就不使用密碼
5)salt-ssh
執行命令數據結構
[root@salt-master ~]# salt-ssh '*' -r "uptime" salt-minion01: ---------- retcode: 0 stderr: stdout: root@192.168.1.31's password: 10:06:08 up 1 day, 17:05, 2 users, load average: 0.00, 0.01, 0.05 salt-minion02: ---------- retcode: 0 stderr: stdout: root@192.168.1.32's password: 10:06:08 up 1 day, 17:16, 2 users, load average: 0.03, 0.06, 0.06
6)salt-ssh
執行狀態模塊架構
[root@salt-master ~]# salt-ssh '*' state.sls modules.haproxy.service saltenv=prod salt-minion02: ---------- ID: haproxy-install Function: pkg.installed Name: haproxy Result: True Comment: All specified packages are already installed Started: 10:09:48.541019 Duration: 10161.705 ms Changes: ---------- ID: haproxy-config Function: file.managed Name: /etc/haproxy/haproxy.cfg Result: True Comment: File /etc/haproxy/haproxy.cfg is in the correct state Started: 10:09:59.020659 Duration: 54.263 ms Changes: ---------- ID: haproxy-service Function: service.running Name: haproxy Result: True Comment: The service haproxy is already running Started: 10:09:59.079110 Duration: 128.052 ms Changes: Summary for salt-minion02 ------------ Succeeded: 3 Failed: 0 ------------ Total states run: 3 Total run time: 10.344 s salt-minion01: ---------- ID: haproxy-install Function: pkg.installed Name: haproxy Result: True Comment: All specified packages are already installed Started: 10:10:00.561015 Duration: 2862.018 ms Changes: ---------- ID: haproxy-config Function: file.managed Name: /etc/haproxy/haproxy.cfg Result: True Comment: File /etc/haproxy/haproxy.cfg is in the correct state Started: 10:10:03.905713 Duration: 220.443 ms Changes: ---------- ID: haproxy-service Function: service.running Name: haproxy Result: True Comment: The service haproxy is already running Started: 10:10:04.135607 Duration: 230.231 ms Changes: Summary for salt-minion01 ------------ Succeeded: 3 Failed: 0 ------------ Total states run: 3 Total run time: 3.313 s
salt-ssh
須要一個名單系統來肯定哪些執行目標,Salt
的0.17.0
版本中salt-ssh
引入roste
r系統roster
系統編譯成了一個數據結構,包含了targets
,這些targets
是一個目標系統主機列表和或如鏈接到這些targets
。ssh
配置文件說明:測試
# target的信息 host: # 遠端主機的ip地址或者dns域名 user: # 登陸的用戶 passwd: # 用戶密碼,若是不使用此選項,則默認使用祕鑰方式 # 可選的部分 port: #ssh端口 sudo: #能夠經過sudo tty: # 若是設置了sudo,設置這個參數爲true priv: # ssh祕鑰的文件路徑 timeout: # 當創建連接時等待響應時間的秒數 minion_opts: # minion的位置路徑 thin_dir: # target系統的存儲目錄,默認是/tmp/salt-<hash> cmd_umask: # 使用salt-call命令的umask值