1. 程式人生 > >部署SaltStack及批量安裝httpd服務

部署SaltStack及批量安裝httpd服務

strong rom ble srv 安裝apache 通信 eve enforce emc

  • SaltStack簡介
  • Salt是一個基礎平臺管理工具。SaltStack 采用 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.saltstack.com 192.168.200.128
    minion web01.saltstack.com 192.168.200.129
    minion web02.saltstack.com 192.168.200.130

    ?
    操作步驟

    • SaltStack安裝

    • 1:修改主機名

      # vim /etc/hostname
      三臺主機分別為:
      master.saltstack.com    //(管理)
      web01.saltstack.com     //(被管理)
      web02.saltstack.com     //(被管理)
    • 2:修改三臺hosts文件

      # vim /etc/hosts
      192.168.200.128 master.saltstack.com
      192.168.200.129 web01.saltstack.com
      192.168.200.130 web02.saltstack.com
    • 3:安裝

      # 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.200.128    //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 ^#       //查看修改好的配置項

      技術分享圖片

    ?

    • 5:創建salt文件根目錄和pillar目錄

      # mkdir /srv/salt
      # mkdir /srv/pillar
      # systemctl start salt-master.service    //開啟服務
      # netstat -natp | egrep ‘4505|4506‘       //查看4505、4506端口

      技術分享圖片

    ?

    • 6:被管理端配置

      # vim /etc/salt/minion
      master: 192.168.200.128     //16行 指定管理端IP
      id: web01.saltstack.com      //78行 指定被控的主機名 (另外一臺為 web02.saltstack.com)
      # systemctl start salt-minion.service  //開啟服務

    ?

    • 7:在管理端測試 。 ‘*‘ 指的是所有主機

      # 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

      註意:‘*‘  表示所有客戶端執行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

      技術分享圖片

    • 重啟服務

      # systemctl restart salt-master 
    • 在管理端執行刷新state配置命令

      # salt ‘*‘ state.highstate

      技術分享圖片技術分享圖片
      ?
      ?

    • 去minion驗證下httpd安裝成功

    技術分享圖片技術分享圖片

    部署SaltStack及批量安裝httpd服務