自動化運維工具---SaltStack安裝部署及簡單案例

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服務操做node

實驗環境

角色 主機名 IP地址
master master.saltstack.com 192.168.144.112
minion web01.saltstack.com 192.168.144.111

SaltStack安裝

一、更改主機名關閉防火牆

  • 須要注意的是master與minion端都需關閉SELinux和防火牆,且必定要設置完整的FQDN,域名的形式也要同樣,否則在主控端執行遠程執行命令或者配置的時候,等待的時間會很是長,甚至還會出現其餘不可控的狀況。

systemctl stop firewalld.service
setenforce 0web

vim /etc/hostnameapache

master.saltstack.com    //(管理)
web01.saltstack.com     //(被管理)
  • 修改每臺hosts文件

vim /etc/hostsvim

192.168.144.112 master.saltstack.com     //全部機器保持一致,保證解析獲得的域名可控
192.168.144.111 web01.saltstack.com
  • 重啓服務器

二、安裝master與minion端

  • 安裝master端

yum install epel-release -y
yum install salt-master 服務器

  • 安裝被控制端

yum install epel-release -y
yum install -y salt-minionide

三、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' //查看450五、4506端口rest

四、被管理端minnion配置

vim /etc/salt/minioncode

master: 192.168.144.111     //16行 指定管理端IP
id: web01.saltstack.com      //78行 指定被控的主機名
  • 啓動minion

systemctl start salt-minion.service

五、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

一、建立sls入口文件表示執行Apache模塊

vim /srv/salt/top.sls

base:
 '*':        //*號表示對全部主機
     - apache   //對應下面執行文件的名稱

二、建立模塊執行文件

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被控制端檢測是否安裝成功。
相關文章
相關標籤/搜索