一、升级前数据梳理
1、账号
因 JumpServer V3 版本剔除了原本的系统用户功能,将资产与账号直接绑定,故升级前需保证每一台资产绑定的系统账号的用户名不重复,即每一个资产只可以保留一个同名账号。
不可平滑升级示例:
不可平滑升级的原因:
此类型升级后可能导致的情况如下:①、V3 版本中一个资产仅仅可创建一个账号,即资产账户页面不能存在同名账户。②、因资产页面不能存在同名账户,当升级后仅仅保留一个nopasswd账号;但原环境中存在两个nopasswd账户,升级程序可能仅会存储识别到的第一个nopasswd账户密码,有一定概率导致一个密码丢失而无法登录对应资产。
可平滑升级示例:
升级后界面如下:
2、数据库
因JumpServer V3版本将之前版本中的应用包括远程应用、数据库、K8S全部合并到资产中,删除了原有的应用概念,统一在资产管理页面进行管理。升级过程中会对资产与应用进行合并,所以升级前需要确保数据库应用、K8S应用与原有的主机资产没有重名。当出现数据库应用、K8S应用与原有的主机资产重名时,数据库资产信息会发生丢失问题。
错误示例:
此情况下,升级至V3版本中会造成数据库数据完全丢失的问题。
二、升级注意事项
1、保存数据
JumpServer V3 版本因底层重构的问题,导致改密计划、收集用户、远程应用相关数据升级过程中均不会保留(包括任务信息以及任务日志),所以相关信息(任务详细信息以及任务日志)需要在升级前进行保存。
2、功能信息
JumpServer V3版本中去除了部分功能,例如:动态用户;推送用户时指定家目录等;域用户;CAS、钉钉等对接并绑定【社区版】。以上功能新版本暂不支持,请确定升级后对环境没有影响后进行升级。后续版本迭代中可能会重新支持,可关注官方更新日志。
3、数据备份与还原
因升级过程中部分功能重构和部分功能删除的原因,一定量的数据升级后并不会保存,所以需要在升级前重点备份数据库SQL文件以及config.txt配置文件,备份命令如下:
#JumpServer服务器上执行数据库备份命令
jmsctl backup_db
#JumpServer连接的数据库服务器上执行备份命令
mysqldump -uroot -p jumpserver > jumpserver.sql
#JumpServer服务器上执行配置文件备份命令
cp /opt/jumpserver/config/config.txt /opt/jumpserver/config/config.txtbak
4、加密信息
JumpServer V2至V3升级时,需要程序自动将原系统用户表中的密码读出并重新写入到资产表中的账户密码中。此过程中,因系统用户的密码信息由config.txt配置文件中的SECRET_KEY与BOOTSTRAP_TOKEN配置项加密后进行存储,所以升级过程中需保证SECRET_KEY与BOOTSTRAP_TOKEN配置项与原环境保持一致,否则会出现升级后账户密码丢失的情况。
三、升级操作
升级操作命令如下:
#下载对应安装包
wget 'https://cdn0-download-offline-installer.fit2cloud.com/jumpserver/jumpserver-offline-installer-v3.2.1-amd64-291.tar.gz?Expires=1684762241&OSSAccessKeyId=LTAI5tNm6eCXpZo6cgoJet2h&Signature=CYjg3x9%2BaYKq8PhrKvnM0E%2FhIAo%3D'
#解压对应安装包
tar xf jumpserver-offline-installer-v3.2.1-amd64-291.tar.gz
#进入安装目录
cd jumpserver-offline-installer-v3.2.1-amd64-291
#拉取新版本镜像
./jmsctl.sh load_image
#升级
./jmsctl.sh upgrade
#启动新版本
./jmsctl.sh start