saltstack在windows客戶端遠程執行腳本提示路徑不對的問題

saltstackwindows客戶端遠程執行腳本提示路徑不對的問題

環境:

salt-master ==2018.3.0

salt-minion ==2018.3.0

python== 2.7.5

centos==7

問題描述:

salt有個遠程執行命令的模塊cmd.script,在使用該模塊時,出現錯誤:

salt ‘minion-id’ cmd.script salt://test.ps1 shell=powershell 

其中salt:///etc/salt.conf定義的base路徑,其下存放了test.ps1的腳本

# vim test.ps1

echo test

返回錯誤信息:

1.png

查看windows客戶端日誌c:\salt\var\log\salt\minion

2.png

查看目錄確實minion已從master下載到window臨時目錄且隨機重命名

3.png

經查,系因爲2018.3.0版本saltbug,該bug是把執行的腳本進過轉換成python的列表list,然後又重新轉換回字符串string類型,期間會加上單引號“”,但是windows無法識別帶單引號的腳本名稱路徑格式,從而導致問題,具體可見python源代碼。

其實從2017.4版本就有,2017.7版本修復,但是因爲開了另一個版本分支,因此2018.3.0沒有修復該bug,只有2018.3.1才修復了。

https://github.com/saltstack/salt/pull/45716

https://github.com/saltstack/salt/pull/45716

 

解決辦法:

升級salt-master2018.3.1版本,升級salt-minion2018.3.1版本與master保持一致。

成功重新執行命令並獲取返回結果:

 4.png

經驗:

  1. 在選擇工具的版本時,還是要多注意官網上的release note 說明,選擇較正常和穩定的版本避免後續遇到更多奇葩問題。

  2. 在提問或者幫助asker解決問題時,也要注意check版本信息,否則總會有些情況:爲什麼我明明follow正確解決方法來做就是不行?!

  3. 在解決的過程中,不知不覺就能掌握很多東西。

  4. 多看官網和社區,國內沒人能解答。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章