devops-super/README.MD

5.1 KiB
Raw Permalink Blame History

Devops Super

功能

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

  • 基础系统功能:用户管理、部门管理、角色管理、权限管理;
    • 一套权限管理逻辑控制前后端路由、按钮级别权限;
  • 堡垒机功能:主机管理、主机组管理;
    • 支持密码、秘钥方式建立 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_HOSTMySQL 主机地址;
  • DB_PORTMySQL 端口;
  • DB_NAME:数据库名称;
  • DB_USER:连接数据库使用的用户;
  • DB_PWD:连接数据库的用户密码;
  • JWT_SECRETJWT 秘钥,随机生成即可;
  • SERVER_PORT:服务监听端口;

参数说明(按需使用):

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

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