• CentOS7 下SaltStack部署


    一,概念
    SaltStack是一个服务器基础架构集中化管理平台,具备配置管理、远程执行、监控等功能,一般可以理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。
    通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。
    二,saltstack工作原理
    salt-master服务启动后会开启两个端口:4505和4506,minion没有端口,通过“双向密钥交换”(可通过tree /etc/salt/pki命令查看)来实现安全管理。salt-master每执行一条命令,所有minion均可收到,但只要指定的minion进行应答。
    
    [root@linux-node1 salt]# lsof -n -i:4505
    COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    salt-mast 11289 root   13u  IPv4  58611      0t0  TCP 192.168.56.11:4505 (LISTEN)
    salt-mast 11289 root   15u  IPv4  61320      0t0  TCP 192.168.56.11:4505->192.168.56.12:50292 (ESTABLISHED)
    salt-mast 11289 root   16u  IPv4  69915      0t0  TCP 192.168.56.11:4505->192.168.56.11:59634 (ESTABLISHED)
    salt-mini 14050 root   25u  IPv4  69914      0t0  TCP 192.168.56.11:59634->192.168.56.11:4505 (ESTABLISHED)
    
    由此可以看到,所有的minion都与master通信,而回复的时候,master则使用4506端口
    
    [root@linux-node1 salt]# lsof -n -i:4506
    COMMAND     PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
    salt-mast 11301 root   21u  IPv4  58619      0t0  TCP 192.168.56.11:4506 (LISTEN)
    salt-mast 11301 root   28u  IPv4  61319      0t0  TCP 192.168.56.11:4506->192.168.56.12:52042 (ESTABLISHED)
    salt-mast 11301 root   29u  IPv4  69847      0t0  TCP 192.168.56.11:4506->192.168.56.11:35406 (ESTABLISHED)
    salt-mini 14050 root   14u  IPv4  69846      0t0  TCP 192.168.56.11:35406->192.168.56.11:4506 (ESTABLISHED)

    三,运行方式
    - local 本地运行
    - Master/Minion  服务端/agent方式
    - Salt SSH 不需要安装agent

    四,安装

    环境:
    系统: CentOS7
    主机:
    saltstack-master 192.168.56.11
    saltstack-minion 192.168.56.12

    五,安装epel yum源
    yum -y install epel-release 
    yum clean all 
    yum makecache

    六,安装 saltstack-master
    saltstack-master 安装:yum -y install salt-master salt-minion
    
    1.配置: 修改 salt-master 本身监听地址(注:配置文件内不允许TAB键)
      vim /etc/salt/master 
      添加如下行:
      interface: 192.168.56.11
    
    
    2. 配置:指定salt-master地址(注:配置文件内不允许TAB键)
       vim /etc/salt/minion
      添加如下行:
      master: 192.168.56.11
      #id: 
    
    3.启动
      systemctl restart salt-master
      systemctl status salt-master
      systemctl enable salt-master
      systemctl restart salt-minion
      systemctl status salt-minion
      systemctl enable salt-minion

    salt-master配置文件-参考:
    salt-master配置文件-参考:
    
    vim /etc/salt/master
    
        # master的监听地址(注意:冒号后面空格)
        interface: 1.1.1.11
    
        # salt运行的用户,影响到salt的执行权限
        user: root
    
        # master自动接收客户端的验证
        auto_accept: True
    
        # salt的运行线程,开的线程越多一般处理的速度越快,但一般不要超过CPU的个数
        worker_threads: 8
    
        # master的管理端口
        publish_port : 4505
    
        # master跟minion的通讯端口,用于文件服务,认证,接受返回结果等 
        ret_port : 4506
    
        # 如果这个master运行的salt-syndic连接到了一个更高层级的master,那么这个参数需要配置成连接到的这个高层级master的监听端口
        syndic_master_port : 4506
    
        # 指定pid文件位置
        pidfile: /var/run/salt-master.pid
    
        # saltstack 可以控制的文件系统的开始位置
        root_dir: /
    
        # 日志文件地址
        log_file: /var/log/salt/master.log
    
        # 分组设置
        nodegroups:
          group_all: '*'
    
        # salt state执行时候的根目录
        file_roots:
          base:
            - /srv/salt/base
    
        # 设置pillar的根目录
        pillar_roots:
          base:
            - /srv/salt/pillar

    六,安装 saltstack-minion
    saltstack-minion  安装:yum install -y salt-minion
    
    1.配置: 修改salt-minion配置文件,指定salt-master地址(注:配置文件内不允许TAB键)
      vim /etc/salt/minion
      添加如下行:
      master: 192.168.56.11
      #id: 
      注:id: hostname 用来指定主机名
    
    
    2.启动
      systemctl restart salt-minion
      systemctl status salt-minion
      systemctl enable salt-minion

    七,在master进行测试
    1.查看minion列表(这时候saltstack-minion是红色的)
    [root@linux-node1 ~]# salt-key -L
    Accepted Keys:
    Denied Keys:
    Unaccepted Keys:
    linux-node2
    Rejected Keys:

    2.认证所有key。当然也可以通过salt-key -a saltstack-minion指定某台minion进行认证key
    
    [root@linux-node1 ~]# salt-key -A      #同意接管-管理所有minion
    The following keys are going to be accepted:
    Unaccepted Keys:
    linux-node2
    Proceed? [n/Y] Y
    Key for minion linux-node2 accepted.

    3. 接着继续查看minion列表(这时候saltstack-minion已经变为绿色,说明key已被添加)
    
    [root@linux-node1 ~]# salt-key -L
    Accepted Keys:
    linux-node2
    Denied Keys:
    Unaccepted Keys:
    Rejected Keys:

    4. 简单测试(客户端salt_ping)
    
    [root@linux-node1 ~]# salt '*' test.ping
    [root@linux-node1 ~]# salt * test.ping
    
    linux-node1.example.com:
        True
    linux-node2:
        True
    
    
    注:salt-master使用命令 salt 'linux-node2' test.ping  
    linux-node2:
        True
    此示例中所有的minion均已经收到了此消息,不过只有linux-node2进行了返回

    salt缓存文件
    目录:/var/cache/salt
    
    cd /var/cache/salt && tree
    
    注:如果minion目标文件改变,重新salt后,master salt状态文件会覆盖minion节点文件,所以日后修改配置只需修改master salt状态文件即可。

    本文转自:https://wuyanteng.github.io/2017/10/14/SaltStack%E9%83%A8%E7%BD%B2for-CentOS7/
  • 相关阅读:
    php函数、php定义数组和数组遍历
    php语句
    php基础
    phpcms 标题设置
    上传头像预览
    简单的轮播样式
    ajax 小练习
    生成地图
    php注释规范
    thinkphp 实现分页
  • 原文地址:https://www.cnblogs.com/fuhai0815/p/9146249.html
Copyright © 2020-2023  润新知