2、jumpserver本地重新部署
版本: jumpserver-installer-v2.10.0
2.1 参考文档
https://docs.jumpserver.org/zh/master/install/migration/
2.2 当前环境
1 默认:
(1) 镜像存储路径: /var/lib/docker/
(2) volume存储路径: /opt/jumpserver/
存储容器的日志,录像、redis的dump文件等数据。
(3) 配置文件(重要): /opt/jumpserver/config/
存储容器的主配置文件,全局设置配置。
(4) db备份存储路径: /opt/jumpserver/db_backup/
使用./jmsctl.sh backup_db命令备份数据库的存储位置。
(5) 容器启动路径(重要): /opt/jumpserver-installer-v2.10.0/ # v2.10.0表示当前jumpserver的版本号
(6) 使用内置数据库
2 当前
(1) 镜像存储路径: /home/local/jumpserver-docker-storage/
(2) volume存储路径: /home/local/jumpserver-storage/
(6) 使用外置数据库(版本MySQL5.7)
2.3 恢复步骤
1 停止docker容器
# cd /opt/jumpserver-installer-v2.10.0/
# ./jmsctl.sh close
# docker stop jms_redis
2 备份数据库
(1) 方法一
# /opt/jumpserver-installer-v2.10.0/jmsctl.sh backup_db
(2) 方法二
# 从 /opt/jumpserver/config/config.txt 中获取mysql连接信息
# mysqldump -h127.0.0.1 -P3306 -ujumpserver -pjumpserver jumpserver > /opt/jumpserver_20211009.sql
(3)备份排错
1) 因为我使用的是mysql5.7,在使用非root用户进行数据库备份时,会报如下错误:
mysqldump: Error: 'Access denied; you need (at least one of) the PROCESS privilege(s) for this operation' when trying to dump tablespaces
2) 解决办法:
# 使用root用户登录mysql,然后为jumpserver用户进行如下发赋权
# mysql -uroot -proot
mysql> GRANT PROCESS ON *.* TO 'jumpserver'@'*';
mysql> flush privileges;
3 备份相关数据
# cd /opt/
# cp -a jumpserver/ jumpserver_20211009/
# cp -a jumpserver-installer-v2.10.0/ jumpserver-installer-v2.10.0_20211009/
# mv jumpserver-storage/ jumpserver-storage_20211009/
4 卸载jumpserver
# cd /opt/jumpserver-installer-v2.10.0/
# ./jmsctl.sh uninstall
5 删除旧数据库并创建新的空库
# mysql -uroot -proot
mysql> drop database jumpserver;
mysql> create database jumpserver default charset 'utf8';
mysql> exit;
6 重新安装相同版本的jumpserver
# cd /opt/
# rm -rf jumpserver-installer-v2.10.0/ jumpserver/
# yum -y install wget
# wget https://github.com/jumpserver/installer/releases/download/v2.10.0/jumpserver-installer-v2.10.0.tar.gz
# tar -xzf jumpserver-installer-v2.10.0.tar.gz
# cd jumpserver-installer-v2.10.0/
# vim config-example.txt # 修改下面的SECRET_KEY、BOOTSTRAP_TOKEN配置即可
# 修改下面选项, 其他保持默认
### 数据持久化目录, 安装完成后请勿随意更改, 可以使用其他目录如: /data/jumpserver
VOLUME_DIR=/opt/jumpserver
### 注意: SECRET_KEY 与旧版本不一致, 加密的数据将无法解密
# Core 配置
### 启动后不能再修改,否则密码等等信息无法解密
SECRET_KEY= # 从旧版本的配置文件获取后填入 (*)
BOOTSTRAP_TOKEN= # 从旧版本的配置文件获取后填入 (*)
LOG_LEVEL=ERROR
# SESSION_COOKIE_AGE=86400
SESSION_EXPIRE_AT_BROWSER_CLOSE=true # 关闭浏览器后 session 过期
# 交互参数设置(我这里是在官网上找的默认安装图片,具体操作按照标红的注释进行)
7 启动jumpserver相关容器,启动成功后再移除容器
# cd /opt/jumpserver-installer-v2.10.0/
# ./jmsctl.sh start
# ./jmsctl.sh stop
8 删除数据库
# mysql -uroot -proot
mysql> drop database jumpserver;
mysql> create database jumpserver default charset 'utf8';
mysql> exit
9 还原数据库
(1) 方法一
# cd /opt/jumpserver-installer-v2.10.0/
# ./jmsctl.sh restore_db /opt/jumpserver_20211009.sql
(2) 方法二
# mysql -h127.0.0.1 -P3306 -ujumpserver -pjumpserver jumpserver < /opt/jumpserver_20211009.sql
10 还原数据
# cd /home/local/
# mv jumpserver-storage jumpserver-storage_backup
# mv jumpserver-storage_20211009/ jumpserver-storage/
11 启动jumpserver相关容器
# cd /opt/jumpserver-installer-v2.10.0/
# ./jmsctl.sh restart
# ./jmsctl.sh status