salt-ssh即經過ssh得方式進行管理,不須要安裝salt-minion, salt-ssh 用的是sshpass進行密碼交互的。python
被管理的機器須要支持遠程鏈接,ssh有些功能不如minionshell
# yum install -y salt-ssh
# tail -6 /etc/salt/roster test1: #被管理的主機名 host: 172.18.X.X #被管理的主機IP user: test #被管理主機的ssh鏈接用戶 passwd: passwd #被管理主機的ssh用戶密碼 port: 22 #被管理主機的ssh端口 sudo: True #是否容許sudo
第一次執行會有認證,加-i參數,之後就不用了數據庫
# salt-ssh \* test.ping -i test1: True
方法一: # salt-ssh \* cmd.run "w" test1: 14:42:17 up 14 days, 4:39, 2 users, load average: 0.11, 0.09, 0.06 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT young pts/0 123.121.57.191 11:38 9.00s 0.84s 0.02s sshd: young [priv] young pts/1 123.121.57.191 14:30 11:37 0.04s 0.02s sshd: young [priv] 方法二: # salt-ssh \* -r "w" test1: ---------- retcode: 0 stderr: stdout: young@172.18.214.112's password: 14:42:24 up 14 days, 4:39, 2 users, load average: 0.09, 0.09, 0.06 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT young pts/0 123.121.57.191 11:38 8.00s 0.81s 0.02s sshd: young [priv] young pts/1 123.121.57.191 14:30 11:44 0.04s 0.02s sshd: young [priv]
# salt-ssh "*" state.sls install-tomcat
-r, –raw, –raw-shell # 直接使用shell命令後端
-priv #指定SSH私有密鑰文件tomcat
-roster #定義使用哪一個roster系統,若是定義了一個後端數據庫,掃描方式,或者用戶自定義的的roster系統,默認的就是/etc/salt/roster文件服務器
-roster-file #指定roster文件ssh
-refresh, –refresh-cache #刷新cache,若是target的grains改變會自動刷新測試
-max-procs #指定進程數,默認爲25spa
-i, –ignore-host-keys #當ssh鏈接時,忽略keyscode
-passwd #指定默認密碼
-key-deploy #配置keys 設置這個參數對於全部minions用來部署ssh-key認證,這個參和–passwd結合起來使用會使初始化部署很快很方便。當調用master模塊時,並加上參數 –key-deploy 便可在minions生成keys,下次開始就不使用密碼
1.salt-ssh 是在salt基礎上打了一個python包上傳到客戶端的默認tmp目錄下,在客戶端上面解壓並執行返回結果,最後刪除tmp上傳的臨時文件
2.salt-minion方法是salt-mater先執行語法驗證,驗證經過後發送到minion,minion收到Msater的狀態文件默認保存在/var/cache/salt/minion
注意:也有時候salt-master語法驗證經過,在minion上可能由於環境問題會執行失敗
3.salt-ssh和salt-minion能夠共存,salt-minion不依賴於ssh服務