Salt 是:
一個(gè)配置管理系統(tǒng),能夠維護(hù)預(yù)定義狀態(tài)的遠(yuǎn)程節(jié)點(diǎn)(比如,確保指定的報(bào)被安裝,指定的服務(wù)在運(yùn)行)
一個(gè)分布式遠(yuǎn)程執(zhí)行系統(tǒng),用來在遠(yuǎn)程節(jié)點(diǎn)(可以是單個(gè)節(jié)點(diǎn),也可以是任意規(guī)則挑選出來的節(jié)點(diǎn))上執(zhí)行命令和查詢數(shù)據(jù)
開發(fā)其的目的是為遠(yuǎn)程執(zhí)行提供最好的解決方案,并使遠(yuǎn)程執(zhí)行變得更好,更快,更簡(jiǎn)單
SaltStack三大功能:
遠(yuǎn)程執(zhí)行,
配置管理,
云管理
Saltstack的優(yōu)勢(shì):
有master端和minion端,執(zhí)行的信息比較穩(wěn)定,不容易丟失信息,或者出現(xiàn)失聯(lián)主機(jī)的情況
有封裝好的http-api,我們可以直接啟動(dòng)salt-api就可以通過http協(xié)議進(jìn)行調(diào)用。不需要自己進(jìn)行第二次的封裝
SaltStack安裝基礎(chǔ)環(huán)境準(zhǔn)備
基于centos6和centos7的差異,在兩個(gè)不同的操作系統(tǒng)中安裝saltstack也是不一樣的。
Centos6需要先安裝擴(kuò)展源,然后在進(jìn)行安裝:
Master端
yum install –y salt-master
Yum install –y salt-api
Minion端:
Yum install -y salt-minion
[root@linux-node1 ~]# cat /etc/redhat-release ##查看系統(tǒng)版本
CentOS release 6.7 (Final)
[root@linux-node1 ~]# uname -r ##查看系統(tǒng)內(nèi)核版本
2.6.32-573.el6.x86_64
[root@linux-node1 ~]# getenforce ##查看selinux的狀態(tài)
Enforcing
[root@linux-node1 ~]# setenforce 0 ##關(guān)閉selinux
[root@linux-node1 ~]# getenforce
Permissive
[root@linux-node1 ~]# /etc/init.d/iptables stop
[root@linux-node1 ~]# /etc/init.d/iptables stop
[root@linux-node1 ~]# ifconfig eth0|awk -F '[: ]+' 'NR==2{print $4}' ##過濾Ip地址
192.168.0.15
[root@linux-node1 ~]# hostname ##查看主機(jī)名
linux-node1.zhurui.com
[root@linux-node1 yum.repos.d]# wget -O /etc/yum.repos.d/epel.repo [http://mirrors.aliyun.com/repo/epel-6.repo](http://mirrors.aliyun.com/repo/epel-6.repo) ##安裝salt必須使用到epel源
安裝Salt
服務(wù)器:
[root@linux-node1 yum.repos.d]# yum install -y salt-master salt-minion ##salt-master包跟salt-minion包
[root@linux-node1 yum.repos.d]# chkconfig salt-master on ##加入到開機(jī)自動(dòng)啟動(dòng)
[root@linux-node1 yum.repos.d]# chkconfig salt-minion on ##加入到開機(jī)自動(dòng)啟動(dòng)
[root@linux-node1 yum.repos.d]# /etc/init.d/salt-master start ##啟動(dòng)salt-master
Starting salt-master daemon: [ OK ]
啟動(dòng)到這里需要修改minion配置文件,才能啟動(dòng)salt-minion服務(wù)
[root@linux-node1 yum.repos.d]# grep '^[a-z]' /etc/salt/minion
master: 192.168.0.15 ##指定master主機(jī)
[root@linux-node1 yum.repos.d]# cat /etc/hosts
192.168.0.15 linux-node1.zhurui.com linux-node1 ##確認(rèn)主機(jī)名是否解析
192.168.0.16 linux-node2.zhurui.com linux-node2
解析結(jié)果:
[root@linux-node1 yum.repos.d]# ping linux-node1.zhurui.com
PING linux-node1.zhurui.com (192.168.0.15)56(84) bytes of data.
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=1 ttl=64 time=0.087 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=2 ttl=64 time=0.060 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=3 ttl=64 time=0.053 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=4 ttl=64 time=0.060 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=5 ttl=64 time=0.053 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=6 ttl=64 time=0.052 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=7 ttl=64 time=0.214 ms
64 bytes from linux-node1.zhurui.com (192.168.0.15): icmp_seq=8 ttl=64 time=0.061 ms
[root@linux-node1 yum.repos.d]# /etc/init.d/salt-minion start ##啟動(dòng)minion客戶端
Starting salt-minion daemon: [ OK ]
[root@linux-node1 yum.repos.d]#
客戶端:
[root@linux-node2 ~]# yum install -y salt-minion ##安裝salt-minion包,相當(dāng)于客戶端包
[root@linux-node2 ~]# chkconfig salt-minion on ##加入開機(jī)自啟動(dòng)
[root@linux-node2 ~]# grep '^[a-z]' /etc/salt/minion ##客戶端指定master主機(jī)
master: 192.168.0.15
[root@linux-node2 ~]# /etc/init.d/salt-minion start ##接著啟動(dòng)minion
Starting salt-minion daemon: [ OK ]
Salt秘鑰認(rèn)證設(shè)置
Master與Minion認(rèn)證
minion在第一次啟動(dòng)時(shí),會(huì)在/etc/salt/pki/minion/(該路徑在/etc/salt/minion里面設(shè)置)下自動(dòng)生成minion.pem(private key)和 minion.pub(public key),然后將 minion.pub發(fā)送給master。master在接收到minion的public key后,通過salt-key命令accept minion public key,這樣在master的/etc/salt/pki/master/minions下的將會(huì)存放以minion id命名的 public key,然后master就能對(duì)minion發(fā)送指令了。
salt-key -L 或者salt-key 顯示所有的key
salt-key -D :刪除所有認(rèn)證主機(jī)id證書
salt-key -d keys_values -y
salt-key -A:接收所有id證書請(qǐng)求
salt-key -a id :接受單個(gè)id證書請(qǐng)求
1,使用salt-kes -a linux*命令之前在目錄/etc/salt/pki/master目錄結(jié)構(gòu)如下


2,使用salt-kes -a linux*命令將秘鑰通過允許,隨后minions_pre下的文件會(huì)轉(zhuǎn)移到minions目錄下
[root@linux-node1 minion]# salt-key -a linux*
The following keys are going to be accepted:
UnacceptedKeys:
linux-node1.zhurui.com
linux-node2.zhurui.com
Proceed?[n/Y] Y
Keyfor minion linux-node1.zhurui.com accepted.
Keyfor minion linux-node2.zhurui.com accepted.
[root@linux-node1 minion]# salt-key
AcceptedKeys:
linux-node1.zhurui.com
linux-node2.zhurui.com
DeniedKeys:
UnacceptedKeys:
RejectedKeys:

3,此時(shí)目錄機(jī)構(gòu)變化成如下:

4,并且伴隨著客戶端/etc/salt/pki/minion/目錄下有master公鑰生成
