Salt 是:
一個配置管理系統(tǒng)锦募,能夠維護預(yù)定義狀態(tài)的遠程節(jié)點(比如征峦,確保指定的報被安裝,指定的服務(wù)在運行)
一個分布式遠程執(zhí)行系統(tǒng)坪仇,用來在遠程節(jié)點(可以是單個節(jié)點,也可以是任意規(guī)則挑選出來的節(jié)點)上執(zhí)行命令和查詢數(shù)據(jù)
開發(fā)其的目的是為遠程執(zhí)行提供最好的解決方案垃你,并使遠程執(zhí)行變得更好椅文,更快,更簡單
SaltStack三大功能:
遠程執(zhí)行,
配置管理,
云管理
Saltstack的優(yōu)勢:
有master端和minion端惜颇,執(zhí)行的信息比較穩(wěn)定皆刺,不容易丟失信息,或者出現(xiàn)失聯(lián)主機的情況
有封裝好的http-api凌摄,我們可以直接啟動salt-api就可以通過http協(xié)議進行調(diào)用羡蛾。不需要自己進行第二次的封裝
SaltStack安裝基礎(chǔ)環(huán)境準備
基于centos6和centos7的差異,在兩個不同的操作系統(tǒng)中安裝saltstack也是不一樣的锨亏。
Centos6需要先安裝擴展源痴怨,然后在進行安裝:
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 ##查看主機名
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 ##加入到開機自動啟動
[root@linux-node1 yum.repos.d]# chkconfig salt-minion on ##加入到開機自動啟動
[root@linux-node1 yum.repos.d]# /etc/init.d/salt-master start ##啟動salt-master
Starting salt-master daemon: [ OK ]
啟動到這里需要修改minion配置文件,才能啟動salt-minion服務(wù)
[root@linux-node1 yum.repos.d]# grep '^[a-z]' /etc/salt/minion
master: 192.168.0.15 ##指定master主機
[root@linux-node1 yum.repos.d]# cat /etc/hosts
192.168.0.15 linux-node1.zhurui.com linux-node1 ##確認主機名是否解析
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 ##啟動minion客戶端
Starting salt-minion daemon: [ OK ]
[root@linux-node1 yum.repos.d]#
客戶端:
[root@linux-node2 ~]# yum install -y salt-minion ##安裝salt-minion包器予,相當于客戶端包
[root@linux-node2 ~]# chkconfig salt-minion on ##加入開機自啟動
[root@linux-node2 ~]# grep '^[a-z]' /etc/salt/minion ##客戶端指定master主機
master: 192.168.0.15
[root@linux-node2 ~]# /etc/init.d/salt-minion start ##接著啟動minion
Starting salt-minion daemon: [ OK ]
Salt秘鑰認證設(shè)置
Master與Minion認證
minion在第一次啟動時浪藻,會在/etc/salt/pki/minion/(該路徑在/etc/salt/minion里面設(shè)置)下自動生成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下的將會存放以minion id命名的 public key反浓,然后master就能對minion發(fā)送指令了萌丈。
salt-key -L 或者salt-key 顯示所有的key
salt-key -D :刪除所有認證主機id證書
salt-key -d keys_values -y
salt-key -A:接收所有id證書請求
salt-key -a id :接受單個id證書請求
1,使用salt-kes -a linux*命令之前在目錄/etc/salt/pki/master目錄結(jié)構(gòu)如下
2,使用salt-kes -a linux*命令將秘鑰通過允許,隨后minions_pre下的文件會轉(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,此時目錄機構(gòu)變化成如下:
4,并且伴隨著客戶端/etc/salt/pki/minion/目錄下有master公鑰生成