新聞中心
集中化管理平臺(tái)Saltstack
Saltstack是一個(gè)服務(wù)器基礎(chǔ)架構(gòu)集中化管理平臺(tái),開始于2011年的一個(gè)項(xiàng)目,具備配置管理、遠(yuǎn)程執(zhí)行、監(jiān)控等功能,一般可以理解成簡(jiǎn)化版的puppet和加強(qiáng)版的func。Slatstack基于Python語(yǔ)言實(shí)現(xiàn),結(jié)合輕量級(jí)消息隊(duì)列(ZeroMQ)與Python第三方模塊(Pyzmq、PyCrypto、Pyjinja2、python-msgpack和PyYAML等)構(gòu)建。
關(guān)于什么是Salt,請(qǐng)查閱官方說(shuō)明:http://docs.saltstack.cn/topics/index.html
基本原理
SaltStack 采用 C/S模式,server端就是salt的master,client端就是minion,minion與master之間通過ZeroMQ消息隊(duì)列通信。
minion上線后先與master端聯(lián)系,把自己的pub key發(fā)過去,這時(shí)master端通過salt-key -L命令就會(huì)看到minion的key,接受該minion-key后,也就是master與minion已經(jīng)互信。
master可以發(fā)送任何指令讓minion執(zhí)行了,salt有很多可執(zhí)行模塊,比如說(shuō)cmd模塊,在安裝minion的時(shí)候已經(jīng)自帶了,它們通常位于你的python庫(kù)中。這些模塊是python寫成的文件,里面會(huì)有好多函數(shù),如cmd.run,當(dāng)我們執(zhí)行salt '*'cmd.run 'uptime'的時(shí)候,master下發(fā)任務(wù)匹配到的minion上去,minion執(zhí)行模塊函數(shù),并返回結(jié)果。
master監(jiān)聽4505和4506端口,4505對(duì)應(yīng)的是ZMQ的PUB system,用來(lái)發(fā)送消息,4506對(duì)應(yīng)的是REP system是來(lái)接受消息的。
我們可以這樣理解:
Salt stack的Master與Minion之間通過ZeroMq進(jìn)行消息傳遞,使用了ZeroMq的發(fā)布-訂閱模式,連接方式包括tcp,ipc。
1.發(fā)送消息:
salt命令,將cmd.run ls命令從salt.client.LocalClientNaNd_cli發(fā)布到master,獲取一個(gè)jobid,根據(jù)jobid獲取命令執(zhí)行結(jié)果。master接收到命令后,將要執(zhí)行的命令發(fā)送給客戶端minion。
2.執(zhí)行命令:
minion從消息總線上接收到要處理的命令,交給minion._handle_aes處理。minion._handle_aes發(fā)起一個(gè)本地線程調(diào)用cmdmod執(zhí)行l(wèi)s命令。
3.執(zhí)行結(jié)果處理:
線程執(zhí)行完ls后,調(diào)用minion._return_pub方法,將執(zhí)行結(jié)果通過消息總線返回給master。master接收到客戶端返回的結(jié)果,調(diào)用master._handle_aes方法,將結(jié)果寫在文件中。
4.返回執(zhí)行結(jié)果:
salt.client.LocalClientNaNd_cli通過輪詢獲取Job執(zhí)行結(jié)果,將結(jié)果輸出到終端。
下面,我們來(lái)部署Saltstack的平臺(tái):
一,環(huán)境配置說(shuō)明
1.IP地址分配
Hostname IP地址 節(jié)點(diǎn)
saltstack01 10.62.83.211 salt-master
Ctest01 10.62.83.11 salt-minion
2.協(xié)議和端口
節(jié)點(diǎn) 服務(wù) 端口號(hào) 功能
Salt-master python2.6 4505 ZeroMQ的PUBsystem,發(fā)送消息
Python2.6 4506 REPsystem是來(lái)接受消息
Salt-minion python2.6 4505 ZMQ的PUBsystem,發(fā)送消息
3.軟件版本
軟件 版本號(hào)
OS CentOSrelease 6.7 (Final)
Python python2.6.6
saltstack 2015.8.10 (Beryllium)
二,YUM源配置
我們采用yum的安裝方式
# rpm --import https://repo.saltstack.com/yum/redhat/6/x86_64/latest/SALTSTACK-GPG-KEY.pub#yum源認(rèn)證文件 # vim/etc/yum.repos.d/saltstack.repo #yum源配置文件 [saltstack-repo] name=SaltStack repo for RHEL/CentOS $releasever baseurl=https://repo.saltstack.com/yum/redhat/$releasever/$basearch/latest enabled=1 gpgcheck=1 gpgkey= # yumrepolist #yum列表更新
三,安裝配置主控端master
1.安裝salt-master
# yuminstall salt-master
下圖是依賴包的安裝:
2.主控端主文件配置
# vim/etc/salt/master interface:10.62.83.211 ##綁定Master通信IP。 auto_accept:True ##自動(dòng)認(rèn)證,避免手動(dòng)運(yùn)行salt-key來(lái)確認(rèn)證書信任。 #pillar_opts:False ## 是否開啟pillar #pillar_roots: ##這里3行是定義pillar的主目錄 # base: # - /srv/pillar file_roots: ##指定saltstack文件根目錄位置 base: - /srv/salt
3.啟動(dòng)主控端服務(wù)
#service salt-master start
#chkconfig salt-master on #配置為開機(jī)服務(wù)自啟動(dòng)
4.主控端防火墻配置
在主控端添加TCP 4505,TCP4506的防火墻規(guī)則,而在被控端無(wú)須配置防火墻,原理是被控端直接與主控端的zeromq建立長(zhǎng)鏈接,接收廣播到的任務(wù)信息并執(zhí)行。
# vim/etc/sysconfig/iptables -IINPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT -IINPUT -m state --state new -m tcp -p tcp --dport 4506 -j ACCEPT
四,安裝被控端minion
1.安裝salt-minion
# yuminstall salt-minion –y
2.被控端主文件配置
# vim/etc/salt/minion master:10.62.83.211 id:Ctest01 ##修改被控端主機(jī)識(shí)別id,建議使用操作系統(tǒng)主機(jī)名來(lái)配置
注意:
如果環(huán)境中沒有域名解析服務(wù),我們可以配置/etc/hosts文件實(shí)現(xiàn)自解析域名。
3.啟動(dòng)被控端服務(wù)
#service salt-minion start
#chkconfig salt-minion on ##配置為開機(jī)服務(wù)自啟動(dòng)
4. 開放被控端防火墻端口
# vim/etc/sysconfig/iptables -IINPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT
五,結(jié)果測(cè)試驗(yàn)證
測(cè)試結(jié)果
思考:
生產(chǎn)環(huán)境中,成千上萬(wàn)臺(tái)host,我們?cè)趺磁坎渴鸨豢囟四??哈哈,salt-ssh可以解決。
參考資料:http://docs.saltstack.cn/topics/installation/index.html
參考博文:http://www.cnblogs.com/wjoyxt/p/5083319.html
參考書籍:《Python自動(dòng)化運(yùn)維技術(shù)與最佳實(shí)踐》
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
文章題目:集中化管理平臺(tái)Saltstack-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)URL:http://fisionsoft.com.cn/article/ddcihd.html