• 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     //(被管理)
    # init 6  //重启系统 让主机名生效
  • 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 ^#       //查看修改好的配置项

    部署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.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及批量安装httpd服务部署SaltStack及批量安装httpd服务

  • Saltstack配置管理安装Apache

    注意:'*'  表示所有客户端执行apache模块
    # vim /srv/salt/top.sls
    base:
     '*':
         - apache

    部署SaltStack及批量安装httpd服务

    # vim /srv/salt/apache.sls   //注意apache-service  是自定义的id名
    apache-service:
        pkg.installed:
            - names:
                - httpd
                - httpd-devel
        service.running:
            - name: httpd
            - enable: True

    部署SaltStack及批量安装httpd服务

  • 重启服务

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

    # salt '*' state.highstate

    部署SaltStack及批量安装httpd服务部署SaltStack及批量安装httpd服务

  • 去minion验证下httpd安装成功

部署SaltStack及批量安装httpd服务部署SaltStack及批量安装httpd服务