天天看點

自動化運維神器之saltstack (一)安裝部署

    最近搭建了一個5節點的hadoop叢集,這個過程中,涉及到各個節點間做ssh等效性、時間同步、服務啟動和停止。我的做法是使用SCRT打開5個視窗遠端到各個節點,然後在各個視窗中輸入同樣的指令,啟動同樣的服務。剛開始還好,到了後面我需要在各個節點上來回的切換使用者,然後執行一些指令,然後再切換回root使用者做一些授權的操作,盡管使用sudo可以提升普通使用者的權限,但是我仍感到無比的麻煩,更重要的是目前是5個節點,如果叢集是50個節點甚至是500個節點時,我仍要用這種方法嗎?顯然是愚蠢的做法!我渴望對着一個黑視窗,噼裡啪啦一陣狂敲,所有的節點都嗷嗷叫,為了能夠裝Bigger,我決定學習一個自動化運維的工具。

    糾結:saltstack or puppet

    因為聽說google内部使用的是puppet,是以剛開始暈着頭把puppet搭建起來,嘗試學習使用它,無奈一段時間以後,發現自己真是屌絲一枚,無法真正領略puppet的驚豔,更準确的來說,是因為自己内心迫切的想體驗使用這樣的工具來實作自己的統帥N多節點的快感,是以,放棄使用puppet,改為更為輕量的saltstack,而且配置簡單,saltstack的核心功能是:配置管理和遠端執行。你可以在master節點上一條指令,然後所有的節點都嘚啵嘚啵的開始執行,更重要的是你可以在master的控制台看到各個節點的傳回結果。puppet 10 節點以上開始收費,而saltstack完全免費。學習的過程中,順便記錄下過程,友善自己也服務他人。

    好,開始正題,首先看我的環境:

    節點作業系統均為centos6.5,使用centos自帶網絡yum源+epel擴充源

    hadoop0.updb.com 192.168.0.100     master

    hadoop1.updb.com 192.168.0.101     minion

    hadoop2.updb.com 192.168.0.102     minion

    hadoop3.updb.com 192.168.0.103     minion

    hadoop4.updb.com 192.168.0.104     minion

    hadoop5.updb.com 192.168.0.105     minion

1、在master和minion上安裝軟體

    master:

yum install salt-master -y      

    minion

yum install salt-minion -y      

2、修改minion的配置檔案,讓minion能夠找到master,每個minion都要修改,以hadoop1為例

vi /etc/salt/minion    ## minion配置檔案中隻修改兩行
#master: salt -->改為master: 192.168.0.100
#id: -->改為id: hadoop1      

    需要注意這裡的id是給minion起的别名,作為唯一辨別,各個minion不能重複

3、啟動各minion節點的服務

/etc/init.d/salt-minion start      

4、啟動master節點服務,并通過認證minion keys實作master和minion之間的通信

/etc/init.d/salt-master start      

    使用salt-key -L 列出是以沒有認證,認證過,拒絕認證的證書

[root@hadoop0 ~]# salt-key -L
Accepted Keys:
Unaccepted Keys:
hadoop1
hadoop2
hadoop3
hadoop4
hadoop5
Rejected Keys:      

    使用salt-key -A來簽名所有狀态為Unaccepted的證書

[root@hadoop0 ~]# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
hadoop1
hadoop2
hadoop3
hadoop4
hadoop5
Proceed? [n/Y] y
Key for minion hadoop1 accepted.
Key for minion hadoop2 accepted.
Key for minion hadoop3 accepted.
Key for minion hadoop4 accepted.
Key for minion hadoop5 accepted.      

    驗證,發現所有的minion證書已經被master簽名

[root@hadoop0 ~]# salt-key -L
Accepted Keys:
hadoop1
hadoop2
hadoop3
hadoop4
hadoop5
Unaccepted Keys:
Rejected Keys:      

5、測試通信是否正常

[root@hadoop0 ~]# salt '*' test.ping
hadoop4:
    True
hadoop3:
    True
hadoop2:
    True
hadoop5:
    True
hadoop1:
    True      

    傳回結果全為True,通信功能正常。

[root@hadoop0 ~]# salt '*' cmd.run "date"
hadoop1:
    Sun Oct 26 16:16:09 CST 2014
hadoop3:
    Sun Oct 26 08:16:08 GMT 2014
hadoop5:
    Sun Oct 26 08:16:09 GMT 2014
hadoop4:
    Sun Oct 26 08:16:09 GMT 2014
hadoop2:
    Sun Oct 26 08:16:08 GMT 2014      

繼續閱讀