TypechoJoeTheme

Weclome to TTP

统计

Jumpserver迁移升级

TTP博主
2022-07-12
/
0 评论
/
119 阅读
/
795 个字
/
百度已收录
07/12
本文最后更新于2022年07月12日,已超过79天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

Jumpserver迁移升级


由于公司现有的jumpserver服务器带宽太低,传输文件慢,然后决定迁移Jumpserver到公司内网服务器中,顺便做一个版本升级到最新版(这里为v2.23.2)。

  • 新版本的jumpserver采用官方jmsctl离线包部署方式,迁移后平台中的用户列表和资产列表数据不能丢失
    • 使用外部MySQL数据库和Redis。

步骤

  1. 首先在老jumpserver服务器上,备份数据库
./jmsctl.sh backup_db
  1. 验证备份的sql文件的字符集
mv /opt/jumpserver/backup_db/jumpserver-v2.16.1-2022-07-06_10:57:39.sql  /opt/jumpserver.sql

# 如果你不需要或不想处理数据库字符集可以跳过此步骤, 保证迁移前后的数据库字符集一样即可. 
if grep -q 'COLLATE=utf8_bin' /opt/jumpserver.sql;then
    cp /opt/jumpserver.sql /opt/jumpserver_bak.sql
    sed -i 's@ COLLATE=utf8_bin@@g' /opt/jumpserver.sql
    sed -i 's@ COLLATE=utf8_bin@@g' /opt/jumpserver.sql
else
    echo '备份数据库的字符集正确';
fi
  1. 然后查看并保存好老jumpserver配置文件中,SECRET_KEY和BOOTSTRAP_TOKEN的值
    • 这两项配置,老jumpserver和新jumpserver要保持一致。
  2. 部署新Jumpserver,下载官方的离线安装包:https://community.fit2cloud.com/#/download/jumpserver/v2-23-2
  3. 然后上传到服务器上,并解压离线安装包
tar -xvf jumpserver-offline-installer-v2.23.2-amd64-26.tar.gz

cd jumpserver-offline-installer-v2.23.2-amd64-26
  1. 配置新jumpserver服务器上的MySQL和redis
mysql -uroot -p<root密码>

create database default charset 'utf8';
create user 'jumpserver'@'%' identified by 'jumpserver';
grant all privileges on jumpserver.* to 'jumpserver'@'%';
exit
vim /usr/local/redis/redis.conf

requirepass redis_test
  1. 根据自己的情况,修改配置模板文件
# 以下设置如果为空系统会自动生成随机字符串填入
## 迁移请修改 SECRET_KEY 和 BOOTSTRAP_TOKEN 为原来的设置 
## 完整参数文档 https://docs.jumpserver.org/zh/master/admin-guide/env/ 
## 安装配置, amd64 默认使用华为云加速下载, arm64 请注释掉DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
# DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
VOLUME_DIR=/opt/jumpserver 
DOCKER_DIR=/var/lib/docker 
SECRET_KEY= xxxxxxxxxx(SECRET_KEY要和老jumpserver服务保持一致)
BOOTSTRAP_TOKEN= xxxxxxx(BOOTSTRAP_TOKEN要和老jumpserver保持一致)
LOG_LEVEL=ERROR 
## MySQL 配置, USE_EXTERNAL_MYSQL=1 表示使用外置数据库, 请输入正确的 MySQL 信息 
USE_EXTERNAL_MYSQL=1
DB_HOST=10.40.254.78
DB_PORT=63306 
DB_USER=jumpserver
DB_PASSWORD=jumpserver
DB_NAME=jumpserver 
## Redis 配置, USE_EXTERNAL_REDIS=1 表示使用外置数据库, 请输入正确的 Redis 信息 
USE_EXTERNAL_REDIS=1
REDIS_HOST=10.40.254.78
REDIS_PORT=6379 
REDIS_PASSWORD=redis_test
## Compose 项目设置, 如果 192.168.250.0/24 网段与你现有网段冲突, 请修改然后重启 JumpServer 
COMPOSE_PROJECT_NAME=jms 
COMPOSE_HTTP_TIMEOUT=3600 
DOCKER_CLIENT_TIMEOUT=3600 
DOCKER_SUBNET=192.168.250.0/24 
## IPV6 设置, 容器是否开启 ipv6 nat, USE_IPV6=1 表示开启, 为 0 的情况下 DOCKER_SUBNET_IPV6 定义不生效 
USE_IPV6=0 
DOCKER_SUBNET_IPV6=fc00:1010:1111:200::/64 
## 访问配置 
HTTP_PORT=80 
SSH_PORT=2222 
MAGNUS_MYSQL_PORT=33060 
MAGNUS_MARIADB_PORT=33061 
## HTTPS 配置, 参考 https://docs.jumpserver.org/zh/master/admin-guide/proxy/ 配置 # 
USE_LB=1 
# HTTPS_PORT=443 
# SERVER_NAME=your_domain_name 
# SSL_CERTIFICATE=your_cert 
# SSL_CERTIFICATE_KEY=your_cert_key 
## Nginx 文件上传大小 
CLIENT_MAX_BODY_SIZE=4096m 
## Task 配置, 是否启动 jms_celery 容器, 单节点必须开启 
USE_TASK=1 
## XPack, USE_XPACK=1 表示开启, 开源版本设置无效 
USE_XPACK=0 
RDP_PORT=3389 
MAGNUS_POSTGRE_PORT=54320 
TCP_SEND_BUFFER_BYTES=4194304 TCP_RECV_BUFFER_BYTES=6291456 
# Core 配置, Session 定义, SESSION_COOKIE_AGE 表示闲置多少秒后 session 过期, SESSION_EXPIRE_AT_BROWSER_CLOSE=True 表示关闭浏览器即 session 过期 # 
SESSION_COOKIE_AGE=86400 SESSION_EXPIRE_AT_BROWSER_CLOSE=True 
# Koko Lion XRDP 组件配置 
CORE_HOST=http://core:8080 JUMPSERVER_ENABLE_FONT_SMOOTHING=True 
## 终端使用宿主 HOSTNAME 标识 
SERVER_HOSTNAME=${HOSTNAME} 
# 额外的配置 CURRENT_VERSION=
  1. 进入jumpserver安装程序,进行安装
./jmsctl.sh install 




       ██╗██╗   ██╗███╗   ███╗██████╗ ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗
       ██║██║   ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗
       ██║██║   ██║██╔████╔██║██████╔╝███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝
  ██   ██║██║   ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗
  ╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║     ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║
   ╚════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝

                                   Version:  v2.23.2  

1. 检查配置文件
配置文件位置: /opt/jumpserver/config
/opt/jumpserver/config/config.txt    [ √ ]
/opt/jumpserver/config/nginx/cert/server.crt     [ √ ]
/opt/jumpserver/config/nginx/cert/server.key     [ √ ]
完成

>>> 安装配置 Docker
1. 安装 Docker
完成

2. 配置 Docker
完成

3. 启动 Docker
完成

>>> 加载 Docker 镜像
完成

>>> 安装配置 JumpServer
1. 配置加密密钥
完成

2. 配置持久化目录
是否需要自定义持久化存储, 默认将使用目录 /data/jumpserver/data? (y/n)  (默认为 n): n
完成

3. 配置 MySQL
....
完成

4. 配置 Redis
....
完成

5. 配置对外端口
....
完成

6. 初始化数据库
Creating network "jms_net" with driver "bridge"
Creating jms_core ... done
......
完成

>>> 安装完成了
1. 可以使用如下命令启动, 然后访问
cd /data/jumpserver/jumpserver-offline-installer-v2.23.2-amd64-26
./jmsctl.sh start

2. 其它一些管理命令
./jmsctl.sh stop
./jmsctl.sh restart
./jmsctl.sh backup
./jmsctl.sh upgrade
更多还有一些命令, 你可以 ./jmsctl.sh --help 来了解

3. Web 访问
http://10.40.250.170:8084
默认用户: admin  默认密码: admin

4. SSH/SFTP 访问
ssh -p2222 admin@10.40.250.170
sftp -P2222 admin@10.40.250.170

5. 更多信息
我们的官网: https://www.jumpserver.org/
我们的文档: https://docs.jumpserver.org/
  1. 然后启动jmsctl服务测试,访问http://localhost:8084
./jmsctl start

Creating network "jms_net" with driver "bridge" 
Creating jms_mysql ... done 
Creating jms_redis ... done
Creating jms_core ... done 
Creating jms_celery ... done
Creating jms_koko ... done
Creating jms_magnus ... done
Creating jms_web ... done
  1. 访问正常后,停掉服务,删除jumpserver数据库,再创建一个空的jumpserver数据库,还原我们之前备份的老数据库
./jmsctl stop

mysql -uroot -p<root密码>

drop database jumpserver;
create database jumpserver default charset 'utf8';
grant all privileges on jumpserver.* to 'jumpserver'@'%';
exit
./jmsctl.sh restore_db  /opt/jumpserver.sql

开始还原数据库: /opt/jumpserver.sql
Creating jms_core ... done
mysql: [Warning] Using a password on the command line interface can be insecure.
[SUCCESS] 数据库恢复成功!
  • 恢复数据库成功后,再启动jumpserver
    • 还原数据库后,再启动可能会报错,但是无需担心,等待jumpserver初始化完成后,再启动即迁移成功
jumpserver
朗读
赞(0)
版权属于:

Weclome to TTP

本文链接:

https://ttpc.asia/archives/175/(转载时请注明本文出处及文章链接)

评论 (0)
本篇文章评论功能已关闭
IP信息

标签云

最新回复

暂无回复