实战案例:利用 Docker 快速部署自动化运维平台

项目说明
Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件在线上传下载、应用发布部署、在线任务计划、配置中心、监控、报警等一系列功能。
特点
批量执行:主机命令在线批量执行
在线终端:主机支持浏览器在线终端登录
文件管理:主机文件在线上传下载
任务计划:灵活的在线任务计划
发布部署:支持自定义发布部署流程
配置中心:支持 KV、文本、json 等格式的配置
监控中心:支持站点、端口、进程、自定义等监控
报警中心:支持短信、邮件、钉钉、微信等报警方式
优雅美观:基于 Ant Design 的 UI 界面
开源免费:前后端代码完全开源
官网地址:https://ops.spug.cc/
官方文档

https://ops.spug.cc/docs/about-spug/

GitHub 链接: https://github.com/openspug/spug
gitee链接:https://gitee.com/openspug/spug

部署过程

官方说明

https://ops.spug.cc/docs/about-spug/

拉取镜像

[root@ubuntu2404 ~]#cat docker-compose.yml 
version: "3.3"
services:
  db:
    image: registry.cn-hangzhou.aliyuncs.com/openspug/mariadb:10.8.2
    container_name: spug-db
    restart: always
    command: --port 3306 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    volumes:
      - /data/spug/mysql:/var/lib/mysql
    environment:
      - MYSQL_DATABASE=spug
      - MYSQL_USER=spug
      - MYSQL_PASSWORD=spug.cc
      - MYSQL_ROOT_PASSWORD=spug.cc
  spug:
    image: registry.cn-hangzhou.aliyuncs.com/openspug/spug-service
    container_name: spug
    privileged: true
    restart: always
    volumes:
      - /data/spug/service:/data/spug
      - /data/spug/repos:/data/repos
    ports:
      # 如果80端口被占用可替换为其他端口,例如: - "8000:80"
      - "80:80"
    environment:
      - MYSQL_DATABASE=spug
      - MYSQL_USER=spug
      - MYSQL_PASSWORD=spug.cc
      - MYSQL_HOST=db
      - MYSQL_PORT=3306
    depends_on:
      - db

启动容器

[root@ubuntu2404 ~]#docker compose up -d

初始化
以下操作会创建一个用户名为 admin 密码为 spug.cc 的管理员账户,可自行替换管理员账户/密码

[root@ubuntu2404 ~]#docker exec spug init_spug admin 12345
Migrations for 'account':
  data/spug/spug_api/apps/account/migrations/0001_initial.py
    - Create model History
    - Create model Role
    - Create model User
    - Add field created_by to role
Migrations for 'alarm':
  data/spug/spug_api/apps/alarm/migrations/0001_initial.py
    - Create model Alarm
    - Create model Group
    - Create model Contact
Migrations for 'config':
  data/spug/spug_api/apps/config/migrations/0001_initial.py
    - Create model Service
    - Create model Environment
    - Create model ConfigHistory
    - Create model Config
Migrations for 'exec':
  data/spug/spug_api/apps/exec/migrations/0001_initial.py
    - Create model Transfer
    - Create model ExecTemplate
    - Create model ExecHistory
Migrations for 'home':
  data/spug/spug_api/apps/home/migrations/0001_initial.py
    - Create model Navigation
    - Create model Notice
Migrations for 'host':
  data/spug/spug_api/apps/host/migrations/0001_initial.py
    - Create model Host
    - Create model HostExtend
    - Create model Group
Migrations for 'monitor':
  data/spug/spug_api/apps/monitor/migrations/0001_initial.py
    - Create model Detection
Migrations for 'notify':
  data/spug/spug_api/apps/notify/migrations/0001_initial.py
    - Create model Notify
Migrations for 'schedule':
  data/spug/spug_api/apps/schedule/migrations/0001_initial.py
    - Create model History
    - Create model Task
Migrations for 'setting':
  data/spug/spug_api/apps/setting/migrations/0001_initial.py
    - Create model Setting
    - Create model UserSetting
Migrations for 'app':
  data/spug/spug_api/apps/app/migrations/0001_initial.py
    - Create model App
    - Create model Deploy
    - Create model DeployExtend1
    - Create model DeployExtend2
Migrations for 'repository':
  data/spug/spug_api/apps/repository/migrations/0001_initial.py
    - Create model Repository
Migrations for 'deploy':
  data/spug/spug_api/apps/deploy/migrations/0001_initial.py
    - Create model DeployRequest
Operations to perform:
  Apply all migrations: account, alarm, app, config, deploy, exec, home, host, monitor, notify, repository, schedule, setting
Running migrations:
  Applying account.0001_initial... OK
  Applying alarm.0001_initial... OK
  Applying config.0001_initial... OK
  Applying app.0001_initial... OK
  Applying repository.0001_initial... OK
  Applying deploy.0001_initial... OK
  Applying exec.0001_initial... OK
  Applying home.0001_initial... OK
  Applying host.0001_initial... OK
  Applying monitor.0001_initial... OK
  Applying notify.0001_initial... OK
  Applying schedule.0001_initial... OK
  Applying setting.0001_initial... OK
初始化/更新成功
创建用户成功

访问测试

在浏览器中输入http://localhost:80访问(默认账户密码在第4步初始化时设置)

用户名: admin 密码: 12345

在这里插入图片描述
在这里插入图片描述

Logo

更多推荐