Docker 部署Spug轻量级自动化运维平台

0x01 什么是spug?

Spug是面向中小型企业设计的轻量级无Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。

0x02 部署安装

Spug部署很简单,在Docker中部署,基本也就是一行docker 命令而已,生产环境推荐使用docker部署

#首先在/目录下创建data/spug目录
mkdir -p /data/spug
#从阿里云拉取spug镜像后台运行,挂载容器内data目录到本地/data/spug目录实现数据持久化
docker run -d --restart=always --name=spug -p 80:80 -v /data/spug:/data registry.aliyuncs.com/openspug/spug
#新建管理员帐号admin密码passwd1!
docker exec spug init_spug admin passwd1!
#重新启动容器spug
docker restart spug

至此,spug已部署完成,可通过浏览器进入http://localhost 进入后台,使用刚新建的admin帐号密码登录

0x03 登录使用

登录进入后台,进入页面如下

初始使用,首先需要添加主机,点击'主机管理'--'新建'

新建主机,添加主机类别,输入主机名称,ssh连接信息等

此处,如主机配置为密钥登录,可上传密钥到spug,如没有输入完用户名,ip后直接验证,会提示输入密码

添加完成后,即可通过spug console执行登录终端操作,以及图形化上传文件等

依次添加完成主机之后,可通过spug批量执行密令

可以通过定制模版,直接从模版中选择脚本或命令行执行,也可直接通过手动输入命令执行

执行如下

0x04 配置报警

首先进入报警中心,新建报警联系人与联系组

微信Token可通过关注spug公众号,点击--我的 即可出现

钉钉与企业微信机器人可通过查找相关官方开发文档接入,因未使用企业微信与钉钉,未做演示

然后再新建报警联系组,将刚新建的用户加入到组里

接下来就需要创建监控项,点击监控中心,添加监控任务

可按自己需求添加,包括站点检测[检测http或https状态码],端口检测,进程检测,ping连通性检测,以及自定义脚本

下一步之前,可以先执行测试一下

点击下一步

监控频率,报警阈值可按自己实际生产需求设定,报警方式勾选,此处只做了微信的报警,勾选微信,然后提交

查看报警效果

手动将服务停止后,监控中心显示服务异常,随后触发微信报警

微信报警页面,服务正常恢复的时候,同样会有恢复通知告警

0x05 任务计划

可通过spug 对多主机批量定制执行任务计划

触发器类型可实际需求选择,支持unix cron计划

0x06 应用发布等功能

当需要部署应用时,需要进行发布申请,对于目标应用,选择发布环境,以及 Git 仓库的版本(分支,或标签),和需要发布的目标主机等,提交一个新的发布。

Spug 提供了不同阶段的自定义脚本,来实现自动化部署

  1. 代码检出前执行,是在 Spug 服务器上,在拉取代码前,进行环境配置等工作;
  2. 代码检出后执行,是在拉取代码后,进行依赖安装、编译和构建等工作;
  3. 应用发布前执行,是在目标主机上,进行旧应用的停止、运行环境配置等工作;
  4. 应用发布后执行,是在把项目发布到目标主机后,进行应用的启动等。

其他功能待深度体验后,再进行分享,有兴趣的可以在gayhub搜索项目了解..

0x07 总结

总的来说,Spug 作为一个自动化运维平台,相对而言比较轻量,无需复杂的配置,就可以完成服务的部署,并通过简单的应用管理和发布申请,完成不同部署项目的版本管理,实现自动化的发布流程,以及版本回滚等,并提供了批量化的脚本支持多主机配置,提供定时任务实现状态检测,提供自动的警报系统实现异常管理等,基本满足了自动化部署的需求,值得尝试使用。

相关推荐
python ERROR: Command errored out with exit status 1:
Windows Server 2016 搭建 SMB 共享文件
Windows Server 2019 域环境搭建 SMB 共享文件服务
Parallels Desktop 15.1.3