51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【V3】JumpServer 如何回退版本?

一、概述 {#%E4%B8%80%E3%80%81%E6%A6%82%E8%BF%B0}

本文主要介绍在 JumpServer 升级失败或者升级后不满足用户使用场景的情况下如何回退版本。本文档适用于 V2 与 V3 版本。

二、升级前备份 {#%E4%BA%8C%E3%80%81%E5%8D%87%E7%BA%A7%E5%89%8D%E5%A4%87%E4%BB%BD}

在执行升级操作时会备份 config.txt 配置文件以及 JumpServer 对应的数据库中的 SQL 文件。

也可在备份时手动备份相关文件:

  • 数据库文件备份:jmsctl backup_db 或 mysqldump -h 数据库 IP 或域名 -u 数据库用户名 -p jumpserver (数据库库名) > jumpservre- 版本号-时间 .sql

版本回退必须的两个文件:

  • config.txt:该文件中包含基础的数据库连接信息以及数据库的加密码。

  • jumpserver- 版本号-时间 .sql:该文件中包含了升级之前的数据库中的所有数据。

三、提醒 {#%E4%B8%89%E3%80%81%E6%8F%90%E9%86%92}

版本回退因为是根据备份的 SQL 文件进行回退的,所以在升级版本后增加的用户、资产、授权、会话信息等无法同步,请知悉。

四、操作回退 {#%E5%9B%9B%E3%80%81%E6%93%8D%E4%BD%9C%E5%9B%9E%E9%80%80}

在操作回退先停止 JumpServer 的所有服务。

#JumpServer 服务器上
jmsctl stop

JumpServer 版本回退需要涉及到数据库中数据回退与 JumpServer 服务应用回退。

1、数据库回退 {#1%E3%80%81%E6%95%B0%E6%8D%AE%E5%BA%93%E5%9B%9E%E9%80%80}

在进行数据库回退时可以选择两种方式进行:通过命令手动进行回退操作与使用 JumpServer 命令工具进行回退。

①、手动回退 {#%E2%91%A0%E3%80%81%E6%89%8B%E5%8A%A8%E5%9B%9E%E9%80%80}

1、登录MySQL 数据库主机中或者进入到 MySQL 容器中,连接 MySQL 服务,;

#数据库外置
mysql -h数据库 IP 或域名 -u数据库用户名 -p   
#数据库内置
docker exec -it jms_mysql /bin/bash #数据库的账号与密码在 /opt/jumpserver/config/config.txt 中,或者可进入到容器中执行 env 查看具体的参数
# MARIADB_ROOT_PASSWORD 该参数要根据版本区分,进入容器中查看
 mysql -uroot -p$MARIADB_ROOT_PASSWORD

数据库密码可以查看 JumpServer 配置文件 config.txt 中的数据库部分。

################################# MySQL 配置 ##################################
# 外置 MySQL 需要输入正确的 MySQL 信息, 内置 MySQL 系统会自动处理
# (*) 密码部分不得包含单引号和双引号
#
DB_HOST=mysql
DB_PORT=3306
DB_USER=root
DB_PASSWORD=b27ddf5fdc5ad9f754e62c0f17
DB_NAME=jumpserver

如果外置 MySQL 需要开启 TLS/SSL 连接, 参考 https://docs.jumpserver.org/zh/v3/installation/security_setup/mysql_ssl/
=======================================================================================================



`DB_USE_SSL=true`

2、查看数据库创建命令

#数据库外置与内置

root@jms_mysql:/# mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \\g.
Your MariaDB connection id is 230559
Server version: 10.6.5-MariaDB-1:10.6.5+maria\~focal mariadb.org binary distribution


Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.


Type 'help;' or '\\h' for help. Type '\\c' to clear the current input statement.


MariaDB \[(none)\]\> show create database jumpserver;
+------------+------------------------------------------------------------------------+
\| Database   \| Create Database                                                        \|
+------------+------------------------------------------------------------------------+
\| jumpserver \| CREATE DATABASE `jumpserver` /\*!40100 DEFAULT CHARACTER SET utf8mb3 \*/ \|
+------------+------------------------------------------------------------------------+
1 row in set (0.000 sec)

`MariaDB [(none)]>
`

3、删除原本的数据库(++执行改操作前需确保有备份 SQL 文件,谨慎操作++

#数据库外置与内置
MariaDB [(none)]> drop database jumpserver;

4、数据库内置时,需要将备份的 SQL 文件复制到 jms_mysql 容器中,然后还原数据库。

#拷贝数据库备份文件到dcoker
[root@Test4LinuxRemoteApp]# docker cp /data/jumpserver/db_backup/jumpserver-v3.10.6-2024-05-15_10:53:54.sql jms_mysql:/opt
Successfully copied 1.52MB to jms_mysql:/opt

5、新建原本的数据库,并还原原本的 SQL 文件。

注:请注意创建数据库的命令;比较新的 MySQL 或 MARIADB 数据库例如:MySQL 8.0 版本时使用 utf8mb3 编码;在比较旧的数据库版本例如:MySQL 5.7 版本时,使用 utf8 编码方式,回退时请注意。

#数据库外置与内置
#复制查询到的创建数据库的命令并执行;
MariaDB [(none)]> CREATE DATABASE `jumpserver` /*!40100 DEFAULT CHARACTER SET utf8mb3 */;
Query OK, 1 row affected (0.001 sec)
`MariaDB [(none)]> use jumpserver;
Database changed
MariaDB [jumpserver]> source /root/jumpserver-v3.5.0-8-14.sql;`

手动还原数据库完成!

②、JumpServer 命令回退 {#%E2%91%A1%E3%80%81jumpserver-%E5%91%BD%E4%BB%A4%E5%9B%9E%E9%80%80}

在 JumpServer 服务器中执行命令工具直接回退数据库。

首选需要手工删除已存在的 JumpServer 数据库,这样可以避免因为升级过程中已创建的新表而给后面升级造成问题。

#数据库外置与内置
MariaDB [(none)]> drop database jumpserver;

使用 JumpServer 命令工具完成数据库回退。

[root@jumpserver-v3 ~]# jmsctl restore_db /root/jumpserver-v3.5.0-8-14.sql

2、服务回退 {#2%E3%80%81%E6%9C%8D%E5%8A%A1%E5%9B%9E%E9%80%80}

进入到原版本的安装包目录中,使用启动命令重新启动即可。如删除了原版本的镜像文件,需要重新拉取。

#JumpServer 服务器上的操作
[root@jumpserver-v3 ~]# cd /opt/jumpserver-offline-release-v3.5.0-amd64/
#拉取版本镜像
[root@jumpserver-v3 jumpserver-offline-release-v3.5.0-amd64]# ./jmsctl.sh load_image
#重新启动
[root@jumpserver-v3 jumpserver-offline-release-v3.5.0-amd64]# ./jmsctl.sh start

查看服务启动是否成功


五、验证数据可用性 {#%E4%BA%94%E3%80%81%E9%AA%8C%E8%AF%81%E6%95%B0%E6%8D%AE%E5%8F%AF%E7%94%A8%E6%80%A7}

1、验证版本信息

版本回退成功后,需要查看对应的版本信息【 V2 版本在登陆后的页面左下角查看,V3 在右上角的关于中查看】

2、验证资产数量、授权数量

切换至全局组织中,查看资产与授权的详细数量。【社区版无组织概念,即查看仪表盘页面即可。】

3、验证功能信息

回退成功后,验证功能是否可用。

赞(0)
未经允许不得转载:工具盒子 » 【V3】JumpServer 如何回退版本?