SaltStack簡介及其故障排除示例


Saltstack是繼 Puppet、Chef 之后新出現的配置管理及遠程執行工具, 目前,SaltStack 正得到越來越多的矚目。與 Puppet 相比,SaltStack 沒有那么笨重,較為輕量;不像 Puppet 有一套自己的 DSL用來寫配置,SaltStack 使用YAML作為配置文件格式,寫起來既簡單又容易,同時也便於動態生成;此外,SaltStack 在遠程執行命令時的速度非常快,也包含豐富的模塊。SaltStack 是開源軟件,其源代碼托管於GitHub上,安裝及使用盡可參考其官方文檔,也可以參考燦哥的blog

官方文檔:http://docs.saltstack.com/topics/installation/rhel.html

對於集群中的多個節點,當在新加入的節點上直接使用yum安裝salt-minion后,默認安裝的是最新的版本(2014.1.0);而原來安裝的salt-master的版本則是比較舊的0.17.4。安裝完成后,更改minion端的配置文件,指定master和id,然后發現minion和master可以正常的通信。使用簡單的測試命令,如test.ping,cmd.run 'ls /tmp/'等也可以正常使用。這樣以為就安裝完成了,打算收工做其他事情了。

后來,由於需要在salt-master端為minion端推送腳本,並在minion端執行,便在master端向新裝minion端的節點,推送了腳本,如下所示:

salt '*' cmd.script salt://scripts/testWriteTime.sh

觀察來自minion端的返回,發現了如下問題:有的minion可以執行成功,有的不可以。

不可以成功執行的輸出信息如下:

可以成功執行的輸入信息如下:

 

觀察來自minion端的日志可以看到,命令已經成功的被傳遞到minion端了,只是在解析的時候發生了問題,如下:

 

通過分析發現,應該是由於salt的版本更新,里面的解析函數發生了變化,導致master端和minion端不能正常解析的。所以最簡單的方法是在新裝minion端的節點卸載了salt-minion,並下載0.17.4版本的salt重新安裝。

具體操作如下:

yum remove salt-minion -y

cd ~/Downloads/

wget https://codeload.github.com/saltstack/salt/zip/0.17

unzip 0.17 && cd salt-0.17

python setup.py bulid && python setup.py intall

然后更改minion端的配置文件,指定master和id,啟動salt-minion即可。

 


免責聲明!

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



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