部署 SaltStack 自動化運維工具,並簡易批量安裝 httpd 服務
阿新 • • 發佈:2018-11-21
SaltStack 介紹
SaltStack 是一個基於 Python 開發的一套架構配置管理工具,採用 C/S模式,server端就是salt的master,client端就是minion,minion與master之間通過ZeroMQ訊息佇列通訊。master監聽4505和4506埠,4505為master和minion認證通訊埠,4506為master用來發送命令或者接收minion的命令執行返回資訊。
SaltStack 常用模組
- SaltStack提供了非常多的功能模組,以便於對作業系統的基礎功能和常用工具的操作。
1:pkg模組 :是包管理,包括增刪更新
2:file模組 :管理檔案操作,包括同步檔案、設定檔案許可權和所屬使用者組、刪除檔案等操作
3:cmd模組 :是在Minion上執行命令或者指令碼
4:user模組 :管理系統賬戶操作
5:service模組 :管理系統服務操作
6:cron模組 :管理cron服務操作
系統環境
角色 | 主機名 | IP地址 |
---|---|---|
Master | master | 192.168.6.117 |
Minion | web01 | 192.168.6.130 |
Minion | web02 | 192.168.6.129 |
開始部署
- SaltStack 安裝
- 1、修改主機名
# vim /etc/hostname 三臺主機分別為: master //(管理) web01 //(被管理) web02 //(被管理) # init 6 //重啟系統 讓主機名生效
- 2、修改三臺伺服器的hosts檔案
# vim /etc/hosts 192.168.6.117 master 193.168.6.130 web01 192.168.6.129 web02
- 3、安裝salt
# systemctl stop firewalld # setenforce 0 //關閉防火牆 # yum install -y epel-release # yum install -y salt-master //管理端安裝 # yum install -y epel-release # yum install -y salt-minion //被管理端安裝
-
4、管理端配置
# vim /etc/salt/master interface: 192.168.6.117 //15行 監聽地址改為本地IP ............ auto_accept: True //215 證書認證 ............ file_roots: //416行 站點目錄開啟 base: - /srv/salt ............ pillar_opts: True //552行 pillar開啟 pillar_roots: //529行 base: - /srv/pillar ............ nodegroups: //710行 組分類 group1: 'web01.saltstack.com' group2: 'web02.saltstack.com' # cat /etc/salt/master | grep -v ^$ | grep -v ^# //檢視修改好的配置項
- 5、建立salt檔案根目錄以及pillar目錄
# mkdir /srv/salt # mkdir /srv/pillar # systemctl start salt-master.service //開啟服務 # netstat -natp | egrep '4505|4506' //檢視4505、4506埠
- 6、被管理端配置
# vim /etc/salt/minion master: 192.168.6.117 //16行 指定管理端IP id: web01 //78行 指定被控的主機名 (另外一臺為 web02) # systemctl start salt-minion.service //開啟服務
- 7、在管理端測試 ( '*' 指的是所有主機)
# salt '*' test.ping //檢視通訊狀態 # salt '*' cmd.run 'df -h' //檢視所有被管理端的掛載情況 # salt 'web01' cmd.run 'df -h' //檢視指定主機的掛載情況 # salt '*' grains.items //檢視grains值(靜態資訊) # salt '*' pillar.items //檢視pillar值(動態資訊) # salt-key //檢視已經被接受過的客戶端
- SaltStack 配置安裝 Apache
# vim /srv/salt/top.sls base: '*': - apache
# vim /srv/salt/apache.sls //注意apache-service 是自定義的id名 apache-service: pkg.installed: - names: - httpd - httpd-devel service.running: - name: httpd - enable: True
- 重啟服務,並在管理端執行重新整理state配置命令
# systemctl restart salt-master # salt '*' state.highstate
- 在minion伺服器上驗證 httpd 安裝成功,並已開啟 httpd 服務