去年5月,因为做等保三级的关系,6年来第一次安装jumpserver。现在公司没钱了,要把之前单独作为堡垒机的ECS服务器下线,于是,我选择用图片服务器让它们并行。
去年安装的版本是v2.10.1,昨天再看官网,已经更新到v2.24.0
为防万一,我先是在VMware Workstation上安装最新的版本,把数据库备份文件导入,都是成功的。
但是,到最后一步执行启动(./jmsctl.sh start)时,就会报错。
Creating network "jms_net" with driver "bridge"
Creating jms_mysql ... done
Creating jms_redis ... done
Creating jms_core ... done
ERROR: for celery Container "76b2e315f69d" is unhealthy.
ERROR: for lion Container "76b2e315f69d" is unhealthy.
ERROR: for koko Container "76b2e315f69d" is unhealthy.
ERROR: for web Container "76b2e315f69d" is unhealthy.
ERROR: Encountered errors while bringing up the project.
和官方文档(https://docs.jumpserver.org/zh/master/faq/upgrade/)提到的第2种错误一致,但是,给的解决方案完全扯淡。必应了一番后,有人提到是资源不足,可以把docker的配置调低。
但是,虚拟机我的配置是4G内存,这样都低实在有些说不过去。
弄到晚上8点半,已经准备放弃。实在不行,就不迁移了,这台ECS服务器1个月不就200多块钱嘛。
但是,一想到自己连jumpserver迁移都搞不定,实在有些说不过去。
今天早上醒来,决定还是先在当前的jumpserver上升级到最新版本,然后再迁移。如果还不行,就在图片服务器上直接安装最新的版本,之前的历史记录不要了。反正目前用jumpserver的就1个开发。
上午9点半开始搞。
官方文档的升级说明很清楚,就几行命令,“在线升级”更简单。但是,在执行升级过程中,下面这部分输出让我心里总算有底了。
3. 备份数据库
正在备份...
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[SUCCESS] 备份成功! 备份文件已存放至: /opt/jumpserver/db_backup/jumpserver-v2.24.0-2022-07-26_09:49:58.sql
4. 备份配置文件
备份至 /opt/jumpserver/db_backup/config-v2.24.0-2022-07-26_09:50:01.conf
5. 进行数据库变更
表结构变更可能需要一段时间, 请耐心等待
检测到 JumpServer 正在运行, 是否需要关闭并继续升级? (y/n) (默认为 y):
昨天报错后,通过执行命令:
docker logs -f jms_core --tail 200
错误输出给我的感觉,好像也是数据库什么东西已存在之类的。只是,当时大量输出都是python什么的。
不过,升级完成后,web访问的端口竟然给我变了。从原来的8443没有任何说明就成了8080
在虚拟机拉回昨天的快照,再安装1遍新版本jumpserver,没有使用之前的数据库备份,而是重新生成1个备份文件,并导入到新版本。