SaltStack 是一種基於 C/S 架構的服務器基礎架構集中化管理平臺,管理端稱爲 Master,客戶端稱爲 Minion;SaltStack 具有配置管理、遠程執行、監控等功能;SaltStack 自己是基於 Python 語言開發實現,結合了輕量級的消息隊列軟件 ZeroMQ 與 Python 第三方模塊(Pyzmq、PyCrypto、Pyjinjia二、python-msgpack 和 PyYAML 等)構建。
經過部署 SaltStack 環境,運維人員能夠在成千上萬臺服務器上作到批量執行命令,根據不一樣的業務特性進行配置集中化管理、分發文件、採集系統數據及軟件包的安裝與管理等。node
Grains:靜態組件,minion啓動時收集信息。
Pillar:動態組件,定義變量、信息,密碼。
State:核心功能,經過制定好的sls文件對被控主機進行管理。python
角色 | 主機名 | 操做系統 | IP地址 |
---|---|---|---|
master | master.saltstack.com | CentOS7 | 192.168.37.128 |
minion | web01.saltstack.com | CentOS7 | 192.168.37.130 |
minion | web02.saltstack.com | CentOS7 | 192.168.37.131 |
1、三臺服務器的準備工做
一、分別修改主機名web
vim /etc/hostsname #master主機 master.saltstack.com vim /etc/hostsname #minion主機 web01.saltstack.com vim /etc/hostsname web02.saltstack.com
二、修改hosts文件(三臺相同)apache
192.168.37.128 master.saltstack.com
192.168.37.130 web01.saltstack.com
192.168.37.131 web02.saltstack.comvim
三、安裝epel源安全
yum install -y epel-release服務器
四、重啓服務後關閉防火牆及安全功能架構
init 6
systemctl stop firewalld.service
setenforce 0運維
2、master控制器上安裝salt
一、安裝salt包ide
yum install -y salt-master
二、修改主配置文件
vim /etc/salt/master //15行 interface: 192.168.37.128 #監聽地址 //215行 auto_accept: True #避免要運行salt-key來確認證書 //416行 file_roots: base: - /srv/salt #saltstack文件根目錄位置,放置管理文件 //710行 nodegroups: #定義管理組 group1: 'web01.saltstack.com' group2: 'web02.saltstack.com' //552行 pillar_opts: True #開啓pillar動態數據,同步文件功能 //529行 pillar_roots: #pillar主目錄 base: - /srv/pillar
三、查看配置文件中修改內容(注意:配置文件中內容原先所有註釋掉,只有修改過的纔會過濾出來)
cat /etc/salt/master | grep -v ^$ | grep -v ^#
四、建立配置文件中目錄
mkdir /srv/salt
mkdir /srv/pillar
五、開啓服salt-master務
systemctl start salt-master.service
netstat -ntap | egrep '4505|4506'
3、minion被控制端上安裝salt
一、安裝salt包
yum -y install salt-minion
二、修改配置文件
vim /etc/salt/minion //16行 master: 192.168.37.128 #指定主控端IP //78行 id: web01.saltstack.com #被控制端主機名,另外一臺需改此處
三、開啓salt-minion服務
systemctl start salt-minion.service
4、master上演示控制狀態
一、測試與被控制端的通訊狀態
salt '*' test.ping
二、遠程執行命令
salt '*' cmd.run 'df -h'
三、查看master上接受的客戶端
salt-key
四、查看被控制主機上grains全部值
salt 'web01.saltstack.com' grains.items
salt 'web01.saltstack.com' pillar.items
一、引導腳本
vim /etc/srv/salt/top.sls
base: #*--表示全部客戶端執行Apache模塊 '*': - apache #調用Apache文件
二、安裝apache腳本
vim /srv/salt/apache.sls
apache-service: #apache-service是自定義id名 pkg.installed: #pkg.installed爲安裝包函數 - names: - httpd - httpd-devel service.running: - name: httpd - enable: True
三、重啓服務
systemctl restart salt-master.service
四、執行安裝命令
salt '*' state.highstate
五、最後,查看被控制端服務器apache安裝是否成功