首页/新闻资讯/正文详情

Spug 开源自动化运维平台技术指南:从功能架构到 Docker 一键部署实战

发布时间:2026/9/23 14:01:11 来源:云帆数科 栏目:资讯中心
Spug 开源自动化运维平台技术指南:从功能架构到 Docker 一键部署实战
Spug 开源自动化运维平台技术指南从功能架构到 Docker 一键部署实战【免费下载链接】spugSpug is a lightweight agent-free automatic operation and maintenance platform designed for small and medium-sized enterprises. It integrates host management, host batch execution, host online terminal, file management, application release and deployment, pipelines, online task planning, configuration center, monitoring, alarm and so on.项目地址: https://gitcode.com/gh_mirrors/sp/spugSpug 是一个面向中小型企业设计的轻量级、无 Agent 的自动化运维平台本指南以项目根目录 README.md 为纲领结合 spug_api 后端源码与 docs/docker 部署资源系统梳理其功能矩阵、技术栈、进程架构与安装部署方式帮助读者快速掌握该平台的选型依据与落地路径。Spug 是什么面向中小企业的无 Agent 运维平台SpugSpug is a lightweight agent-free automatic operation and maintenance platform的核心设计理念是无 Agent不需要在被管理主机上安装任何客户端仅依赖 SSH/密码或密钥即可完成远程操作这大幅降低了大规模接入主机的部署成本与维护负担。其功能覆盖面相当完整官方将其定位为整合了主机管理、主机批量执行、主机在线终端、文件管理、应用发布部署、流水线、在线任务计划、配置中心、监控、报警等一系列功能的一体化平台。从仓库目录结构可以印证这一功能矩阵spug_api/apps 下按领域拆分了host主机、exec批量执行、deploy发布部署、pipeline流水线、schedule任务计划、config配置中心、monitor监控、alarm报警、notify通知、credential凭据、account账户权限等 16 个 Django App后端架构与功能清单一一对应。核心特性清单结合 README.md 与源码实现Spug 具备以下核心能力功能域能力说明对应后端模块主机管理分组管理、云厂商/Excel 批量导入、批量连通性验证spug_api/apps/host批量执行主机命令在线批量执行支持参数化命令、执行模板与执行历史spug_api/apps/exec在线终端浏览器内直接登录主机终端spug_api/consumerWebSocket文件管理主机文件在线上传与下载spug_api/apps/file文件分发文件/目录从一台主机分发到多台主机spug_api/apps/exectransfer构建部署自定义构建部署支持发布审核、灰度发布与回滚spug_api/apps/deploy流水线将参数化、构建、执行命令、数据传输、数据上传、通知等节点编排为流程支持条件分支与实时控制台spug_api/apps/pipeline任务计划在线配置 Crontab、间隔等任务计划spug_api/apps/schedule配置中心KV、文本、JSON 等格式在线配置spug_api/apps/config监控中心站点、端口、进程、Ping、自定义脚本等监控spug_api/apps/monitor报警中心邮件、微信、钉钉、企业微信、飞书等报警方式spug_api/apps/alarm凭据管理集中管理密码与密钥供主机复用spug_api/apps/credential权限控制细粒度角色权限支持 LDAP 登录与 MFA 认证spug_api/apps/account、libs/ldap.py此外前端 UI 基于 Ant Design界面支持简体中文与英文双语切换docs/i18n.md 记录了国际化接入方式前后端代码完全开源。技术栈与环境要求README.md 明确给出了平台运行的技术环境且与仓库内的 requirements.txt、settings.py 完全一致组件版本要求仓库依据Python3.8Django 4.2 的最低要求docs/install.sh 的 Python 探测逻辑Django4.2Django 4.2.0, 4.3.0requirements.txtNode.js18spug_web/package.jsonReact16.13spug_web/package.jsonRedis5.0docs/docker/redis.conf后端关键依赖还包括paramikoSSH 连接、channelsdaphneWebSocket 实时控制台、apscheduler任务调度、GitPython构建发布时的 Git 操作、python-ldapLDAP 登录、mysqlclientMySQL 驱动、openpyxlExcel 导入主机等完整清单见 requirements.txt。值得注意的两点架构事实源自 settings.pyRedis 是硬依赖不仅作为缓存发布/构建/流水线的实时控制台输出都通过django_redis的get_redis_connection()写入 Redis List 再经 WebSocket 流式推送CHANNEL_LAYERS也使用channels_redis作为 channel layerprefix: spug:channelcapacity 1000expiry 120 秒。多进程协作模型平台通过TOKEN_TTL 8 * 3600登录令牌 8 小时有效以及SCHEDULE_KEY、MONITOR_KEY、EXEC_WORKER_KEY等一批 Redis Key 来协调 API 进程、Worker 进程、监控进程与调度进程之间的任务分发。安装部署两种官方路径路径一Docker Compose 快速部署推荐仓库在 docs/docker/docker-compose.yml 提供了完整编排包含两个服务dbMariaDB 10.8 容器创建spug数据库与spug用户默认密码spug.cc可通过环境变量修改数据持久化到宿主机/data/spug/mysqlspugopenspug/spug-service:4.0镜像映射80:80挂载/data/spug/service与/data/spug/repos两个数据卷。关键参数说明spug: image: openspug/spug-service:4.0 privileged: true # 需要特权模式以支持挂载 sshfs 等 environment: - SPUG_DOCKER_VERSIONv4.0.1 # git 标签容器首次启动时据此拉取代码 - MYSQL_DATABASEspug - MYSQL_USERspug - MYSQL_PASSWORDspug.cc - MYSQL_HOSTdb - MYSQL_PORT3306镜像中只预装运行环境Python/Django 4.2 等具体代码版本由SPUG_DOCKER_VERSION决定——容器首次启动时执行 entrypoint.sh按该标签从 git 拉取后端代码并下载配套的同名前端产物web_${SPUG_DOCKER_VERSION}.tar.gz。因此该变量必须与 CDN 上的前端包配套且 4.0 镜像预装 Django 4.2 / channels 4只能运行 4.x 代码不能用于 3.x 版本。若宿主机 80 端口被占用可将端口映射改为如8000:80。容器内部由 spug.inisupervisor 主配置拉起 5 个常驻进程日志分别输出到spug_api/logs/下的api.log、ws.log、worker.log、monitor.log、scheduler.log进程启动脚本职责nginxnginx -g daemon off;静态资源与/api反向代理redisredis-server /etc/redis.conf缓存与实时通道maxmemory 2GB仅监听 127.0.0.1spug-apistart-api.shDjango APIgunicorn监听 9001spug-wsstart-ws.shWebSocket 服务daphne监听 9002spug-workerstart-worker.sh异步任务执行发布、构建、批量执行spug-monitorstart-monitor.sh监控探测循环spug-schedulerstart-scheduler.sh任务计划调度循环Nginx 配置 中两个关键路由规则location ^~ /api/反代到 9001 端口的 gunicornproxy_read_timeout 180s支撑长时间请求location ^~ /api/ws/反代到 9002 端口的 daphne设置Upgrade/Connection头以支持 WebSocket 长连接在线终端、执行控制台依赖此通道。路径二Linux 一键安装脚本仓库还提供了 docs/install.sh 裸机部署脚本适用于 Debian/Ubuntu 与 RHEL 系CentOS Stream / Rocky / AlmaLinux / Fedora要求 root 权限、Python 3.8 与可访问外网。可用环境变量覆盖默认值SPUG_VERSIONv4.0.1 # 代码版本须与 CDN 前端包配套 ADMIN_USERadmin # 初始管理员用户名 ADMIN_PASSWORDspug.cc # 初始管理员密码 DB_PASSWORDspug.cc # 数据库密码 PIP_INDEX... # pip 镜像源默认清华源脚本流程为检测系统发行版并安装系统依赖MariaDB、nginx、redis、supervisor、rsync、sshfs、iputils-ping 等→ 寻找 3.8 的 Python → clone 代码并下载前端产物 → 生成spug/overrides.py覆盖配置DEBUGFalse、随机SECRET_KEY、MySQL 连接信息→ 初始化数据库与管理员 → 启动各服务。其中python manage.py updatedb完成建表python manage.py user add -u admin -p ... -s -n 管理员创建初始管理员-s为超级管理员。配置覆盖机制两种安装方式都依赖 Django 的overrides.py覆盖机制settings.py 末尾通过from spug.overrides import *加载用户自定义配置覆盖默认的 DEBUG、SECRET_KEY、DATABASES 等。手动部署时数据库使用 utf8mb4 字符集与STRICT_TRANS_TABLESSQL 模式Docker 方式下数据库连接参数则从MYSQL_*环境变量读取见 entrypoint.sh。六大核心功能模块速览主机管理与在线操作主机支持分组管理、从云厂商或 Excel 批量导入并可批量验证连通性。底层通过 spug_api/apps/host 与 libs/ssh.py基于 paramiko实现 SSH 连接凭据统一托管于credential模块。批量执行支持参数化命令与可复用模板执行历史可回溯在线终端与文件上传下载分别通过 WebSocketconsumer与文件接口apps/file实现。构建发布与流水线应用发布支持自定义构建依赖 libs/gitlib.py 的 Git 操作与 apps/deploy 的 ext1/ext2 两套发布扩展并提供发布审核、灰度发布与回滚能力。流水线则把构建、远程命令、数据传输、数据上传、钉钉/飞书/企业微信/推送助手通知等节点编排为可视化流程支持条件分支实时控制台经 Redis WebSocket 推送执行输出核心实现见 apps/pipeline。任务计划、配置中心与监控报警任务计划支持 Crontab 与固定间隔两种调度方式由 apps/schedule 基于 apscheduler 驱动另有runscheduler.py常驻命令配置中心支持 KV、文本、JSON 等格式的在线配置与变更记录apps/config监控中心覆盖站点、端口、进程、Ping、自定义脚本等探测类型apps/monitor配合 apps/alarm 通过邮件、微信、钉钉、企业微信、飞书等渠道报警Ping 探测依赖镜像内置的iputils-ping见 Dockerfile。界面预览平台核心界面如下英文版界面截图来自 docs/img/4.0/en对应中文界面见 docs/img/4.0/zh许可与开源声明Spug 遵循 AGPL-3.0 协议开源前后端代码全部开放可自由部署与二次开发。更多使用细节可参考仓库内文档FAQ、国际化说明 与 Docker 部署资源目录 docs/docker。【免费下载链接】spugSpug is a lightweight agent-free automatic operation and maintenance platform designed for small and medium-sized enterprises. It integrates host management, host batch execution, host online terminal, file management, application release and deployment, pipelines, online task planning, configuration center, monitoring, alarm and so on.项目地址: https://gitcode.com/gh_mirrors/sp/spug创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

Mbistarchitect:RTL级嵌入式存储器BIST架构设计与集成
Mbistarchitect:RTL级嵌入式存储器BIST架构设计与集成

简介:本资源是一份面向数字电路验证工程师与IC测试初学者的Mentor MBIST工具系统性学习总结,聚焦于内置自测试(BIST)在嵌入式存储器(如SRAM、ROM)故障检测中的工程实践。内容覆盖MBIST添加必要性、存储器类… · 2026/9/23 14:01:11

Win下VSCode+CMake+Ninja配置C++/Qt开发指南:用TaoToken统一Key打通AI补全与构建链路
Win下VSCode+CMake+Ninja配置C++/Qt开发指南:用TaoToken统一Key打通AI补全与构建链路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/23 14:01:11

武成王庙图解原理:3步搞定项目搭建与薪资避坑
武成王庙图解原理:3步搞定项目搭建与薪资避坑

武成王庙图解原理:3步搞定项目搭建与薪资避坑 学会语法却不知怎么搭项目,这是很多开发者的通病。很多人背熟了API,一到实战就懵圈,连个目录结构都理不清。今天咱们聊聊 武成王庙 这个高频面试词背后的 图解原理 ,用实战拆解帮你打通任督二脉。… · 2026/9/23 14:01:05

VMD+排列熵+ELM:小样本轴承故障诊断实战
VMD+排列熵+ELM:小样本轴承故障诊断实战

简介:这份资源面向机械故障诊断方向的研究生、工程师及算法初学者,提供一套基于VMD排列熵与ELM的滚动轴承故障诊断Python实现方案,帮助读者快速搭建从振动信号分解、特征提取到状态分类的完整流程。压缩包共407个文件,以404个txt振… · 2026/9/23 14:49:03

qq1011手写实现:解决版本升级API全变痛点
qq1011手写实现:解决版本升级API全变痛点

qq1011手写实现:解决版本升级API全变痛点 版本升级后 API 全变了,旧代码直接报错?别急着骂娘,这坑我踩过无数次。 很多开发者遇到这种场景,第一反应是去查新文档,改半天参数,结果发现核心逻辑完全重构。这时候, 手写实现… · 2026/9/23 14:49:03

Apache Arrow C++ 内存管理实战指南:Buffer、MemoryPool、Device 与 Linux 内存剖析
Apache Arrow C++ 内存管理实战指南:Buffer、MemoryPool、Device 与 Linux 内存剖析

Apache Arrow C 内存管理实战指南:Buffer、MemoryPool、Device 与 Linux 内存剖析 【免费下载链接】arrow Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing 项目地址: https://gitcode.com/gh_mirrors/arro… · 2026/9/23 14:49:03

react-styleguidist 组件示例文档(Readme.md)编写完全指南:从 Markdown 到交互式 Playground
react-styleguidist 组件示例文档(Readme.md)编写完全指南:从 Markdown 到交互式 Playground

react-styleguidist 组件示例文档(Readme.md)编写完全指南:从 Markdown 到交互式 Playground 【免费下载链接】react-styleguidist Isolated React component development environment with a living style guide 项目地址: https://gitcod… · 2026/9/23 14:48:56

基于PyTorch的猫狗识别:CNN、ResNet与Swin Transformer完整项目实战
基于PyTorch的猫狗识别:CNN、ResNet与Swin Transformer完整项目实战

简介:面向机器学习与深度学习初学者、高校课程设计与毕业设计学生,提供基于Python和PyTorch的完整猫狗识别分类项目源码,涵盖CNN、ResNet、Swin Transformer等模型实现,以及数据读取、训练、测试等脚本,可帮助快速掌握… · 2026/9/23 14:48:56

SSM健身房管理系统实战:从数据库设计到核心代码完整解析
SSM健身房管理系统实战:从数据库设计到核心代码完整解析

简介:基于SSM框架的健身房管理系统设计与实现资源,面向Java开发者、高校毕设学生及健身房信息化项目人员,帮助解决会员办理、课程管理、教练安排、私教报名、上课记录、缴费统计等业务的高效管理问题。系统分为管理员与会员两大模块&#xff… · 2026/9/23 14:48:56

3招搞定手机怎么下载微信面试难题实战项目解析
3招搞定手机怎么下载微信面试难题实战项目解析

3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型

你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧
Win7无线热点配置工具源码解析:解决API失效的3个实战技巧

Win7无线热点配置工具源码解析:解决API失效的3个实战技巧 Win7无线热点配置工具在Win10/11上跑不动?不是你的问题,是版本升级后 API 全变了。很多老项目里的 netsh wlan… · 2026/9/23 0:00:36

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码