自動化部署之SaltStack

SaltStack原理

SaltStack由Master和Minion構成,Master 是服務端, 表示一臺服務器;Minion是客戶服務端,表示多臺服務器。在Master上發送命令給符合條件的Minion,Minin就會執行相應的命令,Master和Minion之間是經過ZeroMQ (消息隊列)進行通訊的。node

SaltStack的Master端監聽4505與4506端口,4505爲Master和Minion認證通訊端口,4506爲Master用來發送命令或者接收Minion的命令執行返回信息。web

當客戶端啓動後,會主動鏈接Master端註冊,而後一直保持該TCP鏈接,而Master經過這條TCP鏈接對客戶端進行控制。若是鏈接斷開,Master對客戶端將不能進行控制。可是,當客戶端檢查到鏈接斷開後,會按期向Master端請求註冊鏈接。正則表達式

SaltStack經常使用模塊
名稱 說明
pkg模塊 包管理,包括增刪更新。
file模塊 管理文件操做,包括同步文件、設置文件權限和所屬用戶組、刪除文件等操做。
cmd模塊 在Minion上執行命令或者腳本。
user模塊 管理系統帳號操做。
service模塊 管理系統服務操做。
cron模塊 管理cron服務操做。

SaltStack批量部署並配置Apache

角色 主機名 IP地址 須要安裝的軟件
master master 192.168.10.7 release、salt-master
minion web1 192.168.10.8 release、salt-minion
minion web2 192.168.10.9 release、salt-minion
SaltStack安裝
  1. 修改全部主句名稱和hosts文件
主機名分別修改成master > web1 > web2 

vim /etc/hostname 

master       //修改主機名

vim /etc/hosts

192.168.10.6   master
192.168.10.7   web1
192.168.10.8   web2
init 6 #重啓

自動化部署之SaltStack

  1. 在三臺主機上安轉epel源

    yum install epel-release -yapache

  2. master 安裝salt-master

    yum install salt-master -yvim

  3. 編輯master主機上的salt配置文件
vim /etc/salt/master

interface: 192.168.10.6     //15行,改成爲本機地址     

auto_accept: True    //215行,自動認證被控端的認證     

file_roots:          //416-418行,去掉註釋開啓 
  base:
    - /srv/salt         //這個目錄默認是沒有的,須要建立。

pillar_roots:      //529-531行, 去掉註釋開啓
  base:
    - /srv/pillar      //這個目錄默認是沒有的,須要建立。

pillar_opts: True    //552行,開啓pillar功能

nodegroups:          //710行,組的分類
  group1: 'web1'
  group2: 'web2'

4) 查看修改的內容安全

cat /etc/salt/master | grep -v ^$ | grep -v ^# 過濾出空行和#開頭的信息
自動化部署之SaltStack
5) 建立salt目標和pillar服務器

mkdir /srv/salt 
 mkdir /srv/pillar

6) 關閉防火牆和安全功能,開啓salt-master服務並查看4505端口和4506端口是否開啓ide

systemctl stop firewalld.service
setenforce 0      //關閉防火牆和安全功能

systemctl start salt-master.service  開啓服務
netstat -ntap | egrep '4505|4506' #egrep 支持擴正則表達式

7) 兩臺被控端web1,web2上安裝salt-minionrest

yum install salt-minion -ycode

8) 編輯salt-minion的配置文件

vim /etc/salt/minion

master: 192.168.10.6     //16行,指定控制端IP
id: web1     //78行,指定本機主機名,web2則爲web2

SaltStack批量部署Apache

master上建立top.sls文件並寫

vim /srv/salt/top.sls

base:
  '*':        //表示在全部的客戶端執行apache模塊
   - apache      #定義變量後面建立的內容是調用裏面的內容
vim /srv/salt/apache.sls  #建立被調用變量

apache-service:
 pkg.installed:
   - names:
     - httpd
     - httpd-devel
 service.running:
   - name: httpd
   - enable: True

重啓salt-master服務

systemctl restart salt-master
自動化部署之SaltStack
自動化部署之SaltStack
自動化部署之SaltStack

相關文章
相關標籤/搜索