「JumpServer」

阅读: 评论:0

「JumpServer」

「JumpServer」

问题描述

今天原本要做别的事情,但是突然发现 JumpServer 发布新版本。并且,我们还发现优化资产树节点排序问题(这是我们比较关心的问题,2.4.4 的资产排序方式“似乎没有规律”,导致资产节点显示有些“不整齐”)。

因此,我们决定对我们的 JumpServer 服务进行升级,升级到最新的版本(2.8.2)。也许这太鲁莽,但是换个角度看:做好数据备份以后,即使升级失败,我们也能够进行回滚;此外,JumpServer 的配置不会经常变动,哪怕回滚导致数据遗失,对于我们来说是在可接受范围内的。所以,我们能够接受升级失败带来的后果。

该笔记将记录:将 JumpServer 从 2.4.4 升级 2.8.2 版本的过程,以及常见问题出来。

解决方案

每个人的部署方式很信息都不相同,我们创建该笔记是为了记录我们的升级过程,以及常见问题的解决方案,为他人提供经验与参考。

另外,此次升级的变动还是很大的,比如:从 2.6 后,统一企业版本与开源版本安装方式,企业版和社区版可以无缝切换。今后只会维护这种安装方式(通过 jmsctl.sh 管理),其他安装方式不再提供技术支持。所以,此次升级需要完成的工作比像以往那样直接。

原始部署信息

部署方式:我们的 JumpServer 2.4.4 的部署方式为 Docker 运行,使用 jms_all 镜像。这样,便于管理。

数据目录:数据目录(/srv/jumpserver/data、/srv/jumpserver/mysql)是挂载到容器外的。

其他信息:参考 1.5.6 to 2.4.4 笔记;

第一步、数据库备份(重要)

docker container stop jumpserver_2.4.4
rsync -avz /srv/jumpserver/data /srv/jumpserver/.backup/2.4.4/data
rsync -avz /srv/jumpserver/mysql /srv/jumpserver/.backup/2.4.4/mysql

至此,我们已经创建数据备份,那么之后我们便可大胆升级。不管最终结果如何,不管最终怎么失败,我们都能够利用备份数据进行还原。当然,要小心误操作而把备份数据删除。

第二步、导出数据库

docker container start jumpserver_2.4.4docker container exec -it jumpserver_2.4.4 bash -c 'mysqldump -h$DB_HOST -P$DB_PORT -u$DB_USER -p$DB_PASSWORD $DB_NAME' > /opt/jumpserver.sqlif grep -q 'COLLATE=utf8_bin' /opt/jumpserver.sql; thenecho "备份数据库字符集正确";
elsecp /opt/jumpserver.sql /opt/jumpserver_bak.sqlsed -i 's@CHARSET=utf8;@CHARSET=utf8 COLLATE=utf8_bin;@g' /opt/jumpserver.sql
fiif grep -q 'CHARSET=utf8;' /opt/jumpserver.sql; thencp /opt/jumpserver.sql /opt/jumpserver_bak.sql.1sed -i 's@CHARSET=utf8;@CHARSET=utf8 COLLATE=utf8_bin;@g' /opt/jumpserver.sql
elseecho "备份数据库字符集正确";
fidocker container stop jumpserver_2.4.4

第三步、安装 JumpServer 服务

cd /opt
yum -y install wget
wget .8.2/jumpserver-installer-v2.8.
tar -xf jumpserver-installer-v2.8.
cd jumpserver-installer-v2.8.
SECRET_KEY=                           # 从旧版本的配置文件获取后填入 (*)
BOOTSTRAP_TOKEN=                      # 从旧版本的配置文件获取后填入 (*)./jmsctl.sh install

注意事项:后面,根据提示进行选择即可,无需进行特殊设置。

第四步、导入原始数据,并启动服务

# ./jmsctl.sh stop# docker exec -it jms_mysql /bin/bash -c 'mysql -uroot -p$DB_PASSWORD'
...
mysql> drop database jumpserver;
Query OK, 88 rows affected (0.11 sec)mysql> create database jumpserver default charset 'utf8' collate 'utf8_bin';
Query OK, 1 row affected (0.02 sec)mysql> exit;
Bye# ./jmsctl.sh restore_db /opt/jumpserver.sql
Start restoring database: /opt/jumpserver.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[SUCCESS] Database recovered successfully# ./jmsctl.sh start

第五步、配置 Nginx 转发

server {listen 80;server_name demo.jumpserver;  # 自行修改成你的域名client_max_body_size 4096m;  # 上传文件大小限制location / {# 这里的 ip 是后端 JumpServer nginx 的 ipproxy_pass 127.0.0.1:8080;proxy_http_version 1.1;proxy_buffering off;proxy_request_buffering off;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_set_header X-Real-IP $remote_addr;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}
}

注意事项,我们是内网使用,因此仅简单配置 HTTP 访问。关于 Nginx 的更多设置,参考 JumpServer 文档/反向代理 文档。

最后,升级成功,登录查看!!!

此次升级,新版本的登录界面也发生变化,以及资产树的排序是有规律的。

常见问题汇总

ERROR: for XXX Container "XXX" is unhealthy.

问题描述:在启动服务时,产生如下错误信息

# ./jmsctl.sh start
Recreating jms_redis ... 
Recreating jms_redis ... done
Creating jms_core ... ERROR: for lina  Container "cd64d6d81be5" is unhealthy.ERROR: for koko  Container "cd64d6d81be5" is unhealthy.ERROR: for guacamole  Container "cd64d6d81be5" is unhealthy.ERROR: for celery  Container "cd64d6d81be5" is unhealthy.ERROR: for luna  Container "cd64d6d81be5" is unhealthy.
ERROR: Encountered errors while bringing up the project.

问题原因:容器 cd64d6d81be5 是 jms_core 容器。鉴于 jms_core 调整数据库的时间比较长,导致其他容器健康检查失败,所以出现该错误信息。

解决方法:

# docker logs -f jms_core
...
2021-03-27 01:48:57 Check service status: gunicorn -> running at 764
2021-03-27 01:48:57 Check service status: flower -> running at 770
2021-03-27 01:48:57 Check service status: daphne -> running at 772
2021-03-27 01:49:30 Check service status: gunicorn -> running at 764
...// 等待出现类似如上日志,然后重新启动服务即可# ./jmsctl.sh start

相关文章

「Jumpserver」- 升级(1.4.6-2 to latest)
「Jumpserver」- 安装(1.4.9-2)
「Jumpserver」- 升级 v1.5.6 到 v2.4.4 版本
「Jumpserver」- 升级(1.4.9 to latest)

参考文献

JumpServer 文档 / 升级文档 / docker 部署

本文发布于:2024-02-04 19:27:07,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170714736158787.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:JumpServer
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23