title: Spug部署平台使用
date: 2020-05-21 10:39:00
categories:

  • 工具
    tags:
  • Spug

GitHub

内网地址

主机管理

  1. 新建主机

    1. 只支持ssh账户 + 密码方式登录,一般端口为普通ssh端口22
    2. 点击验证,第一次添加会弹出密码输入框
    3. 主机只需要添加的时候验证一次,以后使用就可以自动登录,无须再次输入密码。
    4. 添加过的主机删除之后,再次重新添加,不需要再输入密码。
  2. 删除主机,删除之前确认该主机下没有定时任务,如果有定时任务存在,删除不成功,需要先去监控中心删除掉监控任务。
  3. Console,免输密码直接登录使用,只可以执行命令,不支持传输文件。

批量执行

执行任务

  1. 批量选择多台主机
  2. 添加要批量执行的命令
  3. 批量执行
  4. 批量执行的命令可以从模板库中选择
  5. 默认使用的用户即为主机列表里配置的用户,默认目录为当前用户的主目录

Spug部署平台使用笔记 - 图1

模板管理

为常用命令制作命令模板,可以批量执行到多台主机上

应用发布

  1. 新建应用,一个应用可以看做一个项目,如管控-仙都-前台

  2. 应用下可以新建发布,一般情况,一个发布对应一个环境,一个环境下只能存在一个发布配置

  3. 新建发布:

    1. 常规发布:一般情况下选这种就行

      1. 基本配置:发布环境(线上正式,业主服务器,测试环境等)

        1. Git仓库地址:这里需要注意,要用ssh方式,而且要改成内网,比如:ssh://git@192.168.0.240/font-guankong/guankongManage.git,先去GitLab把地址复制下来git@git.lishicloud.com:font-guankong/guankongManage.git,前面加上协议ssh://,同时把域名和冒号git.lishicloud.com:换成内网IP和反斜杠192.168.0.240/
        2. 发布审核,如果打开,需要有审核权限的账户在发布申请列表中审核通过,才可以发布。
        3. 结果通知:钉钉、企业微信、WebHook一个原理,常用钉钉需要把钉钉机器人的推送Hook链接配置上,同时,要把钉钉机器人加上IP白名单,注意:要加公司外网IP
      2. 发布主机:

        1. 目标主机部署路径:即需要放置的部署完成需要放置的Nginx目录,如/usr/share/nginx/html/guankongManage
        2. 目标主机仓库路径:目标主机存放备份文件目录,如/vdb1/applications/repos,在ENTRY那台机器上,建议使用该目录。
      3. 任务配置:

        1. 基础设置:

          1. 文件过滤:(过滤掉需要排除的文件,或者指定包含的文件)一行一个,支持正则表达式。如:
            排除文件:

            1. .git
            2. *.log
            1. walle-web.war
            2. walle-web.jar
          2. 自定义全局变量:自定义的全局变量可以在整个打包步骤中使用,

            1. 内置的全局变量:

              1. SPUG_APP_NAME 发布应用的名称
              2. SPUG_APP_ID 发布应用的ID
              3. SPUG_REQUEST_NAME 发布申请单的名称
              4. SPUG_REQUEST_ID 发布申请单ID
              5. SPUG_ENV_ID 发布环境ID
              6. SPUG_ENV_KEY 发布环境的Key
              7. SPUG_VERSION 发布内部版本
              8. SPUG_DEPLOY_ID 发布配置ID(v2.2.3新增)
              9. SPUG_DEPLOY_TYPE 发布类型(”1” 为正常发布,”2” 为回滚)
              10. SPUG_API_TOKEN 访问配置中心获取配置的 API_TOKEN 以下变量仅当在主机执行时有效
              11. SPUG_HOST_ID 当前执行主机的ID(v2.2.3新增)
              12. SPUG_HOST_NAME 当前执行主机的IP/域名(v2.2.3新增)
              13. Spug部署平台使用笔记 - 图2
        2. 检出代码:(这两个部分的shell代码执行在Spug平台所在的打包机器上)

          1. 代码迁出前执行:在进行Git拉取之前的操作,此时所在目录是打包机/tmp目录下
          2. 代码迁出后执行:在进行Git拉取之后的操作,此时所在目录是打包机/data/spug/spug_api/repos/${SPUG_VERSION}目录下
        3. 版本切换:(这两部分的shell代码执行在需要部署的机器上)

          1. 应用发布前执行:此时,代码已经由打包机发送到了部署机上了,此时执行命令所在目录是部署机目标主机仓库路径,在发布配置的时候可以配置,Spug部署平台使用笔记 - 图3,如果配置如图所示,则此时所在目录为/vdb1/applications/repos/${SPUG_VERSION}下。
          2. 应用发布后执行:此时整个发布过程已经成功完成,所在目录为发布配置时的目标主机部署路径,比如/usr/share/nginx/html/project_name
    2. 自定义发布:指定主机,自定义命令,批量执行,自定义程度比较高

      1. 基本配置:同常规发布
      2. 发布主机:选择需要发布的一台或多台主机
      3. 执行动作:本地执行动作,执行在打包机上;目标主机执行动作,执行在部署机上。动作执行从上到下,从打包机部署机
      4. 需要注意的是,如下图所示,自定义执行动作中的目标机执行动作上的执行目录始终是/tmp

Spug部署平台使用笔记 - 图4

任务计划

定时执行shell脚本到指定主机上

  1. 创建任务:新建一个shell脚本或者从模板中选取。
  2. 选择执行对象:选择执行脚本的一台或者多台主机
  3. 设置触发器:

    1. 普通间隔:每隔指定的n秒执行一次
    2. 一次性:在指定时间执行一次。
    3. UNIX Cron:类Unix的操作系统下的基于时间的任务管理约定。
      Spug部署平台使用笔记 - 图5

配置中心

配置中心中的配置信息用途:

  1. 在发布过程中调用API输出配置信息到部署机器的配置文件中
  2. 可以通过API在其他应用中独立获取使用

Spug部署平台使用笔记 - 图6

不能独立的某个配置,只能将配置绑定在应用上,请求某个应用下的所有配置信息

一个应用上可以配置依赖其他应用,可以配置依赖多个配置。

监控中心

  1. 创建任务

    1. 站点监测:可以指定监测一个接口,通过GET 请求指定的url匹配返回的状态码来确定站点是否异常
    2. 端口监测:指定一个端口监测,检测指定目标主机的端口是否可以正常建立接连
    3. 进程监测:指定主机上的进程监测,检测指定目标主机的某个进程是否存活
    4. 自定义脚本:在指定主机上运行自定义的脚本,通过判断返回的退出状态码来确定是否有异常。退出状态码为0,表示
  2. 设置规则

    1. 监控频率: 每隔多长时间检测一次
    2. 报警阈值: 连续指定次数检测失败后才会触发报警,例如:报警阈值设置为3,则表示当出现故障时连续3次检测都为失败的情况才触发报警
    3. 报警联系人组: 报警联系人的集合,可以包含一个或多个报警联系人
    4. 通道沉默: 相同的检测失败时间在通道沉默周期内只触发一次报警,避免过于频繁重复的报警信息。例如:通道沉默设置为5分钟,第一次触发报警后,5分钟内再次触发相同的报警信息则不会发送。
    5. 报警方式 目前支持微信、钉钉和邮件三种报警方式,内置开箱即用的微信和邮件报警服务,需要关注公众号Spug运维 获取调用凭据,将调用凭据配置至系统设置 / 报警服务设置 中的调用凭据中。

      1. 微信报警,需要设置报警联系人的微信Token,获取方式与获取调用凭据相同
      2. 钉钉报警,需要设置报警联系人的钉钉机器人URL,请在钉钉群-安全设置里面添加部署服务器的外网IP
      3. 邮件报警,需要设置报警联系人的邮箱地址

报警中心

  1. 报警记录:查询最近30天内的报警记录。

    超过30天的报警记录会被自动删除,通道沉默期发送的报警信息不会记录。

  1. 报警联系人:

    内置的微信和邮件报警模式需要配置调用凭据,关注公众号Spug运维 获取调用凭据,将调用凭据配置至系统设置 / 报警服务设置 中的调用凭据中即可。
    配置项中的微信Token的获取方式与调用凭据相同。

  1. 报警联系组:联系组即为报警联系人的组合。

系统管理

  1. 账户管理
  2. 角色管理

    1. 新建角色
    2. 功能权限配置:

      1. Spug部署平台使用笔记 - 图7
      2. 功能权限仅影响页面功能,管理发布应用权限请在发布权限中设置。权限更改成功后会强制属于该角色的账户重新登录
    3. 发布权限配置

      1. 管理员admin创建的应用,默认其他用户看不到发布过程,需要在发布权限中给其他角色添加该项目的发布权限
  3. 系统设置:

    1. 报警服务配置:企业微信通知和邮件通知,默认可以用Spug运维公众号的服务,如果自己想搭建邮件服务器,可以使用自己。