研究slatstack時踩過的坑,注意點及解決方案


運行問題

1、直接物理性移除minion或者更換minion原先連接的master,會導致先前的master始終無法ping通minion

[root @localhost salt]# salt '*' test.ping
minion_centos7:
     True
win_minion:
     True
10.1 . 240.193 :
     Minion did not return . [No response]

(燈泡亮)解決辦法:在master上查看已接受的key

[root @localhost salt]# salt-key -L
Accepted Keys:
10.1 . 240.193
minion_centos7
win_minion
Denied Keys:
Unaccepted Keys:
Rejected Keys:

把刪除的那台minion的key刪除就好了

[root @localhost salt]# salt-key -d 10.1 . 240.193

其他匯總

1、minion安裝的版本不同可能會導致master的部分請求解析失敗,master同理

(燈泡亮)解決辦法:查看minion的版本,升級或降級,務必統一版本

2、遇到一次同步后的grains為空白的情況,grains空白后導致整個minion連接異常,無論執行任何正常命令,報錯都是minion無響應,與minion不在線的提示相同 

不知什么原因,目前懷疑是與salt的modules命名相同或者是grains中有異常代碼導致。前者還好處理,后者的話可能要加安全校驗機制

(燈泡亮)解決辦法:cd到/var/cache/salt/minion/extmods/grains/路徑,把與modules同名的文件刪除即可,不行的話清空整個目錄內的文件

windows系統的解決辦法差不多,找到安裝目錄下的grains存放位置,把異常的文件刪除即可,比如我傳來的grains是存放在C:\salt\var\cache\salt\minion\extmods\grains

3、saltstack模塊內部出現錯誤時,salt內部拋出且不會回顯,但是調用該模塊時會出現問題,所以若模塊調用正常,但寫成api時結果不正常,有可能是模塊的問題

4、minion上的防火牆服務firewalld開啟可能會導致Minion did not return. [No response]

如果需要傳參的話,最好不要用debug模式,因為-l debug這些字符可能傳參處理時會引發異常從而導致運行失敗

5、由於salt返回的一律是字典型,所以將輸出寫入文件時一定要轉化為字符串,用str處理就好

6、可用**kwargs來接收不限數量的參數,但外部參數必須用kwargs['__pub_arg'][0]來獲得,而且一旦不能轉化為字典型就會報錯

7、傳送大文件時,有時返回成功,但是傳送文件的目錄里,文件名后面有個.part證明傳輸異常中斷了

8、salt-master的ip有時會變,若配置文件沒相應變更ip,重啟salt時會提示[WARNING ] Unable to bind socket, error: [Errno 99] Cannot assign requested

9、寫grains時,grains的模塊名字命名不可以與grains.item 的命名相同,否則只會輸出none


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM