1. 程式人生 > >saltstack安裝配置(面向零基礎的,求大神不吐槽)

saltstack安裝配置(面向零基礎的,求大神不吐槽)

先說一下寫此文目的,salt安裝配置的文章很多,當屬官網的最好,但是官網的也和其他大神寫的部落格一樣,不說明是在master端操作還是minion端操作。這對於像我一樣的完全零基礎的童鞋肯定是要掉不少坑,而且還不一定能裝好。所以此文面向零基礎的童鞋,大神千萬別吐槽。。。。。

系統:win7,vmware workstation pro 12, xubuntu-15.04-desktop-amd64

(一)salt安裝部分(ppa安裝,官網其他方法沒有嘗試),所有操作都在ubuntu系統終端操作的(ctrl+alt+T開啟終端):

master端:

1.

sudo add-apt-repository ppa:saltstack/salt

如果遇到add-apt-repository:command not found?繼續下面兩條命令,否則直接pass下面兩條命令:

1.1

sudo apt-get install python-software-properties

1.2

sudo apt-get install software-properties-common

2. (這是兩條命令)

deb http://ppa.launchpad.net/saltstack/salt/ubuntu `lsb_release -sc` main | sudo tee /etc/apt/sources.list.d/saltstack.list
wget -q -O- "http://keyserver.ubuntu.com:11371/pks/lookup?op=get&search=0x4759FA960E27C0A6" | sudo apt-key add -
3.
sudo apt-get update
4.
sudo apt-get install salt-master
5.
sudo apt-get install salt-ssh
minion端:

和master端幾乎一樣,只是把第四條sudo apt-get install salt-master換成了sudo apt-get install salt-minion

(二)配置salt部分

master端:

在/etc/salt下的master檔案中將下面的幾行取消註釋

#interface: 0.0.0.0
#log_file: /var/log/salt/master
#key_logfile: /var/log/salt/key

終端操作內容:

sudo vim /etc/salt/mastersudo apt-get install vim(這句命令是在執行上一條操作時報錯,沒有安裝vim的時候需要執行的)
在進入了master檔案內想要找到上述需要註釋的內容,可以通過下述方法查詢:
直接在開啟的資料夾內輸入:/interface按下enter鍵就可以查詢,可以通過按下鍵盤下的N進行上下翻頁查詢,小寫的n向下翻頁,大寫的N向上翻頁
其他的類似查詢,/加上需要查詢的內容。查詢到修要操作的內容後,按下鍵盤下的i(進入insert模式,才可以修改內容)將#註釋符刪除即可,對於interface可以將0.0.0.0修改成master端的ip(重新開一個終端,輸入ifconfig就可以看到ip了,eh0那裡的inte addr後面的才是ip)。修改完畢之後按esc鍵退出insert模式,然後輸入:wq(儲存並退出)。這樣就完成了對master端的配置操作。
minion端:

在/etc/salt下將minion檔案中下面幾行取消註釋:

#master: 輸入剛才獲取的ip
#id:後面自己隨便取一個名字,比如minion1什麼的
#log_file: /var/log/salt/minion
#key_logfile: /var/log/salt/key
操作方法和剛才的master端的一樣。這裡就不羅嗦了。

ok,現在都已經配置好了salt基本操作需要配置的內容,其他的我也沒操作過,靠各位童鞋自己去看官方文件了。我們測試一下。

分別在master端和minion端啟動master和minion。master端:sudo salt-master -dminion端:sudo salt-minion -d

在master端:

sudo salt-key -L 這個是顯示出salt-master已知的所有keys

sudo salt-key -a keyname  這個是接受keyname這個key

sudo salt-key -A  這個是接受所有的keys,具體看官方文件去吧

sudo '*' test.ping   測試master和minion的連通性。當所有的操作遇到not permitted的時候就在命令前加sudo試試

建立salt state樹

master端:

sudo vim /etc/salt/master
將下面幾行取消註釋
#file_roots:
#  base:
#    - /srv/salt
重啟salt-master以使得更改生效
sudo pkill salt-master
sudo salt-master -d
在/srv/salt下建立一個名為top.sls的檔案並新增內容,由於沒有salt這個資料夾。所以先建立此資料夾:
sudo mkdir /srv/salt
top.sls檔案需要新增的內容(操作方法見上面):
base:      
  '*':
    - webserver                   
注意,一定要慢慢的寫這些內容,包括格式都不能錯誤。特別注意,不要使用tab鍵,出發安裝了vim的外掛,能夠將tab鍵轉為4個空格鍵.

現在說一下怎樣建立檔案,

sudo vim
然後在開啟的檔案中輸入內容,輸入完畢之後,輸入:wq top.sls,按下enter鍵就好了。輸入內容裡面需要的命令參考上述命令。

儲存好了top.sls檔案後,再在此路徑下建立一個名為webserver.sls的檔案,並新增以下內容:

apache2:      
  pkg:
    - installed
建立輸入方法和剛才的一樣。

minion端:

沒有任何操作

現在測試一下,在master端:

sudo salt '*' state.highstate
如果出問題了,可以輸入下面的命令看看出什麼問題了:
sudo salt '*' state.highstate -l debug
如果遇到了顯示:The function 'state.highstate" is running as PID 5781 and was started at ....

可以試試如下方法:

master端:

service salt-master stop
ps -A | grep salt-master
sudo pkill salt-master
sudo salt-master -d
minion端
service salt-minion stop
ps -A | grep salt-minion
sudo pkill salt-minion
sudo salt-minion -d
ok,接下來安裝salt-ssh。

salt-ssh

master端安裝salt-ssh,minion端安裝openssh,再配置一下就行了

master端:

sudo vim /etc/salt/roster
將roster內容改成如下:
minion1:   這裡的minion1是剛才自己設定的,剛才安裝salt的時候,要求的那個id 就是這裡的minion1,按照自己的id更改即可。
  host: 在minion端的終端中輸入ifconfig獲得的ip
user: minion端終端上面顯示的那個使用者名稱
passwd: minion端使用者名稱對應的密碼
sudo: True
minion端:

終端中輸入:

sudo apt-get install openssh-server

又到了測試的時候了:

master端輸入:

salt-ssh 'minion1' state.highstate  這裡的minion1看自己怎麼設定的id然後自己更改就是
終於寫完了,第一次寫部落格,太多不規範,還望各位童鞋見諒。本人能力有限,如有錯誤還望指出。不過上述操作都經本人嘗試過。深入學習和具體配置見官網咖。