1. 程式人生 > >部署 SaltStack 自動化運維工具,並簡易批量安裝 httpd 服務

部署 SaltStack 自動化運維工具,並簡易批量安裝 httpd 服務

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 ^#       //檢視修改好的配置項

    部署 SaltStack 自動化運維工具,並簡易批量安裝 httpd 服務

 

  • 5、建立salt檔案根目錄以及pillar目錄
    # mkdir /srv/salt
    # mkdir /srv/pillar
    # systemctl start salt-master.service    //開啟服務
    # netstat -natp | egrep '4505|4506'       //檢視4505、4506埠

    部署 SaltStack 自動化運維工具,並簡易批量安裝 httpd 服務

 

  • 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 自動化運維工具,並簡易批量安裝 httpd 服務
     
    部署 SaltStack 自動化運維工具,並簡易批量安裝 httpd 服務

 

  • 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

    部署 SaltStack 自動化運維工具,並簡易批量安裝 httpd 服務
     
    部署 SaltStack 自動化運維工具,並簡易批量安裝 httpd 服務

 

  • 在minion伺服器上驗證 httpd 安裝成功,並已開啟 httpd 服務
    部署 SaltStack 自動化運維工具,並簡易批量安裝 httpd 服務