离线安装及升级

1 环境要求

部署服务器要求

  • 操作系统: Ubuntu 22 / CentOS 7 64 位系统
  • CPU/内存: 4C8G
  • 磁盘空间: 200 G

2 下载安装包

请自行下载 MeterSphere 最新版本的离线安装包,并复制到目标机器的 /tmp 目录下。
安装包下载链接: https://community.fit2cloud.com/#/products/metersphere/downloads

3 解压安装包

以 root 用户 ssh 登录到目标机器, 并执行如下命令。

  1. cd /tmp
  2. # 解压安装包
  3. tar zxvf metersphere-offline-installer-v3.x.y.tar.gz

4 配置文件说明

4.1 安装配置文件

安装配置文件说明

如果无特殊需求可直接采用默认配置进行安装,如需修改配置参数,则修改配置文件 install.conf,详细说明如下。

  1. # 基础配置
  2. ## 安装路径, MeterSphere 配置及数据文件默认将安装在 ${MS_BASE}/metersphere 目录下
  3. MS_BASE=/opt
  4. ## MeterSphere 使用的 docker 网络网段信息
  5. MS_DOCKER_SUBNET=172.30.10.0/24
  6. ## 镜像前缀, MeterSphere 相关组件使用的 Docker 镜像前缀, 例如 registry.fit2cloud.com/metersphere
  7. MS_IMAGE_PREFIX=registry.fit2cloud.com/metersphere
  8. ## 镜像标签, MeterSphere 相关组件使用的 Docker 镜像标签
  9. MS_IMAGE_TAG=v3.0.0-beta
  10. ## 安装模式 allinone | server | task-runner
  11. MS_INSTALL_MODE=allinone
  12. ## MeterSphere 主程序的 HTTP 服务监听端口
  13. MS_SERVER_PORT=8081
  14. ## MeterSphere Task-Runner 组件的 HTTP 服务监听端口
  15. MS_TASK_RUNNER_PORT=8000
  16. # 数据库配置
  17. ## 是否使用外部数据库
  18. MS_EXTERNAL_MYSQL=false
  19. ## 数据库地址
  20. MS_MYSQL_HOST=$(hostname -I|cut -d" " -f 1)
  21. ## 数据库端口
  22. MS_MYSQL_PORT=3306
  23. ## 数据库库名
  24. MS_MYSQL_DB=metersphere
  25. ## 数据库用户名
  26. MS_MYSQL_USER=root
  27. ## 数据库密码
  28. MS_MYSQL_PASSWORD=Password123@mysql
  29. # Redis 配置
  30. ## 是否使用外部Redis
  31. MS_EXTERNAL_REDIS=false
  32. ## Redis 端口
  33. MS_REDIS_PORT=6379
  34. ## Redis 密码
  35. MS_REDIS_PASSWORD=Password123@redis
  36. ## Redis地址
  37. MS_REDIS_HOST=$(hostname -I|cut -d" " -f 1)
  38. # Kafka 配置
  39. ## 是否使用外部 Kafka
  40. MS_EXTERNAL_KAFKA=false
  41. ## Kafka 地址
  42. MS_KAFKA_HOST=10.1.11.29
  43. MS_KAFKA_PORT=9092
  44. # minio 配置
  45. ## 是否使用外部minio
  46. MS_EXTERNAL_MINIO=false
  47. ## minio 地址
  48. MS_MINIO_ENDPOINT=http://minio:9000
  49. ## minio access
  50. MS_MINIO_ACCESS_KEY=admin
  51. ## minio 密码
  52. MS_MINIO_SECRET_KEY=Password123@minio
  53. ## docker gid
  54. MS_DOCKER_GID=$(getent group docker | cut -f3 -d:)
  55. ## memory limit 修改组件最大内存限制
  56. MS_MEM_LIMIT=1g
  57. MS_RUNNER_MEM_LIMIT=1g
  58. MS_RESULT_MEM_LIMIT=1g
  59. MS_KAFKA_MEM_LIMIT=1g
  60. ## TOTP 执行机接口开启认证
  61. MS_TOTP_ENABLED=false
  62. MS_TOTP_SECRET=Password123@totp

注意

安装前可以直接修改 install.conf进行配置,如果安装成功后还需要再次修改配置参数,则需要在安装后的 ${MS_BASE}/metersphere/.env 文件中进行修改,并在修改完后执行 msctl reload ,重新加载配置参数。

4.2 数据库配置文件

注意

MeterSphere 采用 MySQL 8.0 存储系统数据,并对数据库部分配置项有指定要求,如果采用外置数据库,请参考如下数据库配置进行修改。

  1. [mysqld]
  2. datadir=/var/lib/mysql
  3. default-storage-engine=INNODB
  4. character_set_server=utf8mb4
  5. lower_case_table_names=1
  6. performance_schema=off
  7. table_open_cache=128
  8. transaction_isolation=READ-COMMITTED
  9. max_connections=1000
  10. max_connect_errors=6000
  11. max_allowed_packet=64M
  12. innodb_file_per_table=1
  13. innodb_buffer_pool_size=512M
  14. innodb_flush_method=O_DIRECT
  15. innodb_lock_wait_timeout=1800
  16. server-id=1
  17. log-bin=mysql-bin
  18. expire_logs_days = 2
  19. binlog_format=mixed
  20. character-set-client-handshake = FALSE
  21. character-set-server=utf8mb4
  22. collation-server=utf8mb4_general_ci
  23. init_connect='SET default_collation_for_utf8mb4=utf8mb4_general_ci'
  24. sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
  25. skip-name-resolve
  26. [mysql]
  27. default-character-set=utf8mb4
  28. [mysql.server]
  29. default-character-set=utf8mb4

参考建库语句创建 MeterSphere 使用的数据库,MeterSphere 服务启动时会初始化表结构和数据。

  1. CREATE DATABASE `metersphere` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */

5 执行安装脚本

  1. # 进入安装包目录
  2. cd metersphere-offline-installer-v3.x.y
  3. # 运行安装脚本
  4. /bin/bash install.sh

执行完安装脚本后,会自动加载镜像并运行容器,等提示安装完成后,可使用命令 watch -n 5 msctl status 查看各个组件运行状态。

服务状态

待所有组件运行状态都是 healthy 状态时,即可通过浏览器访问并登录 MeterSphere。

  1. URL: http://服务器IP:8081
  2. 用户名: admin
  3. 初始密码: metersphere

6 安装目录结构

默认情况下,安装完成后, /opt/metersphere 为 MeterSphere 应用目录, 配置文件、数据及日志等均存放在该目录下。

  1. /opt/metersphere/
  2. ├── compose_files #-- 根据不同的安装模式,保存需要使用到的 compose 文件信息
  3. ├── conf #-- MeterSphere 各组件及数据库等中间件的配置文件
  4. ├── data #-- MeterSphere 各组件及数据库等中间件的数据持久化目录
  5. ├── logs #-- MeterSphere 各组件的日志文件持久化目录
  6. └── version #-- 安装包对应的 MeterSphere 版本信息
  7. ├── docker-compose-base.yml #-- MeterSphere 基础 Docker Compose 文件,定义了网络等基础信息
  8. ├── docker-compose-metersphere.yml #-- MeterSphere 的 各功能模块 主服务
  9. ├── docker-compose-result-hub.yml #-- MeterSphere 报告统计模块的 Docker Compose 文件
  10. ├── docker-compose-kafka.yml #-- MeterSphere 自带的 Kafka 所需的 Docker Compose 文件
  11. ├── docker-compose-mysql.yml #-- MeterSphere 自带的 MySQL 所需的 Docker Compose 文件
  12. ├── docker-compose-task-runner.yml #-- MeterSphere Task-Runner 组件所需的 Docker Compose文件
  13. ├── docker-compose-redis.yml #-- MeterSphere Redis 组件所需的 Docker Compose文件
  14. ├── docker-compose-minio.yml #-- MeterSphere 自带的分布式对象存储服务
  15. ├── install.conf -> /opt/metersphere/.env #-- MeterSphere 的配置文件 /opt/metersphere/.env 的软链接
  16. ├── install.conf.example #-- MeterSphere 安装部署初始配置文件

7 配置反向代理

注意

如果使用了 Nginx、HAProxy 进行反向代理配置,需要增加对 websocket 的支持。以 Nginx 为例,参考配置如下:

  1. server {
  2. listen 80;
  3. server_name demo.metersphere.com;
  4. server_tokens off;
  5. return 301 https://$host$request_uri;
  6. }
  7. server {
  8. listen 443 ssl;
  9. # RSA certificate
  10. ssl_certificate /etc/nginx/ssl/metersphere.com/fullchain.cer; # managed by Certbot
  11. ssl_certificate_key /etc/nginx/ssl/metersphere.com/metersphere.com.key; # managed by Certbot
  12. server_name demo.metersphere.com;
  13. proxy_connect_timeout 300;
  14. proxy_send_timeout 300;
  15. proxy_read_timeout 300;
  16. send_timeout 300;
  17. proxy_set_header Host $host;
  18. proxy_set_header X-Forwarded-For $remote_addr;
  19. proxy_set_header X-Forwarded-Host $server_name;
  20. proxy_set_header X-Real-IP $remote_addr;
  21. proxy_set_header X-Forwarded-Proto $scheme;
  22. proxy_redirect http:// $scheme://;
  23. location / {
  24. proxy_pass http://ip:8081;
  25. client_max_body_size 1000m;
  26. #access_log off;
  27. # 配置 websocket 支持
  28. proxy_http_version 1.1;
  29. proxy_set_header Upgrade $http_upgrade;
  30. proxy_set_header Connection "upgrade";
  31. }
  32. }

8 离线升级

注意

【特别注意事项】:由于v3版本产品定位发生了变化,不支持从 v1.x 和 v2.x 版本升级到 v3.x。本文档离线升级操作仅适用于v3.x系列升级。
升级前务必检查磁盘容量是否充足,并关闭正在运行的定时任务,避免在升级过程因执行定时任务造成数据损坏。然后再对数据库进行备份,详细操作请参考 MeterSphere 数据备份

  1. # 进入数据库
  2. docker exec -it mysql sh
  3. mysql -uroot -pPassword123@mysql
  4. # 关闭定时任务
  5. use metersphere;
  6. update schedule set enable=0;
  7. # 退出
  8. exit;

离线升级步骤

  1. # 完成数据备份并停止服务
  2. msctl stop
  3. # 下载离线安装包并上传到服务器
  4. 安装包下载链接: https://community.fit2cloud.com/#/products/metersphere/downloads
  5. # 解压安装包
  6. tar -zxvf metersphere-offline-installer-v3.x.y.tar.gz
  7. # 进入离线部署包解压缩目录
  8. cd metersphere-offline-installer-v3.x.y
  9. # 运行安装脚本
  10. /bin/bash install.sh
  11. # 查看 MeterSphere 状态,各个组件都是 healthy 状态升级完成。
  12. msctl status

升级完成后,批量启用定时任务。

  1. # 进入数据库
  2. docker exec -it mysql sh
  3. mysql -uroot -pPassword123@mysql
  4. # 开启定时任务
  5. use metersphere;
  6. update schedule set enable=1;
  7. # 退出
  8. exit;