SaltStack:Salt SSH
20. Salt SSH
在版本0.17.0當中,引入了新的傳輸系統,它支持通過SSH通道來實現Salt的通信。通過這種方式,我們可以將Salt routines直接通過SSH通道在遠程主機上執行,而不需要在遠程主機上運行Salt Minion,同樣的道理,Salt Master也就不需要運行了。這樣,也就實現了免客戶端的方式的部署和實施。
注解:
Salt SSH 并不能完全取代標準的Salt通信方式,它只是簡單的提供了一個基于SSH通道的可選方式,這種方式不需要ZeroMQ和遠程Agent的支持。但必須意 識到的是,通過Salt SSH的執行速度會大幅度的低于有ZeroMQ支持的標準的Salt通信方式。
Salt SSH 使用起來非常簡單,只需要創建一個基本的“roster”文件用于連接遠程主機,然后通過“salt-ssh”命令來執行,具體的命令格式與標準的“salt”命令基本一致。
注解:
Salt SSH最終應該像標準 salt 一樣支持同樣的命令和功能。
目前文件服務操作必須包裝成相關文件傳遞給 salt-ssh 命令。state模塊是一個例外,它將在master上編譯為state運行,并在這過程中發現所有 salt:// 路徑的引用,然后當state運行時拷貝那些文件到同樣的tar包。但是,所需的文件服務包裝器仍然在開發中。
20.1 Salt SSH POSTER
Salt中的roster系統將使指定遠程的minions操作變得簡單.
簡單的創建下roster文件,默認的本地路徑是/etc/salt/roster:
web1:?192.168.42.1這是一個非常基本的roster文件,指定了Salt ID及IP地址. ?更為復雜的roster如下:
web1:host:?192.168.42.1?#?The?IP?addr?or?DNS?hostnameuser:?fred?????????#?Remote?executions?will?be?executed?as?user?fredpasswd:?foobarbaz??#?The?password?to?use?for?login,?if?omitted,?keys?are?usedsudo:?True?????????#?Whether?to?sudo?to?root,?not?enabled?by?defaultweb2:host:?192.168.42.220.2 調用Salt SSH
The salt-ssh command can be easily executed in the same way as a salt command:
salt-ssh?'*'?test.pingsalt-ssh 命令的語法和 salt 命令類似.
Salt標準函數可以直接執行! 其輸出也和 salt 命令一樣,也有一些參數可以指定,可以訪問 http://docs.saltstack.com/ref/cli/salt-ssh.html 獲取這些參數選項.
20.3 通過salt SSH進行狀態管理
salt-ssh 也可以直接使用Salt狀態管理系統. 狀態管理系統在 salt-ssh 中抽象為和 salt 同樣的接口,這樣就保證了通過 salt-ssh 及vice-versa可以直接使用標準的 salt Formulase而無需做修改.
Salt狀態管理演練可以直接將 salt 命令直接替換為 salt-ssh 即可使用.
20.4. Salt SSH Target
由于salt-ssh中的target與salt幾乎不一致,當前只支持glob及正則target, 其他的target系統也會不斷的加入進來.
20.5. 配置Salt SSH
Salt SSH從master配置文件提取自己的配置。通常情況下,配置文件位于 /etc/salt/master。如果想使用一個自定義的配置文件,傳遞 -c 選項給Salt SSH指定一個查找目錄,包含文件名 master。
20.6. 用非root用戶運行Salt SSH
默認情況下,salt從/etc/salt/讀取所有配置。如果你使用普通用戶運行Salt SSH,必須修改一些路徑,否則你會收到"Permission denied"信息。你必須修改兩個參數: pki_dir 和 cachedir。應該指向一個對于用戶可寫的絕對路徑。
不建議直接修改 /etc/salt。為用戶創建一份/etc/salt的私有拷貝并且運行命令行加上``-c /new/config/path``。
20.7. 利用Saltfile定義CLI選項
如果您通常通過CLI中的選項"salt-ssh" ,你可以創建一個"Saltfile" 自動使用這些選項。如果你在同一臺服務器上管理多個不同的salt項目,這是常見的。
因此,如果您使用一個Saltfile"cd"進一個目錄,內容如下:
salt-ssh:config_dir:?path/to/config/dirmax_prox:?30而不是調用"salt-ssh --config-dir=path/to/config/dir --max-procs=30 * test.ping" 你可以調用"salt-ssh * test.ping"
轉載于:https://blog.51cto.com/kaibinyuan/1628135
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的SaltStack:Salt SSH的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel中Sumproduct函数的使
- 下一篇: Nosql and Mongodb 介绍