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

article/2025/9/28 4:55:32

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


http://chatgpt.dhexx.cn/article/4H9kZuMK.shtml

相关文章

网络自动化运维(NetDevOps)创作者推荐

前言&#xff1a; 随着NetDevOps技术登上了历史舞台&#xff0c;越来越多的从业者开始利用NetDevOps简化网络的运维&#xff0c;并进行了技术分享&#xff0c;将蛋糕越做越大。在这里&#xff0c;仅代表个人对这些无私奉献的网络、运维工程师们表达由衷的敬意。 此外&#xff…

开源自动化运维平台Spug

开源自动化运维平台Spug Spug演示环境特性安装Docker安装安装步骤1. 安装docker2. 拉取镜像3. 启动容器4. 初始化5. 访问测试6. 版本升级 Spug Spug是面向中小型企业设计的轻量级无Agent的自动化运维平台&#xff0c;整合了主机管理、主机批量执行、主机在线终端、应用发布部署…

自动化运维工具

自动化运维 通过运维工具或平台&#xff0c;实现IT基础设施及业务应用日常任务处理和运维流程的自动化&#xff0c;从而提高效率和降低风险&#xff0c;促进运维组织的成熟和各种能力的升级。 自动化运维工具 部署类&#xff1a;jenkins 环境类&#xff1a;ansible/saltStac…

关于自动化运维的那些事儿

随着近年全球运维大会的火热举办&#xff0c;自动化运维话题被推向了前所未有地热度。自动化运维并不是炒作的概念&#xff0c;而是随着信息技术发展的必要趋势。“大数据”“容器”“DevOps”“微服务”……&#xff0c;不断涌现出新的技术&#xff0c;而它们都有共同的特点&a…

部署自动化运维工具rundeck

简单介绍&#xff1a; RunDeck 是用 Java/Grails 写的开源工具&#xff0c;帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或者 web 界面&#xff0c;用户可以对任意数量的服务器进行操作&#xff0c;大大降低了对服务器自动化的门槛。 官网地址&#xff1a…

python自动化运维学习

1.python能做什么&#xff1f; 2.解释型与编译型语言的区别&#xff1f; 3.动态型与静态型语言的区别&#xff1f; 4.ASCLL Unicode GBK UTF-8之间的联系 ASCLL码是最初被创建出来表示字符的&#xff0c;总共255个。每个占1字节---》字符不够用---》单独的中文编码GBK&#xff…

一站式自动化运维及自动化部署平台

真正的大师,永远都怀着一颗学徒的心&#xff01; 一、项目简介 一站式自动化运维及自动化部署平台 二、实现功能 支持机器管理&#xff08;环境变量、机器秘钥、终端日志、终端会话、机器代理&#xff09; 支持调度任务 支持执行管理 支持应用管理 支持构建发布 支持用户…

IT运维之自动化运维

大家好&#xff0c;我是技福的小咖老师。 今天咱们来简单讲讲自动化运维的话题。 现在随着IT运维管理工作的复杂度和难度的大大增加&#xff0c;过去仅靠几个专门的运维人员或是“技术大拿”来包打天下已经行不通了&#xff0c;企业开始需要运用专业化、标准化和流程化的手段来…

自动化运维与普通运维有什么区别?

本文首发于知乎&#xff0c;由嘉为蓝鲸原创。 商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。 01. 何为自动化运维&普通运维&#xff1f; 在了解两者的区别前&#xff0c;我们得先明确对二者的定义&#xff0c;总的来说运维工作的目的都是为了保障企业业…

自动化运维平台Spug介绍

一、概要 Spug是一款使用PythonFlaskVueElement组件开发的开源运维管理系统,系统前后端分离&#xff0c;项目创建于2017年&#xff0c;2018 年 2 月第一个开源运维平台版本发布&#xff0c;设计为面向中小型企业设计的轻量级无Agent的自动化运维平台&#xff0c;UI基于Ant Desi…

Django 实现自动化运维后台

layui 框架与BootCSS框架相似都属于前端美化框架&#xff0c;区别在于BootCSS更加专业&#xff0c;而LayUI则更多的是面向于后端开发者&#xff0c;所以在组织形式上毅然采用了几年前的以浏览器为宿主的类 AMD 模块管理方式&#xff0c;却又并非受限于 CommonJS 的那些条条框框…

Linux自动化运维工具ansible详解

文章目录 认识ansibleansible的组成ansible的相关文件ansible的使用ansible的常用模块1、copy模块2、fetch模块3、command模块4、shell 模块5、file模块6、cron模块7、yum模块8、service模块9、script模块 认识ansible ansible是一个自动化运维工具的名称&#xff0c;集合了众…

如何实现网络自动化运维?

众所周知&#xff0c;网络是多个设备之间共享信息的连接。如今&#xff0c;手动管理连接到网络的每个设备会是一项重大的挑战&#xff0c;但是IT管理员可以通过网络自动化软件的功能的帮助来克服这一挑战&#xff0c;从而大大减少工作量和人为错误的可能。 网络编排是一种策略驱…

IT自动化运维平台建设解决方案

u当前IT运维的整体发展趋势是向自动化迭代&#xff0c;并向智能化演化&#xff1b; u目前大部分组织的IT运维正处在从人工运维向自动化运维的发展阶段&#xff1b; u有部分组织已经基本实现了自动化运维&#xff0c;正在向智能化运维升级&#xff0c;而也已有少量企业已经构建了…

Ansible 自动化运维

一、 Ansible&#xff1a;开源的运维自动化工具&#xff0c;可以提高运维工程师的效率&#xff0c;减少人为失误。操作简单&#xff0c;功能丰富。 特点&#xff1a;1&#xff09;基于python开发&#xff0c;易于二次开发 2&#xff09;丰富的内置模块&#xff0c;基本可以满足…

运维思索:自动化运维体系如何入手

需求 运维是事件驱动&#xff0c;还是自驱动可能是我们在运维工作中不太关注的问题。事件驱动让运维止步于故障&#xff0c;而自驱动让运维不止于建设。持续性的运维建设就需要一套自动化的运维体系&#xff0c;那么我们应该从何入手&#xff1f; 其实前期《运维思考》一系列…

自动化运维了解

背景 公司的服务器越来越多, 维护一些简单的事情都会变得很繁琐。用shell脚本来管理少量服务器效率还行, 服务器多了之后, shell脚本无法实现高效率运维。这种情况下&#xff0c;我们需要引入**自动化运维**工具, 对多台服务器实现高效运维。 需求 通过管理服务器能够按照需求灵…

做好自动化运维平台必备技能

万丈高楼平地起&#xff0c;高楼稳不稳取决于地基是否扎实。基础数据便是运维管理这座高楼的地基。 首先介绍一下我们在运维管理中所涉及到的基础数据有哪一些。请看下图&#xff1a; 基础数据大致分为CMDB、日志、生产DB、知识库四个模块。 一、基础数据概况 CMDB中文是配置管…

什么是自动化运维,目前的普及状况?

感觉随着近年全球运维大会的火热举办&#xff0c;自动化运维话题逐渐被推向了前所未有地热度&#xff0c;很多人都觉得这是炒作的概念&#xff0c;其实不然&#xff0c;它是随着信息技术发展的必然趋势&#xff0c;下面和大家细聊。 随着IT技术的发展&#xff0c;“大数据”、…

超全!常见自动化运维工具全解析(含ansible、Puppet、SaltStack教程)

在IT行业运维一直是重复性工作较多的重灾区&#xff0c;而通过自动化运维工具不仅可以让工作更加轻松还减少了人为失误。 实现自动化运维就是将复杂的事情简单化、标准化、流程化&#xff0c;通过工具重复性、周期性的实现。例如应用系统维护自动化&#xff0c;巡检自动化和故障…