天天看點

saltstack運維自動化的安裝與簡單配置(一)

之前使用puppet,各種笨重、各種不爽;之後有看過chef、ansible等,一直沒啥興趣;後面發現了saltstack後,一見鐘情。

優點:

  1. 首先,他速度快,基于消息隊列+線程,跑完多台裝置,都是毫秒級别的
  2. 其次,非常靈活,源碼是python,友善了解和自定義子產品(python 語言相對于其他的perl、ruby等還是很好了解的)
  3. 指令簡單,功能強大

一、salt-master的安裝

centos、redhat等系統的安裝:

現在centos下的yum源内有最新的salt-master源碼包,安裝的話,直接
yum install salt-master -y #服務端
yum install salt-minion -y #用戶端
           

ubuntu下的安裝:

13.04的軟體源收錄有salt,版本比較老0.12.0版本。但是13.04以下的版本并沒有收錄,需要添加PPA源
sudo apt-get install salt-master #服務端
sudo apt-get install salt-minion #用戶端
           

13.04以下的版本,需要手工添加ppa源,才可以用包管理器安裝saltstack:

sudo apt-get install python-software-properties
echo 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 -
sudo apt-get update
sudo apt-get install salt-master
sudo apt-get install salt-minion
           

二、配置

server端的配置:vim /etc/salt/master (master的配置檔案時預設在這條目錄下面的)

user: root
auto_accept: True #自動接收minion端的key并驗證
/etc/init.d/salt-master restart
           

minion端的配置: vim /etc/salt/minion (minion配置檔案的預設路徑)

master: salt (這裡填寫的是服務端的hostname,我的server名字就是salt)
/etc/init.d/salt-minion restart
           

salt minion和master的認證過程:

minion在第一次啟動時,會在/etc/salt/pki/minion/下自動生成minion.pem(private key), minion.pub(public key),然後将minion.pub發送給master

master在接收到minion的public key後,通過salt-key指令accept minion public key,這樣在master的/etc/salt/pki/master/minions下的将會存放以minion id命名的public key, 然後master就能對minion發送指令了

來到master端:

#salt-key -L # 驗證minion的key是否接收
Accepted Keys:
sa10-007
Unaccepted Keys:
Rejected Keys:
           

可以發現,是正常接收到minion端(sa10-007)的key;這裡的自動接收起源于上文提到的auto_accept: True這個參數,這個參數開啟,表示隻要有minion起來就會自動被salt的server端所接收

salt-key的基本指令:

salt-key -L #檢測目前server端所有minion端key的情況,三種:接收、等待接收和拒絕
salt-key -a hostname #指定接收某台minion的key
salt-key -A #接收Unaccepted Keys下所有的minion
salt-key -d hostname #删除已經接收的機器中指定機器minion key (Accepted Keys:)
salt-key -D #删除已經接收的所有機器(Accepted Keys:)
           

驗證server和minion的通信(server端進行):

#salt '*' test.ping
sa10-007:
 True
           

可以發現,server端和minion端是可以正常通信的,至此,saltstack的master和minion正常安裝以及配置完成

,後續 将整理salt的基本使用