当前位置: 首页 > news >正文

基于群辉 + Docker + Flask 搭建企业内部自动化服务平台

记录一次使用群辉 NAS 搭建企业内部自动化服务平台的实践,包括 Docker 容器部署、自动更新、远程访问以及局域网设备调度。

前言

随着团队内部自动化需求越来越多,需要一个统一的平台来管理各种自动化流程。相比购买云服务器,群辉 NAS 具有成本低、易维护、存储能力强等优势,因此最终选择以群辉作为服务中心,结合 Docker 与 Flask 搭建整个自动化平台。


一、整体架构

整个系统主要分为四部分:

  • 主服务:负责业务接口、定时任务、自动化调度。
  • 群辉副服务:负责调用群辉系统能力。
  • 自动部署服务:监听代码更新并自动部署。
  • 局域网设备:运行自动化程序,由主服务统一调度。
开发机 │ Git Push │ 自动部署 │ Docker │ Flask 主服务 ├────────────┐ │ │ 副服务 局域网设备

二、主服务设计

主服务是整个系统的核心,基于 Flask 开发,对外统一提供 HTTP API。

除了业务接口之外,还承担了整个自动化平台的调度职责。

1、统一接口管理

所有业务能力均通过接口提供,例如:

  • 创建自动化任务
  • 查询任务执行状态
  • 获取设备列表
  • 调度局域网设备
  • 获取执行结果

统一接口能够降低模块之间的耦合,后续新增功能时也更加方便。

2、定时任务

除了响应外部请求之外,主服务还维护了一系列定时任务,例如:

  • 定时同步业务数据;
  • 定时扫描指定目录;
  • 定时检测局域网设备是否在线;
  • 定时触发自动化流程。

相比依赖操作系统计划任务,统一放在服务端管理更加直观,也方便维护。

3、自动化调度

当收到业务请求后,主服务会根据当前设备状态选择可用设备,并发送执行指令。

整个流程如下:

收到请求 │ 创建任务 │ 查找可用设备 │ 发送执行命令 │ 等待执行完成 │ 返回执行结果

这样后续新增自动化程序时,仅需增加新的接口即可,不需要修改整体架构。


三、副服务设计

由于部分群辉能力无法直接在 Docker 容器中调用,因此额外部署了一个副服务。

副服务主要负责:

  • 文件操作;
  • 共享目录管理;
  • 与群辉系统交互。

主服务只需要调用对应接口即可,无需关心底层实现,从而降低系统耦合。


四、自动部署

为了减少人工部署,采用 Git 推送触发自动部署。

部署脚本主要完成以下工作:

  • 防止重复部署;
  • 拉取最新代码;
  • 检查 requirements.txt 是否变化;
  • 必要时重新构建 Docker 镜像;
  • 停止旧容器并启动新容器;
  • 清理无用镜像。

通过比较 requirements 文件哈希值,仅在依赖发生变化时重新构建镜像,能够有效缩短部署时间。


五、内外网访问

内网访问

局域网内设备可直接访问部署在群辉上的 Flask 服务。

所有自动化设备均通过内网与主服务通信,速度快且稳定。

外网访问

由于服务部署在企业内网,外部网络默认无法直接访问,因此需要借助远程访问工具。

目前主要有两种方案:

方案一:DDNS

如果拥有公网 IP,可以通过 DDNS 配置远程访问。

这种方式访问速度快,但依赖公网环境,对网络要求较高。

方案二:向日葵 Docker 镜像

实际项目中采用的是向日葵官方 Docker 镜像。

部署流程如下:

拉取向日葵镜像 │ 启动 Docker 容器 │ 获取设备 SN 与验证码 │ 绑定向日葵账号 │ 远程访问群辉 │ 访问内部服务

相比安装群辉套件,Docker 部署更加灵活,也方便后续升级。

容器启动后,可以从日志中获取设备 SN 和验证码,登录向日葵后台完成绑定即可。

绑定成功后,无论身处公司还是外网,都可以直接远程连接群辉,进一步访问部署在群辉中的内部服务,无需额外配置复杂的网络环境。

对于没有公网 IP 的中小团队来说,这种方案部署简单、维护成本低,也是目前项目中长期采用的方式。


六、局域网设备通信

为了调度局域网中的自动化程序,采用 UDP + TCP 的组合方式。

首先通过 UDP 广播发现在线设备。

设备收到广播后返回自身信息,包括:

  • IP 地址;
  • 设备名称;
  • 当前状态。

随后建立 TCP 连接,同步设备支持执行的自动化程序。

当主服务收到执行请求后,只需要选择目标设备并发送命令即可。

客户端则通过本地文件触发器启动对应自动化流程,实现整个调度过程。


七、总结

目前整个平台已经能够稳定运行。

具备以下能力:

  • Flask 服务管理;
  • Docker 容器部署;
  • Git 自动部署;
  • 定时任务管理;
  • 局域网设备调度;
  • 向日葵远程访问;
  • 群辉文件管理。

整体部署成本较低,维护简单,比较适合中小团队搭建企业内部自动化平台。


附录 A:自动部署脚本

部署脚本主要流程如下:

获取部署锁 │ Git Pull │ 检查依赖 │ 按需构建镜像 │ 停止旧容器 │ 启动新容器 │ 清理镜像

通过 requirements.txt 哈希检测,实现镜像增量构建,提高部署效率。

http://www.jsqmd.com/news/1146398/

相关文章:

  • 解放视频创作生产力:Python自动化剪映的终极解决方案
  • 5分钟终极指南:如何使用KMS智能激活工具永久激活Windows和Office
  • 番茄小说下载器终极指南:构建高效稳定的网络小说抓取系统
  • 如何轻松激活Windows和Office:智能KMS脚本完整指南
  • KMS_VL_ALL_AIO:Windows和Office激活终极指南
  • Adaboost 算法 3 大核心公式推导:从样本权重更新到强分类器构建
  • 视频转二维码实用指南:从原理到批量生成与问题排查
  • uBlock Origin终极指南:如何在5分钟内彻底净化你的浏览器
  • TwitchNoSub:免费解锁Twitch订阅专属回放的终极指南
  • LM 算法迭代过程动画演示(SLAM)
  • NVIDIA Profile Inspector深度指南:解锁显卡隐藏性能的终极工具 [特殊字符]
  • AltDrag完全指南:用Alt键彻底改变你的Windows窗口操作体验
  • 如何用Video2X轻松将模糊视频变成4K高清?AI视频增强完全指南
  • 3分钟搞定Windows与Office永久激活:KMS智能激活完整解决方案
  • 全国GEO优化老师杜毅(元点智创GEO创始人)怎么样?讲的课程值得学吗
  • Switch上如何快速安装第三方B站客户端:wiliwili完整使用指南
  • 从零打造你的智能机器狗:openDogV2开源项目完全指南
  • SVG-edit:3分钟上手的免费浏览器SVG编辑器终极指南
  • 3步完成GTNH汉化:让格雷科技新视野整合包秒变中文界面
  • 微信聊天记录永久备份:用WeChatMsg守护你的数字记忆
  • 用.net core手撸的IoT 智能监控平台
  • 告别模糊视频:Video2X如何用AI魔法让低清画面重生
  • 【RT-DETR涨点改进】09 别再让注意力“瞎看”:RT-DETR中的稀疏注意力与显存优化实战
  • 为什么做 IP 实物周边别直接找工厂?
  • io_uring:Linux异步I/O的下一代接口深度解析与实战
  • 如何5分钟彻底解决Windows和Office激活难题:KMS智能激活终极指南
  • 性能测试进阶:从Jmeter脚本生成到全链路监控与面试知识体系构建
  • 湘美谈教育湘美书院谈邵阳文学,雪峰山绥宁散文四重奏
  • Poppins字体:完全免费的多语言几何字体,为你的设计增添国际范 [特殊字符]
  • B站视频下载工具终极指南:如何轻松下载大会员4K和充电专属内容