本项目的定位目标是成为一个轻量、易使用、易部署、功能丰富的运维管理平台,已实现以下功能:
- 基础系统功能:用户管理、部门管理、角色管理、权限管理;
- 一套权限管理逻辑控制前后端路由、按钮级别权限;
- 堡垒机功能:主机管理、主机组管理;
- 支持密码、秘钥方式建立 SSH Web 终端(基于 WebSocket);
- 支持 Web 文件管理器(上传、下载、删除)管理主机文件系统(基于 WebSocket + SFTP);
- 支持终端会话记录持久化到硬盘、回放会话;
- 支持主机访问授权(主机所属主机组授权到角色或用户);
- 基于 Kubernetes 原生 Pod 的持续集成(CI);
- 秘钥管理;
- 构建环境管理;
- 流水线管理(编排);
- 运行流水线 & 构建流水线客户端镜像;
- 流水线运行历史展示;
- 获取流水线运行日志;
- 支持终止执行中的构建任务;
- 流水线参数化支持;
- 支持克隆流水线;
- 支持 Kaniko 构建上传镜像;
- 管理员:
admin
,密码:devops.zze
; - 测试账号:
test
,密码:devops.zze
;
数据库每小时自动重置。
效果图:
- 语言:Golang、Typescript;
- 后端:Go Frame、Casbin、Pongo2、Kubernetes Client Go、Go Git;
- 前端:Vue3、Vite、Element-Plus、TypeScript、Pinia、Xterm 等;
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.1 为例:主程序 Docker
镜像为 registry.cn-shenzhen.aliyuncs.com/zze/devops-super:202312151703
;
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:202312151703
容器的
/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 端口即可;