自動化運維工具---SaltStack安裝部署及簡單案例
- SaltStack由Master(服務端)和Minion(客戶端)組成,Master和Minion之間通過ZeroMQ(消息隊列)進行通訊,Master和Minion分別監聽4505與4506端口,4505為master與minion認證通信端口,4506為master用來發送或者接受minion的命令執行返回信息。
- 當客戶端啟動後,會主動鏈接master端註冊,然後一直保持該TCP連接,而master通過這條TCP連接對客戶端進行控制,如果連接斷開,master將對客戶端不能進行控制,但是,當客戶端斷開連接後,會定期向master端請求註冊。
SaltStack常用模塊
- 與ansible類似,SaltStack提供了很多功能模塊,便於對操作系統的基礎功能和常用工具操作。
1:pkg模塊 :是包管理,包括增刪更新。
2:file模塊 :管理文件操作,包括同步文件、設置文件權限和所屬用戶組、刪除文件等操作。
3:cmd模塊 :是在Minion上執行命令或者腳本。
4:user模塊 :管理系統賬戶操作。
5:service模塊 :管理系統服務操作
6:cron模塊 :管理cron服務操作
實驗環境
角色 | 主機名 | IP地址 |
---|---|---|
master | master.saltstack.com | 192.168.144.112 |
minion | web01.saltstack.com | 192.168.144.111 |
SaltStack安裝
1、更改主機名關閉防火墻
- 需要註意的是master與minion端都需關閉SELinux和防火墻,且一定要設置完整的FQDN,域名的形式也要一樣,不然在主控端執行遠程執行命令或者配置的時候,等待的時間會非常長,甚至還會出現其他不可控的情況。
systemctl stop firewalld.service
setenforce 0vim /etc/hostname
master.saltstack.com //(管理)
web01.saltstack.com //(被管理)
- 修改每臺hosts文件
vim /etc/hosts
192.168.144.112 master.saltstack.com //所有機器保持一致,保證解析得到的域名可控
192.168.144.111 web01.saltstack.com
- 重啟服務器
2、安裝master與minion端
- 安裝master端
yum install epel-release -y
yum install salt-master
- 安裝被控制端
yum install epel-release -y
yum install -y salt-minion
3、master端配置
vim /etc/salt/master
interface: 192.168.144.111 //15行 監聽地址改為本地IP
............
auto_accept: True //215 證書認證
............
file_roots: //416行 站點目錄開啟,註意打開後目錄文件是否存在,若不存在需要手動創建
base:
- /srv/salt
............
nodegroups: //710行 組分類
group1: ‘web01.saltstack.com‘
group2: ‘web02.saltstack.com‘
............
pillar_opts: True //552行 pillar開啟
pillar_roots: //529行
base:
- /srv/pillar
- 過濾空行與#開頭行,查看所配置項。
cat /etc/salt/master | grep -v ^$ | grep -v ^#
- 創建master的站點目錄/srv/salt與pillar目錄/srv/pillar
mkdir /srv/salt
mkdir /srv/pillar
systemctl start salt-master.service //開啟服務
netstat -natp | egrep ‘4505|4506‘ //查看4505、4506端口
4、被管理端minnion配置
vim /etc/salt/minion
master: 192.168.144.111 //16行 指定管理端IP
id: web01.saltstack.com //78行 指定被控的主機名
- 啟動minion
systemctl start salt-minion.service
5、C/S構建完成,驗證簡單操作
salt ‘‘ test.ping //查看通信狀態
salt ‘‘ cmd.run ‘df -h‘ //查看所有被管理端的掛載情況
salt ‘web01.saltstack.com‘ cmd.run ‘df -h‘ //查看指定主機的掛載情況
salt ‘‘ grains.items //查看grains值
salt ‘‘ pillar.items //查看pillar(動態信息)
salt-key //查看已經被接受過的客戶端
Saltstack批量部署安裝Apache
1、創建sls入口文件表示執行Apache模塊
vim /srv/salt/top.sls
base:
‘*‘: //*號表示對所有主機
- apache //對應下面執行文件的名稱
2、創建模塊執行文件
vim /srv/salt/apache.sls
apache-service:
pkg.installed:
- names:
- httpd
- httpd-devel
service.running:
- name: httpd
- enable: True
systemctl restart salt-master
- 在主控端執行刷新state配置命令,讓被控制端執行安裝apache
salt ‘*‘ state.highstate
- 也可去minion被控制端檢測是否安裝成功。
自動化運維工具---SaltStack安裝部署及簡單案例