SaltStack自動化運維管理(一)——簡介與部署
1. saltstack簡介
- saltstack是一個配置管理系統,能夠維護預定義狀態的遠程節點。
- saltstack是一個分佈式遠程執行系統,用來在遠程節點上執行命令和查詢數據。
- saltstack是運維人員提高工作效率、規範業務配置與操作的利器。
- Salt的核心功能
- 使命令發送到遠程系統是並行的而不是串行的
- 使用安全加密的協議
- 使用最小最快的網絡載荷(因爲是使用消息隊列通信)
- 提供簡單的編程接口
- Salt同樣引入了更加細緻化的領域控制系統來遠程執行,使得系統成爲目標不止可以通過主機名,還可以通過系統屬性。
saltstack通信機制
SaltStack 採用 C/S模式,minion與master之間通過ZeroMQ消息隊列通信,默認監聽4505端口。
Salt Master運行的第二個網絡服務就是ZeroMQ REP系統,默認監聽4506端口。
2. saltstack安裝與配置
官網:https://www.saltstack.com/
官方文檔:https://docs.saltstack.com/en/latest/
這裏暫時先準備三臺虛擬機來做此次實驗(server1,server2,server3),配置虛擬機可以上網(配置方法點擊這裏)。
2.1 設置官方YUM倉庫
在server1,server2,server3上:
cd /etc/yum.repos.d/
yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
yum clean all
yum repolist
yum list salt-master
在server1上安裝salt-master
yum install -y salt-master
在server2和server3上安裝salt-minion
yum install -y salt-minion
2.2 master端設置
在server1:
systemctl enable salt-master #設置master自啓動
systemctl start salt-master #啓動master服務
netstat -antlp #查看端口
ps ax
yum install -y python-setproctitle.x86_64
systemctl restart salt-master
ps ax
2.3 minion端配置
在server2和server3:
vim /etc/salt/minion
master: 172.25.1.1 #設置master主機的ip
systemctl enable salt-minion
systemctl start salt-minion
netstat -antlp #查看端口
2.4 master端執行命令允許minion連接
salt-key -L
salt-key -A
salt-key -L
yum install -y lsof
lsof -i :4505
salt '*' test.ping
salt server2 test.ping
salt server3 test.ping
salt -E 'server[1-4]' test.ping
salt -E 'server[1-4]' cmd.run hostname
salt -E 'server[1-4]' cmd.run df
salt -E 'server[1-4]' cmd.run 'df -h'
注意:如果在master端找不到minion端,可能的原因有兩個:
- 防火牆有問題,可以將防火牆關閉
- minion主機名修改後,master端無法及時知曉,可以將minion端/etc/salt/路徑下的
minion_id文件刪掉,再重啓minion端即可
到此,一個簡單的SaltStack自動化運維管理系統就部署好了。