集中化管理平臺saltstack--原理及安裝

SaltStack原理:

Saltstack由master和minion構成,master是服務器端,表示一臺服務器;minion是客戶端,表示有多臺服務器。在master上發送命令給符合條件的minion,minion就會執行相應的命令,master和minion之間是通過Zero(消息隊列)進行通信的。

SaltStack的master端監聽4505和4506端口,4505爲master和minion認證通信端口,4506爲master用來發送命令或接收minion的命令執行返回信息。

當客戶端啓動後,會主動連接master端註冊,然後一直保持該TCP連接,而master通過這條TCP連接對客戶端進行控制。如果斷開連接,master對客戶端將不能進行控制。但是,當客戶端檢查到連接斷開後,會定期向master端請求註冊連接

Master:控制中心,salt命令運行和資源狀態管理端
Minions:需要管理的客戶端機器,會主動去連接master端,並從master端得到資源狀態,同步資源管理信息

saltstack系統架構圖:
集中化管理平臺saltstack--原理及安裝

salt三大功能:

  遠程執行
  配置管理
  雲管理

salt三種運行模式:

  Local
  Master Minion
  Salt SSH

部署SaltStack
部署環境:
集中化管理平臺saltstack--原理及安裝

1 關閉三臺服務器的防火牆

[root@promote ~]# systemctl stop firewalld.service
[root@promote ~]# setenforce 0

2 分別更改三臺主機的主機名與hosts文件

[root@promote ~]# hostnamectl set-hostname master.saltstack.com     #更改master的主機名
[root@promote ~]# hostnamectl set-hostname web01.saltstack.com     #更改節點1的主機名
[root@promote ~]# hostnamectl set-hostname web02.saltstack.com     #更改節點2的主機名

[root@promote ~]# vim /etc/hosts               #以下三條信息需要在三臺服務器上都進行添加
192.168.199.129 master.saltstack.com
192.168.199.130 web01.saltstack.com
192.168.199.131 web02.saltstack.com
以上操作執行完成後需要重啓服務器纔可以生效,注意重啓完不要忘記關閉防火牆

3 在三臺服務器上下載所需要的epel源

[root@promote ~]# yum install epel-release -y

4 在master上安裝salt-master,在節點服務器上安裝salt-minion。

[root@master ~]# yum install salt-master -y      #注意主控端安裝的saltstack軟件是master

[root@web01 ~]# yum install salt-minion -y      #兩臺被控端安裝的saltstack軟件是minion
[root@web02 ~]# yum install salt-minion -y

5 修改主控端的配置文件,注意默認的master文件全部都是註釋的

[root@master ~]# vim /etc/salt/master 
15 interface: 192.168.199.129       #爲了安全將監聽地址改爲本地地址
215 auto_accept: True               #修改215行的主控端會自動認證被控端的認證,只要被控端在設置完主控端的IP地址後啓動服務,主控端就會允許被控端自動認證,以避免以後每次都要運行salt-key來確認證書信任
416 file_roots:                     #修改416行的slatstack文件根目錄位置,注意這個目錄默認是沒有的,需要創建
417   base:
418     - /srv/salt
710 nodegroups:                     #修改710行的組分類,將被控端服務器名添加到相對應的組中
711   group1: 'web01.saltstack.com'
712   group2: 'web02.saltstack.com'
552 pillar_opts: True               #修改552行的pillar開啓功能
529 pillar_roots:                   #修改529行的pillar的主目錄,注意這個目錄是沒有的,需要創建
530   base:
531     - /srv/pillar

使用命令查看主控端修改了哪些內容

[root@master ~]# cat /etc/salt/master | grep -v ^$ | grep -v ^#              #該命令是過濾掉文件中的空行開頭的行
interface: 192.168.199.129
auto_accept: True
file_roots:
  base:
    - /srv/salt
pillar_roots:
  base:
    - /srv/pillar
pillar_opts: True
nodegroups:
  group1: 'web01.saltstack.com'
  group2: 'web02.saltstack.com'

6 創建salt文件根目錄及pillar目錄

[root@master ~]# mkdir /srv/salt
[root@master ~]# mkdir /srv/pillar

7 做完上述操作後就可以啓動salt-master服務

[root@master ~]# systemctl start salt-master.service 
[root@master ~]# netstat -ntap | egrep '4505|4506'          #查看兩個監聽端口
tcp        0      0 192.168.199.129:4505    0.0.0.0:*               LISTEN      1848/python         
tcp        0      0 192.168.199.129:4506    0.0.0.0:*               LISTEN      1860/python         

8 配置兩臺被控端配置文件,被控端的配置文件默認也都是註釋的

[root@web01 ~]# vim /etc/salt/minion
16 master: 192.168.199.129    #指定主控端IP
78 id: web01.saltstack.com    #指定被控主機名
[root@web01 ~]# systemctl start salt-minion.service    #開啓服務

[root@web02 ~]# vim /etc/salt/minion 
16 master: 192.168.199.129
78 id: web02.saltstack.com
[root@web02 ~]# systemctl start salt-minion.service 

9 驗證
在主控端上簡單測試一下主控端與被控端的通信狀態,如果返回都是True,則說明正常。注意這裏的ping和平時用的ping命令不同,它只是test類下面的一個方法而已,用來驗證主控端與被控端的通信狀態。這裏*表示所有通過認證的被控端,還可以支持其他很多正則表達式的匹配。

[root@master ~]# salt '*' test.ping
web02.saltstack.com:
    True
web01.saltstack.com:
    True                                       #可以看到兩臺被控端與主控端是相通的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章