SaltStack自動化批量部署Apache

SlatStack原理:

SaltStack 是一種基於 C/S 架構的服務器基礎架構集中化管理平臺,管理端稱爲 Master,客戶端稱爲 Minion;SaltStack 具有配置管理、遠程執行、監控等功能;SaltStack 自己是基於 Python 語言開發實現,結合了輕量級的消息隊列軟件 ZeroMQ 與 Python 第三方模塊(Pyzmq、PyCrypto、Pyjinjia二、python-msgpack 和 PyYAML 等)構建。
經過部署 SaltStack 環境,運維人員能夠在成千上萬臺服務器上作到批量執行命令,根據不一樣的業務特性進行配置集中化管理、分發文件、採集系統數據及軟件包的安裝與管理等。node

SlatStack特性:

  • 部署簡單、管理方便;
  • 支持大部分的操做系統,如 Unix/Linux/Windows 環境;
  • 架構上使用C/S管理模式,易於擴展;
  • 配置簡單、功能覆蓋廣;
  • 主控端(Master)與被控端(Minion)基於證書認證,確保安全可靠的通訊;
  • 支持 API 及自定義 Python 模塊,輕鬆實現功能擴展。

    SlatStack經常使用模塊:

  • pkg模塊---包管理,包括增刪更新
  • file模塊---管理文件操做,包括同步文件、設置權限和所屬用戶組、刪除文件等操做
  • cmd模塊---在minion上執行命令和腳本
  • user模塊---管理系統帳戶操做
  • service模塊---管理系統服務操做
  • cron模塊---管理cron服務操做

    SlatStack三大組件:

    Grains:靜態組件,minion啓動時收集信息。
    Pillar:動態組件,定義變量、信息,密碼。
    State:核心功能,經過制定好的sls文件對被控主機進行管理。python

SlatStack工做模式:

一、slatstack通訊模式

SaltStack自動化批量部署Apache

  • Minion 是 SaltStack 須要管理的客戶端安裝組件,會主動去鏈接 Master 端,並從 Master 端獲得資源狀態信息,同步資源管理信息。
  • Master 做爲控制中心運行在主機服務器上,負責 Salt 命令運行和資源狀態的管理。
  • ZeroMQ 是一款開源的消息隊列軟件,用於在 Minion 端與 Master 端創建系統通訊橋樑。
  • Daemon 是運行於每個成員內的守護進程,承擔着發佈消息及通訊端口監聽的功能。

    二、slatstack執行原理

    SaltStack自動化批量部署Apache

  • Minion 是 SaltStack 須要管理的客戶端安裝組件,會主動去鏈接 Master 端,並從 Master 端獲得資源狀態信息,同步資源管理信息。
  • Master 做爲控制中心運行在主機服務器上,負責 Salt 命令運行和資源狀態的管理。
  • Master 上執行某條指令經過隊列下發到各個 Minions 去執行,並返回結果。

SlatStack部署

實驗拓撲:

SaltStack自動化批量部署Apache

實驗環境:

角色 主機名 操做系統 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 ^#

SaltStack自動化批量部署Apache
四、建立配置文件中目錄

mkdir /srv/salt
mkdir /srv/pillar

五、開啓服salt-master務

systemctl start salt-master.service
netstat -ntap | egrep '4505|4506'

SaltStack自動化批量部署Apache
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

SaltStack自動化批量部署Apache

二、遠程執行命令

salt '*' cmd.run 'df -h'

SaltStack自動化批量部署Apache

三、查看master上接受的客戶端

salt-key

SaltStack自動化批量部署Apache
四、查看被控制主機上grains全部值

salt 'web01.saltstack.com' grains.items
salt 'web01.saltstack.com' pillar.items

批量部署安裝Apache

一、引導腳本
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

SaltStack自動化批量部署Apache

五、最後,查看被控制端服務器apache安裝是否成功
SaltStack自動化批量部署Apache

相關文章
相關標籤/搜索