Spug – 轻量级自动化运维平台

Spug – 轻量级自动化运维平台Spug-轻量级自动化运维平台对于中小型企业而言,进行主机和应用的管理是比较麻烦的,应用部署往往需要直接连接服务器,再进行手动的环境配置、代码拉取、应用构建和部署发布等工作,容易出错,且耗时费力。一个好的自动化运维平台,往往能大大节省人力物力,提高开发部署效率。Spug,正是一个面向中小型企业设计的轻量级自动化运维平台。Spug自动化运维平台简介Spug,是openspug在Github上开源的自动化运维平台,项目位于https://github.com/openspug/spug,

大家好,又见面了,我是你们的朋友全栈君。

Spug – 轻量级自动化运维平台

对于中小型企业而言,进行主机和应用的管理是比较麻烦的,应用部署往往需要直接连接服务器,再进行手动的环境配置、代码拉取、应用构建和部署发布等工作,容易出错,且耗时费力。一个好的自动化运维平台,往往能大大节省人力物力,提高开发部署效率。Spug,正是一个面向中小型企业设计的轻量级自动化运维平台。

img

Spug自动化运维平台

简介

Spug,是 openspug 在 Github 上开源的自动化运维平台,项目位于 https://github.com/openspug/spug,同时在 Gitee 上维护,项目位于 https://gitee.com/openspug/spug,目前版本为 v2.3.9。

Spug 面向中小型企业,无 Agent,十分轻量,整合了主机管理、主机批量执行、主机在线终端、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能,使用方便,功能灵活,能够满足一般的应用自动化部署需求。

img

Spug项目

安装

Spug 部署简单,在生产环境中推荐使用 Docker 镜像安装。Spug 提供了在 Docker hub 和阿里云上的镜像,可以直接拉取:

$ docker pull registry.aliyuncs.com/openspug/spug

镜像下载完成后,直接运行,构建容器并启动:

$ docker run -d --restart=always --name=spug -p 80:80 registry.aliyuncs.com/openspug/spug

默认使用镜像内部的 MySQL 数据库,如果有数据持久化的需求,可以进行数据映射:

$ docker run -d --restart=always --name=spug -p 80:80 -v mydata/:/data registry.aliyuncs.com/openspug/spug

然后,创建管理员帐号:

$ docker exec spug init_spug <username> <password>
$ docker restart spug

此时,服务已经部署完成,访问 http://localhost:80 即可访问。

Spug 依赖于 Python 3.6+, Node.js 12.14+, Redis 3+,可以进行二次开发和部署。首先下载项目代码:

$ git clone https://github.com/openspug/spug data/spug

然后,创建 Python 运行环境:

$ cd data/spug/spug_api
$ python3 -m venv venv$ source venv/bin/activate$ pip install -r requirements.txt -i https://pypi.doubanio.com/simple/

初始化数据库,默认使用 SQLite,并创建管理员帐号:

$ python manage.py initdb
$ python manage.py useradd -u admin -p spug.dev -s -n 管理员

启动后端 API 服务:

$ python manage.py runserver

前端使用 React 的 Antd 开发,安装依赖后启动:

$ cd /data/spug/spug_web
$ npm install --registry=https://registry.npm.taobao.org
$ npm start

此时,就完成了开发环境的手动部署。

示例

部署完成后,Spug 主要在 Web 后台进行使用。Spug 后台主要包括:工作台、主机管理、批量执行、应用发布、任务计划、配置中心、监控中心、报警中心和系统管理模块。

主机,代表着应用最终部署的服务器,通过 SSH 公钥的方式,与 Spug 服务进行交互。Spug 后台可以进行主机的添加和配置,并可以批量执行命令,方便进行环境配置等:

img

主机批量执行

后台提供了在线终端,可以交互式地在主机上执行命令,同时支持文件上传下载,通过图形化的界面进行文件管理。

Spug 通过应用来进行部署的基本管理。一个应用,是一个需要部署的应用或服务的不同版本的集合:

img

应用管理

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

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

img

自动化部署脚本

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

Spug 还支持计划任务,可以配置定时的脚本任务,实现服务状态检查等工作:

img

计划任务

Spug 提供了监控中心,可以创建监控任务,对应用状态进行定时检测,如对端口进行定时的开放检测,对站点进行定时的连通检测等:

img

监控中心

当检测到异常时,系统会自动发出警报,并通过邮件、微信、钉钉等发送。

Spug 后台还可以进行功能权限设置,可以进行团队内部不同职责人员的权限管理:

img

角色权限

总结

Spug 作为一个自动化运维平台,相对而言比较轻量,无需复杂的配置,就可以完成服务的部署,并通过简单的应用管理和发布申请,完成不同部署项目的版本管理,实现自动化的发布流程,以及版本回滚等,并提供了批量化的脚本支持多主机配置,提供定时任务实现状态检测,提供自动的警报系统实现异常管理等,基本满足了自动化部署的需求,值得尝试使用。目前,Spug 项目仍处于积极开发阶段,项目作者正征集想要支持的新特性,有兴趣的开发者不妨参与开源贡献。

参考

《面对中小企业的开源运维平台spug》https://www.modb.pro/db/109404

《一款适合中小企业的轻量自动化运维平台 Spug》https://www.modb.pro/db/109403

《自动化运维平台Spug测试》https://www.modb.pro/db/109402

《无Agent自动化运维平台-spug》https://www.modb.pro/db/109401

《Docker 部署Spug轻量级自动化运维平台》https://www.modb.pro/db/109405

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145604.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • hexo博客搭建及主题优化(二)

    hexo博客搭建及主题优化(二)crystalBlog上篇hexo博客搭建及主题优化(一)主题优化二21.网站log设置主题目录下的_config.yml配置文件中:#配置网站favicon和网站LOGO##本地#favicon:/favicon.png#logo:/medias/logo.png#此处我用的CDN,也可以使用本地文件favicon:https://cdn.jsdelivr.net/gh/guixinchn/image/blog/favicon.pnglogo:https://cdn

    2022年9月20日
  • FlashFXP v3.5.4注册码+FlashFXP v3.6.0注册码+FlashFXP v3.7.2.build.1266注册码[通俗易懂]

    FlashFXP v3.5.4注册码+FlashFXP v3.6.0注册码+FlashFXP v3.7.2.build.1266注册码[通俗易懂]FlashFXP是功能强大的FXP/FTP软件,融合了一些其他优秀FTP软件的优点,如像CuteFTP一样可以比较文件夹,支持彩色文字显示;像BpFTP支持多文件夹选择文件,能够缓存文件夹;像LeapFTP一样的外观界面,甚至设计思路也差相仿佛。支持文件夹(带子文件夹)的文件传送、删除;支持上传、下载及第三方文件续传;可以跳过指定的文件类型,只传送需要的文件;可以自定义不同

    2022年7月26日
  • 单点登录原理与简单实现(单点登录原理)

    GitHub:https://github.com/sheefee/simple-sso一、单系统登录机制1、http无状态协议  web应用采用browser/server架构,http作为通信协议。http是无状态协议,浏览器的每一次请求,服务器会独立处理,不与之前或之后的请求产生关联,这个过程用下图说明,三次请求/响应对之间没有任何联系  但这也同时意味着,任何用户都能通…

    2022年4月14日
  • Java Web显示用户上次访问时间(实例一)

    Java Web显示用户上次访问时间(实例一)**利用Cookie技术实现显示用户上次访问的功能**importjava.io.IOException;importjava.text.SimpleDateFormat;importjava.util.Date;importjavax.servlet.ServletException;importjavax.servlet.http.C…

    2022年7月8日
  • web面试题及答案_前端html面试题

    web面试题及答案_前端html面试题阅读目录html/cssjavascriptes6vuereactjQuerywebpack、gulp、gruntnodehttpweb安全前端性能浏览器算法相关设计模式正则表达式职业规划参考资料html/css行内元素和块级元素举几个例子?行内元素:span,a,var,em,input,img,img,textarea,var,em,s……

    2022年8月29日
  • 三菱modbusRTU通讯设置表_modbus通讯实例

    三菱modbusRTU通讯设置表_modbus通讯实例点击箭头处“工业之家”,选择“关注公众号”!三菱PLC接线图干货此次主要描述的是关于三菱FX5U模块硬件的接线实例,主要有以下几个方面:电源AC、DC接线、输入输出接线、模拟量接线。不同原理不同的接线方式,现在来给大伙仔细讲解分享!AC电源接线例:漏型输入[-公共端]时的电源接线例源型输入[+公共端]时的电源接线例使用FX5-1PSU-5V时的外部接线例(漏型输入[-公共端])…

    2022年9月10日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号