OpsAny社区版v2.3.0升级指南¶
OpsAny v2.0.0开始支持跨版本升级,所有低于v2.1.3版本的用户必须先升级到2.1.3,才能再跨版本升级到最新版本。v2.3.0是历史以来第一次需要升级数据库,因为Python和Django最新稳定版本均需要MySQL最低8.0版本,从v2.2.4版本开始安装OpsAny的用户不需要升级数据库,默认就是MySQL 8.0版本。v2.2.3版本之前开始使用OpsAny的用户必须先升级MySQL数据库。
升级提醒。¶
Tip
本次升级涉及老用户需要升级MySQL数据库,请做好备份,如果是虚拟机或者云主机,建议提前做一个主机快照,用于回退。 必须严格按本文档顺序执行,先更新PaaS代码,再执行其它更新操作,否则有可能造成更新失败。
0.备份数据并发布升级公告¶
- 0.1 备份数据库
执行数据库备份脚本,会将MySQL和MongoDB备份到/opt目录下。如果是云主机,建议创建云主机快照。
cd /opt/opsany-paas/install
./database-backup.sh all
- 0.2 发布更新通知
在企业相关通知渠道,发布更新通知,更新时间约为5~30分钟(根据下载镜像的网络情况而定),更新内容在本文档末尾。
1.检查数据库版本,按需升级。¶
- 请查看数据库版本确定是否需要升级。MySQL 8.0以下版本均需要先升级数据库,后进行平台更新,如MySQL 5.5 5.6 5.7等。
cd /opt/opsany-paas/install/
source install.config
export MYSQL_PWD=${MYSQL_ROOT_PASSWORD}
mysql -h "${MYSQL_SERVER_IP}" -u root -e "SELECT VERSION();"
- 如果输出为:5.6.50,必须先执行下面的【MySQL升级】步骤,进行MySQL升级。
- 如果输出为:8.0.30,无需升级,可以继续操作【2.更新OpsAny数字化运维平台】。
无需升级,请正式开始更新。
如果数据库版本非8.X版本需要执行本教程进行升级,本次升级是新启动一个新的MySQL容器,并采用全新的端口8031,这样遇到数据库升级失败,仅需要停止新的数据库即可,不影响旧的数据库容器。然后修改install.config,将文件中的MySQL端口设置为8031,这样后续升级之后,各个服务的便会使用新的数据库(升级的原理就是根据install.config中的配置,重新生成配置文件)。
- 1.0 更新PaaS代码,更新MySQL备份和升级脚本。
cd /opt/opsany-paas && git checkout main && git pull
如果本地修过相关文件,执行会失败,可以执行git checkout -- filename 逐个丢弃工作区的修改,待更新完毕之后再修改。
- 1.1 停止OpenResty,这个是平台入口,停止之后用户无法访问平台。
docker stop opsany-base-openresty
- 1.2 备份当前MySQL数据库。
请自行评估数据库大小,了解备份时间,如果备份时间过长,建议放在screen中运行。
cd /opt/opsany-paas/install/
# 如果备份所有数据库使用all。如果未安装数字化研发平台,请使用ops参数。
./db-backup.sh all
- 1.3 启动MySQL 8.0容器。
# 使用新的容器名称和新的数据卷,端口号使用新的端口8031。
cd /opt/opsany-paas/install/
source install.config
mkdir -p ${INSTALL_PATH}/mysql8-volume
mkdir -p ${INSTALL_PATH}/logs/mysql
/bin/cp -r /opt/opsany-paas/install/conf/mysql ${INSTALL_PATH}/conf/
docker run -d --restart=always --name opsany-base-mysql8 \
-e MYSQL_ROOT_PASSWORD="$MYSQL_ROOT_PASSWORD" \
-p 8031:3306 -v ${INSTALL_PATH}/mysql8-volume:/var/lib/mysql \
-v ${INSTALL_PATH}/conf/mysql/mysqld.cnf:/etc/mysql/conf.d/mysqld.cnf \
-v ${INSTALL_PATH}/logs/mysql:/var/log/mysql \
-v /etc/localtime:/etc/localtime:ro \
${PAAS_DOCKER_REG}/mysql:8.0.30 --character-set-server=utf8 --collation-server=utf8_general_ci
# 需要等待MySQL容器启动,根据CPU不同,时间不同,大约1分钟左右,然后再检查新容器启动状态和版本。
export MYSQL_PWD=${MYSQL_ROOT_PASSWORD}
mysql -h "${MYSQL_SERVER_IP}" -P 8031 -u root -e "SELECT VERSION();"
- 1.4 在MySQL 8.0创建对应的数据库并导入数据。
请自行评估数据库大小,了解备份时间,如果备份时间过长,建议放在screen中运行。
cd /opt/opsany-paas/install/
# 如果升级所有数据库使用all。如果未安装数字化研发平台,请使用ops参数。这个脚本会在新的数据库实例中创建数据库、用户、授权并导入备份数据。
./db-create.sh all
# 验证数据库创建。
mysql -h "${MYSQL_SERVER_IP}" -P 8031 -u root -e "show databases;"
# 启动OpenResty,用于后续的升级。
docker start opsany-base-openresty
- 1.5 修改配置文件中的MYSQL端口。
修改配置文件中的MySQL端口后,在下面的升级过程中,会重新生成配置文件,这样服务就可以使用新的数据库进行连接。
vim /opt/opsany-paas/install/install.config
# 添加或修改此项,请确保配置文件中配置项不要重复。
MYSQL_SERVER_PORT="8031"
# 验证配置,确保只有一行,如有重复行,请删除。
grep 'MYSQL_SERVER_PORT' /opt/opsany-paas/install/install.config
注意:在全部更新完毕,升级没有问题时,可以关闭老的数据库容器。
2.更新OpsAny数字化运维平台¶
- 请注意,执行更新操作是会读取install.config配置文件,请确保配置文件正确,否则可能系统因为配置问题导致不可用。
- 请注意,更新操作需要admin用户的密码,如修改过,请将密码更新至"${INSTALL_PATH}/conf/.passwd_env中"。如果密码中有特殊符号,请使用单引号引起来。
- 备注:更新的原理是删除已经存在的旧容器,然后使用install.config中的配置,重新生成配置文件,并且使用新版本镜像启动新的容器。
运维平台模块包括工作台、统一权限、作业平台、云管平台、资源平台、管控平台、基础监控、堡垒机、大模型开发平台。
提示:Docker部署的OpsAny升级是重建容器,所以如果用户手工放入某容器中的文件将被删除,平台管理的文件不受影响。
- 2.1 更新PaaS代码
cd /opt/opsany-paas && git checkout main && git pull
如果本地修过相关文件,执行会失败,可以执行git checkout -- filename 逐个丢弃工作区的修改,待更新完毕之后再修改。
- 2.2 更新PaaS平台服务
# 使用升级脚本升级PaaS服务
cd /opt/opsany-paas/install
./opsany-ce-update.sh paas 4.0.0
./opsany-ce-update.sh login 4.0.0
./opsany-ce-update.sh esb 4.0.0
./opsany-ce-update.sh appengine 4.0.0
./opsany-ce-update.sh websocket 4.0.0
./opsany-ce-update.sh proxy 2.3.0
- 2.3 更新ESB。ESB更新会替换配置,并重新导入ESB相关的SQL。
cd /opt/opsany-paas/install
./saas-esb-update.sh
- 2.4 更新SaaS基础模块
注意:v2.3.0版本对工作台的工单进行部分重构,历史工单越多,更新速度越慢,建议放到screen中执行,更新失败可以重新执行该步骤。
./opsany-ce-update.sh base 2.3.0
提示:Kubernetes部署的OpsAny升级,升级后请注意检查Pod的运行状态。
- 2.1 更新PaaS平台服务
cd /opt/opsany-paas/install
./opsany-ce-k8s-update.sh paas 4.0.0
./opsany-ce-k8s-update.sh login 4.0.0
./opsany-ce-k8s-update.sh esb 4.0.0
./opsany-ce-k8s-update.sh appengine 4.0.0
./opsany-ce-k8s-update.sh websocket 4.0.0
./opsany-ce-k8s-update.sh proxy 2.3.0
- 2.2 更新SaaS运维平台和研发平台
././opsany-ce-k8s-update.sh all 2.3.0
3.增加大模型开发平台¶
注意:大模型开发平台至少需要600M内存,如果主机剩余内存不足,请先扩展内存后安装。
- 3.1 增加配置行到配置文件中,添加在任何位置均可。
cd /opt/opsany-paas/install/
vim install.config
# 添加下面两行,密码可以自行修改
MONGO_LLMOPS_PASSWORD="Opspnm6W18292"
MYSQL_OPSANY_LLMOPS_PASSWORD="Opspnm6W18292"
- 3.2 为大模型开发平台创建MongoDB数据库。
有部分用用户的MongoDB容器名称为opsany-mongodb,需要手工修改一下再执行。
cd /opt/opsany-paas/install/
source install.config
cp init/mongodb-init/mongodb_init_llmops.js ${INSTALL_PATH}/init/mongodb-init/
sed -i "s/MONGO_LLMOPS_PASSWORD/${MONGO_LLMOPS_PASSWORD}/g" ${INSTALL_PATH}/init/mongodb-init/mongodb_init_llmops.js
docker cp ${INSTALL_PATH}/init/mongodb-init/mongodb_init_llmops.js opsany-base-mongodb:/opt/
docker exec -e MONGO_INITDB_ROOT_USERNAME=$MONGO_INITDB_ROOT_USERNAME \
-e MONGO_INITDB_ROOT_PASSWORD=$MONGO_INITDB_ROOT_PASSWORD \
opsany-base-mongodb /bin/bash -c "/usr/bin/mongo -u $MONGO_INITDB_ROOT_USERNAME -p $MONGO_INITDB_ROOT_PASSWORD /opt/mongodb_init_llmops.js"
- 3.3 执行脚本进行安装,请直接复制粘贴,不要填错参数!!!
执行时有两行sed的报错,可以忽略。
cd /opt/opsany-paas/install/
./saas-ce-install.sh llmops
- 3.4 增加Nginx配置
vim ${INSTALL_PATH}/conf/nginx-conf.d/opsany_paas.conf
# 在SAAS_RBAC上面,增加下面三行,注意修改LOCAL_IP为你的IP地址。
...
upstream SAAS_LLMOPS {
server LOCAL_IP:7000 max_fails=1 fail_timeout=30s;
}
upstream SAAS_RBAC {
server LOCAL_IP:7001 max_fails=1 fail_timeout=30s;
}
...
# 在最后一个}上面增加以下内容。
# for llmops
location ~ ^/o/llmops/ {
proxy_pass http://SAAS_LLMOPS;
proxy_pass_header Server;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_read_timeout 600;
}
- 3.5 重启openresty容器
如果nginx -t测试失败,说明配置文件修改错误,请仔细检查。解决后再继续操作。
docker exec opsany-base-openresty sh -c "nginx -t"
docker restart opsany-base-openresty
- 3.6 在【统一权限】平台增加授权
打开【统一权限】平台,点击菜单(权限策略),点击管理员使用的权限策略“超级管理员”,点击最下面的“添加平台”,添加上“大模型开发平台”的授权。
4.更新OpsAny数字化研发平台(可选)¶
由于目前OpsAny分为两大产品线【OpsAny数字化运维平台】和【DevAny数字化研发平台】,每次发布版本会同时发布,用户可以根据实际情况进行更新,如未部署请查看部署文档,下面为升级步骤。
如果之前部署过应用平台,请执行。不知道,就是没有部署,请不要执行。
# 更新数字化研发平台
cd /opt/opsany-paas/install
./opsany-ce-update.sh dev 2.3.0
v2.3.0 版本更新记录¶
功能新增¶
温馨提示各位老用户:在升级v2.3.0版本后,若使用“大模型开发平台”和“值班管理、我的值班、SLA管理、任务管理、监控模板”等功能,请到统一权限-权限策略页面添加对应的平台和功能菜单权限后使用。
- AI大模型开发平台:新增平台,支持自定义添加大模型提供商,全平台增加智能AI助理。
- 工作台:增加值班管理和我的值班。
- 工作台:增加任务管理,工单可以关联任务。
- 工作台:工单-流程管理增加SLA管理功能,工单详情增加SLA回显展示。
- 工作台:工单流程设计中增加新节点资源管理,用于集成平台内部云资源和容器资源申请。
- 管控平台:主机管理-从资源平台批量添加主机时增加同步到堡垒机的功能。
- 管控平台:主机管理-批量通过xlsx导入主机时增加同步到堡垒机的功能。
- 管控平台:主机管理、数据库管理、网络设备、IP地址管理等批量操作中增加更换分组的功能。
- 堡垒机:控制台的文件传输增加分片式上传模式。
- 堡垒机:优化页面体验,减少卡顿。g
- 云管平台: 增加SmartX支持、Azure和阿里云增加同步资源。
- 全平台: 多语言完善进度90%。
- 作业平台:脚本执行速度提升2倍。
- 基础监控:增加监控模版页面,告警事件增加AI智能分析功能。
缺陷修复和功能优化¶
- 管控平台:主机管理-主机纳管自定义端口写死不生效的问题已修复。
- 管控平台:无法SSH纳管Ubuntu 24.04主机的问题已修复。
- 堡垒机:控制台大文件卡死问题已解决,增加上传文件的进度条显示。
- 全平台:已对社区版用户提出来的问题进行全方位的优化和修复。
