運維自動化之SaltStack簡單入門
飽食終日而無所事事,是頹也,廢也。但看昨日,費九牛二虎之力除一BUG便流連於新番之中,不知東方之既黑,實乃頹頹然而荒廢矣。故今日來綴一文以懺昨日之悔。
SaltStack簡介
salt是一個新的基礎平台管理工具。只需花費數分鍾即可運行起來, 擴展性足以支撐管理上萬台服務器,數秒鍾即可完成數據傳遞. 經常被描述為 Func 加強版+Puppet 精簡版。這么說你可能不太明白,那么簡單地說:Salt就是一種全新的基礎設施管理方式,部署輕松,在幾分鍾內可運行起來,擴展性好,很容易管理上萬台服務器,速度夠快,服務器之間秒級通訊。salt底層采用動態的連接總線, 使其可以用於編配, 遠程執行, 配置管理等等。
最為重要的一點,salt是開源的,而且是python實現的一種運維自動化的工具,這意味着我們可以對其進行一些改動,在其基礎之上加上我們想要的功能,對其進行二次開發。salt的源碼在這里。感興趣的朋友可以看一下。那么既然如此,SaltStack的安裝配置簡單么?如果知道salt的宗旨的話,那么你就不會這么問了。正如很多最強大、最有用的工程解決方案都是基於簡單原則建立起來的。SaltStack 也竭盡全力做到那樣:K.I.S.S.(Keep It Stupidly Simple 簡單到愚蠢)。
環境介紹
系統:CentOS6.5兩台
Windows Server 2008 R2
這里是把其中一台CentOS系統的機器當做master,把另一台的CentOS電腦以及Windows電腦當做minion,按照英文翻譯的理解就是其中一台是用來控制另外兩台的。
Salt安裝與配置
Salt之CentOS的安裝與配置:
- 首先,如果你的系統中EPEL當前不是enabled的話,你需要先通過如下的命令對其進行啟動(PS:以下命令需要在兩台機器上都執行):
1 rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm
2. 接下來,由於salt的master和minion包是分開的,所以機器需要安裝相應的包,通常情況下,一個master會對應多個minion。
在master上運行:
1 yum install salt-master
在minion上運行:
1 yum install salt-minion
至此,CentOS上的master就安裝好了。
3.接下來,先不要啟動,先到minion進行配置,在/etc/salt/minion文件中,找到master那一行,將注釋去掉,然后把master的IP或者hostname寫在冒號后面。然后找到id,同樣去掉注釋,將此機器的ip或者hostname寫上去。嗯,至此CentOS算是完成了。
Salt之Windows的安裝與配置:
首先,下載Windows的salt-minion,鏈接在這里:Salt-Minion-2014.7.0-x86-Setup.exe。
1.下載完成后,點擊安裝,然后,一直下一步,直到你遇見一個輸入框,第一行是輸入你的master的IP,當然hostname也行。第二行是你本機的IP或者hostname。
2.完成安裝后,去C盤的salt文件夾下看看你的conf文件夾下是否有一個pki文件夾以及兩個文件,一個是minion,一個是minion_id文件。若沒有的話自己建立一個minion文件,沒有后綴名,然后將master以及id寫進去,步驟同Linux版的配置。
啟動服務
如果完成了以上步驟,恭喜你快要見到勝利的曙光了,現在,啟動你的master:
1 service salt-master start
接下來,啟動你的minion,LInux版啟動如下:
1 service salt-minion start
Windows啟動方法就是進入C盤的salt文件夾內,然后啟動salt-minion.exe,這樣,你就啟動了你的salt,然后去master執行如下命令:
1 salt-key -L
如果步驟沒問題的話,你會看到這樣的界面:
1 [root@controller ~]# salt-key -L 2 Accepted Keys: 3 Unaccepted Keys: 4 172.1.1.72 5 172.1.19.14 6 Rejected Keys:
然后執行如下命令接受驗證請求:
1 [root@controller ~]# salt-key -A 2 The following keys are going to be accepted: 3 Unaccepted Keys: 4 172.1.1.72 5 172.1.19.14 6 Proceed? [n/Y] Y 7 Key for minion 172.16.1.72 accepted. 8 Key for minion 172.16.19.14 accepted.
接下來可以看一下你現在能控制的minion:

進行測試
接下來進行最簡單的測試:在master執行如下指令:
1 [root@controller ~]# salt 172.16.19.14 test.ping 2 172.16.19.14: 3 True
然后下面就是反饋的結果。是True說明已經可以進行控制了,那么我們控制minion安裝一個軟件試試。
在minion檢測軟件:
1 [root@controller ~]# rpm -qa | grep mysql 2 mysql-server-5.1.73-3.el6_5.x86_64 3 mysql-libs-5.1.73-3.el6_5.x86_64 4 mysql-5.1.73-3.el6_5.x86_64
可以看到只有三個有關mysql的。然后我們在master上控制minion安裝一個軟件包:

1 [root@controller ~]# salt 172.16.19.14 pkg.install sources='[{"mysql":"http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm"}]' 2 172.16.19.14: 3 ---------- 4 mysql-community-release: 5 ---------- 6 new: 7 el6-5 8 old:
根據反饋信息來看,old是空,說明以前沒有這個軟件,而new就是我們剛剛安裝的軟件。接下來,我們到minion看一下是否已經成功安裝了軟件:

1 [root@controller ~]# rpm -qa | grep mysql 2 mysql-server-5.1.73-3.el6_5.x86_64 3 mysql-libs-5.1.73-3.el6_5.x86_64 4 mysql-5.1.73-3.el6_5.x86_64 5 [root@controller ~]# rpm -qa | grep mysql 6 mysql-server-5.1.73-3.el6_5.x86_64 7 mysql-community-release-el6-5.noarch 8 mysql-libs-5.1.73-3.el6_5.x86_64 9 mysql-5.1.73-3.el6_5.x86_64
可以清楚的看到,比之前多了一個軟件,這說明我們成功安裝了軟件了。
以上,就是有關salt的簡單的介紹以及安裝使用了。
如果想學習更多的有關Salt的知識,請移步去官網。
話說親耐的新番又在呼喚我了,追番去了先。
PS:本博客歡迎轉發,但請注明博客地址及作者~
博客地址:http://www.cnblogs.com/voidy/
<。)#)))≦