運行問題
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