V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Recommended Services
Amazon Web Services
LeanCloud
New Relic
ClearDB
ywgx
V2EX  ›  云计算

基于 SaltStack 的运维平台开放下载使用

  •  
  •   ywgx · 2018-08-01 10:40:55 +08:00 · 1512 次点击
    这是一个创建于 2087 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原文 https://xabcloud.com/#/win-win

    3 个独立 VPC 网络 [杭州,北京,美国西部] 数据总览

    部署结构概要说明

    小矩阵的部署结构借鉴一生二二生三三生万物的思想
    XABC 释放出来的源程序作为小矩阵运维管控平台部署源程序
    源程序生成 Central 部署程序, Central 再生成 Login 和 Master 部署程序, Master 再生成 Minion (业务主机)初始化接入程序 init.sh,随着业务展开 Master 的应用分组配置目录/srv/salt/group/下将自动创建各自应用分组目录,各自应用日常配置管理在各自的目录下以SaltStack或者Ansible模版描述应用状态,实现对企业大量主机多个独立网络节点成千上万台主机高效安全运维管控的目的

    需要准备的机器资源

    |机器角色|最小配置|备注| |---|:---:|:---:| |Central|CentOS 7.4 64 位 [1 核 2G 1M 公网带宽]|默认系统盘 40G 左右即可| |Master|CentOS 7.4 64 位 [2 核 2G 1M 公网带宽]|根据生产实践 4 核 8G 的机器可安全管理 1000 台业务主机| |Login|CentOS 7.4 64 位 [1 核 1G 1M 公网带宽]|默认系统盘 40G 左右即可|

    这是一个独立网络节点需要准备的 3 台机器资源,后续扩展管控第二个第三个等网络节点需要再从各自网络节点里出 Master 和 Login 即可( 后续会有扩展网络节点的详细说明 )
    CentOS 7.4 64 位系统镜像,我们在腾讯云,阿里云,AWS 三个云服务商均有部署确认,一般情况只要是 CentOS 7.x 系列机器都可以落地部署

    请确保以上 3 台机器网络通畅,不仅仅是 22,80,443 等默认安全组端口,平台运行还需要其他服务端口,请先确保 3 台机器网络全部通畅,待部署完后,会自动生成本地防火墙,所以先等平台部署完成后,再细化安全组防火墙的配置

    执行部署步骤 1

    请确认 3 台机器到位,并规划好机器角色 Central,Master,Login (各自机器的公网和内网 IP 需要记录好,步骤 2 配置文件需要使用)

    执行部署步骤 2

    获取核心配置文件本地保存 ---> 核心配置文件 ( 文件详情简单如下说明 )

    • /srv/pillar/central.sls 是小矩阵的核心配置文件;初始模版创建 Central 机器环境的时候,将以该文件的定义数据,生成小矩阵平台 Central,Master,Login 三种机器角色各项关键配置

    • 核心配置 RSA 字段有三对 SSH 公私钥数据,你下载到的这份 central.sls 模版其中 ssh key pairs 段是单独为你生成,仅此一份( 每次请求即刻生成,请求完后即刻清理,当然如果不放心,可以根据例子结构,自己本地生成 RSA 段数据,对应替换即可 )

    • 上面是生成的一份模版配置文件需要你手动编辑部分信息:

        MATRIX:
          timezone: Asia/Shanghai
          central: 47.97.179.172  ( 你总控机器的公网 IP )
          domain: 47.97.179.172 ( 平台域名,也可以上面保持一致 )
          admin: [email protected] ( 默认的管理员邮箱 )
          number: 50
          zone:
            - 
              region: hz  ( 网络区域字符串 )
              Login: 47.98.235.72 ( Login 的公网 IP )
              login: 172.16.3.176 ( Login 的内网 IP )
              login_ip: 172.16.3.176 ( Login 的内网 IP )
              master: 172.16.3.175 ( Master 的内网 IP )
              master_ip: 172.16.3.175 ( Master 的内网 IP )
    
        #这是企业微信应用设定,可编辑自己设定,默认的是我们自己的企业微信消息通知
        WeChat:
          id: wxd76cb69de7247ba0
          secret: Zrdq_L0cXkAhFCZImcGVdIANI-PunGmb43lgH9pf7HM
          toparty: 6
          agentid: 9
    

    请确保 central.sls 文件的结构不变,特别是空格字符,所以替换 IP 信息的时候,需要留意

    执行部署步骤 3

    • 部署 Central ,在规划的 Central 机器执行 # curl -s xabc.io/c|sh,等待部署完成结果
    • 部署 Master ,在规划的 Master 机器执行 # curl -s xabc.io/m-xxx.xxx.xx.xx-网络区域|sh (这里面的 xxx.xxx.xx.xx IP 信息等待第一步给出结果)
    • 部署 Login ,在规划的 Login 机器执行 # curl -s xabc.io/l-xxx.xxx.xx.xx-网络区域|sh (这里面的 xxx.xxx.xx.xx IP 信息等待第一步给出结果)
    • 三台机器部署完成后,全部机器重启,不分先后顺序

    !>上面几行指令的简要说明 (细节上可以看具体指令内容) :
    Central 基础软件系统的更新,安装了 OpenResty,Node,Redis,PostgreSQL 以及 Matrix 小矩阵调度系统
    Master 基础软件系统的更新,安装了 Salt-API,Salt-Master,OpenResty,Influxdata 以及 Matrix 小矩阵实时监控模块
    Login 基础软件系统的更新,安装了 Redis 以及 Matrix 小矩阵安全模块

    执行部署步骤 4

    将步骤 2 本地下载编辑好的 central.sls 文件,上传到 Central 机器,依次执行下面几行指令

    # mv ./central.sls /srv/salt/build/CENTRAL/local/files/pillar/
    # cp -a /srv/salt/build/CENTRAL/local/files/pillar/ /srv/
    # salt \* test.version  (确认下 login 和 master 是否被接管,指令下发是否畅通)
    # /srv/salt/build/build.sh (执行环境初始化,回车后即刻在后台执行,一般几分钟就执行完成,等待完成并输出 `done` 字样)
    # reboot
    

    Central 机器重启后,小矩阵平台第一次启动内部将完成平台数据自建和检查,期间还会自动重启一次,大约还需要等待 10 分钟左右后,第一次登录 Web ,选择忘记密码,输入自己的管理员邮箱重置密码,登录平台管理员
    至此小矩阵运维平台部署完成

    总结

    小矩阵运维管控平台基础组件是 SaltStack ,产品对标海外 SaltStack 企业版本,解决企业大量主机多个网络区域的统一运维管控问题

    • 总控 Central 部署小矩阵核心调度控制器,OpenResty,Node,Redis,PostgreSQL,实时监控各个节点 Master 的机器状态信息以及机器上下线接入信息,注册通知,业务报警信息通过企业微信发出
    • 管控 Master 部署 Salt-Master,Salt-API,OpenResty 以及时序数据库 Influxdata,负责管控所在网络区域业务主机,并存储监控数据 ( 默认保存 28 天 )
    • 入口 Login 部署 Redis ,负责存储所在网络区域的机器账号权限信息,这里的数据来自 Central 统一调度写入
    1 条回复    2018-08-01 13:27:59 +08:00
    defunct9
        1
    defunct9  
       2018-08-01 13:27:59 +08:00 via iPhone   ❤️ 1
    在我的好友内,顶下
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3369 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 11:40 · PVG 19:40 · LAX 04:40 · JFK 07:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.