侧边栏壁纸
博主头像
张种恩的技术小栈博主等级

行动起来,活在当下

  • 累计撰写 747 篇文章
  • 累计创建 65 个标签
  • 累计收到 39 条评论

目 录CONTENT

文章目录
Go

Devops Super(一)更懂运维的运维平台出生了

zze
zze
2023-10-11 / 0 评论 / 0 点赞 / 339 阅读 / 5491 字

不定期更新相关视频,抖音点击左上角加号后扫一扫右方侧边栏二维码关注我~正在更新《Shell其实很简单》系列

Devops Super

功能

本项目的定位目标是一个成为一个轻量、易使用、易部署、功能丰富的运维管理平台,已实现以下功能:

  • 基础系统功能:用户管理、部门管理、角色管理、权限管理;
    • 一套权限管理逻辑控制前后端路由、按钮级别权限;
  • 堡垒机功能:主机管理、主机组管理(替代 JumpServer);
    • 支持密码、秘钥方式建立 SSH Web 终端(基于 WebSocket);
    • 支持 Web 文件管理器(上传、下载、删除)管理主机文件系统(基于 WebSocket + SFTP);
    • 支持终端会话记录持久化到硬盘、回放会话;
    • 支持主机访问授权(主机所属主机组授权到角色或用户);
  • 基于 Kubernetes 原生 Pod 的持续集成(替代 Jenkins、Gitlab CI);
    • 秘钥管理;
    • 构建环境管理;
    • 流水线管理(编排);
    • 运行流水线 & 构建流水线客户端镜像;
    • 流水线运行历史展示;
    • 获取流水线运行日志;
    • 支持挂载 PVC 以持久化构建数据;
    • 支持强制终止执行中的构建任务;
    • 流水线参数化支持;
    • 支持克隆流水线;

预览地址

点我预览

  • 管理员:admin,密码:devops.zze
  • 测试账号:test,密码:devops.zze

数据库每小时自动重置。

技术栈

  • 语言:Golang、Typescript;
  • 后端:GoFrame、Casbin;
  • 前端:Vue3、Vite、Element-Plus、TypeScript、Pinia 等;

项目运行

1、在 MySQL 中执行 manifest/db/devops_super.sql 创建好数据库以及初始化数据;

2、然后修改 manifest/config/config.yaml 中的数据库连接地址(database.default.link),格式如下:

mysql
:<用户名>:<密码>@tcp(<数据库地址>)/<库名>?loc=Local&parseTime=true
-- 例:mysql:zze:zze.admin@tcp(127.0.0.1:3306)/devops_super?loc=Local&parseTime=true

3、直接运行项目根目录的 main.go 就可以跑起来啦~

前端项目

本仓库是后端项目,对应前端项目地址为:https://github.com/zze326/devops-super-fe

快速部署

1、在 MySQL 中执行 manifest/db/devops_super.sql 创建好数据库以及初始化数据;

2、从 releases
获取到要部署的镜像版本,以 v1.0 为例:主程序 Docker
镜像为 registry.cn-shenzhen.aliyuncs.com/zze/devops-super:202310271518

3、运行容器,看如下实例:

docker run -d --name devops-super \
        -v/opt/devops-super/host-sessions:/app/host-sessions \
        -eSERVER_PORT=8001 \
        -eDB_HOST=127.0.0.1 \
        -eDB_PORT=3306 \
        -eDB_NAME=devops_super \
        -eDB_USER=zze \
        -eDB_PWD=zze.admin \
        -eJWT_SECRET=vIIEngfamdsaGZasdsasdasadkseadgF9fe \
        --network host registry.cn-shenzhen.aliyuncs.com/zze/devops-super:202310271518

容器的 /app/host-sessions 目录保存了主机终端会话记录信息,可以将它挂载出来以持久化保存。

环境变量说明:

  • DB_HOST:MySQL 主机地址;
  • DB_PORT:MySQL 端口;
  • DB_NAME:数据库名称;
  • DB_USER:连接数据库使用的用户;
  • DB_PWD:连接数据库的用户密码;
  • JWT_SECRET:JWT 秘钥,随机生成即可;
  • SERVER_PORT:服务监听端口;

参数说明(按需使用):

  • -d:后台运行容器;
  • --name:指定容器名称;
  • --network host:容器共用宿主机网络空间;

4、容器运行成功后浏览器访问 8001 端口即可;

0

评论区