断网不慌:Jumpserver离线部署完整实战攻略,内网环境一次装通 断网不慌Jumpserver离线部署完整实战攻略内网环境一次装通【免费下载链接】jumpserverJumpServer is an open-source Privileged Access Management (PAM) platform that provides DevOps and IT teams with on-demand and secure access to SSH, RDP, Kubernetes, Database and RemoteApp endpoints through a web browser.项目地址: https://gitcode.com/GitHub_Trending/ju/jumpserver在生产内网、政企机房或涉密环境里服务器不能联网是常态而堡垒机PAM恰恰又常部署在这些与世隔绝的地方。很多运维同学第一次接到在不联网的机器上装 Jumpserver这类任务时第一反应是依赖从哪来镜像怎么拉其实 Jumpserver 的开源项目早就内置了一整套离线部署的暗门只要在联网机器上把依赖提前打包剩下的事就是耐心搬运。本文就带你完整走一遍这条离线部署之路。一、先认清困局为什么离线部署是硬需求所谓离线部署就是目标服务器全程不接触公网所有安装材料都得人肉送进去。这意味着三件事必须提前想清楚系统依赖编译 gcc、连接数据库的驱动库、LDAP 相关库这些不能联网装Python 依赖requirements.txt 里那一长串包必须提前下载成文件Docker 镜像如果走容器路线也要提前 build 好打成 tar 包背进去。好消息是Jumpserver 项目把这些准备工作对应的脚本都放在了仓库里你不需要从零摸索照着套路走即可。二、三套方案速览动手前先选对路离线部署 Jumpserver主流就三条路先看对比再决定别一上来就埋头执行方案前置条件优点缺点适合场景源码手动部署Python pip可控性最强、易排查步骤多、依赖繁琐服务器资源紧张、要自定义Docker 镜像部署支持 Docker环境隔离、升级简单离线需先构建并传输镜像内网已普及 Docker官方 All-in-One跟随官方脚本一键式、省心灵活性较低标准环境快速交付如果你追求一次装完、长期稳定源码手动部署的灵活性最好下面的实战就以它为主线展开Docker 路线会单列一节说明。三、实战第一步离线安装包先在联网机器上打好包离线部署的全部技巧其实都浓缩在搬运二字上。先把仓库克隆到一台联网的机器上然后按目标系统类型准备依赖。Debian/Ubuntu 系项目的 requirements/deb_pkg.sh 脚本里写好了全部需要的系统包在联网机器上执行apt-get download $(grep -v # requirements/deb_pkg.sh | tr \n )下载出的所有.deb文件拷到离线服务器的/var/cache/apt/archives/目录之后即可用dpkg -i *.deb本地安装。RHEL/CentOS 系同理先安装yum-utils再借助 requirements/rpm_pkg.sh 逐个拉包yum install -y yum-utils yumdownloader --resolve $(grep -v # requirements/rpm_pkg.sh | tr \n )把 RPM 包传到内网机器后用createrepo建一个本地 yum 仓库写个.repo指向本地目录再yum install对应包名即可全程不碰外网。提醒这些系统库大多是为 Python 源码编译准备的比如libldap2-dev、freerdp-devel漏了哪一个后面 pip 装包时就会在编译环节报错所以这一步别偷懒。四、实战第二步Python 依赖用 pip 一次性打包带走系统依赖就位后轮到 Python 世界。这一步的思路同样是联网下载、离线安装联网机器上下载pip download -r requirements/requirements.txt -d /path/to/offline_packages离线机器上安装pip install --no-index --find-links/path/to/offline_packages -r requirements/requirements.txt--no-index是关键参数它禁止 pip 去访问 PyPI只认本地目录里的轮子文件。这样即使目标机器没有任何外网权限依赖也能完整就位。五、实战第三步数据库与配置把地基打牢Jumpserver 对数据库的依赖不强SQLite 足够测试生产环境建议 MySQL/MariaDB 或 PostgreSQL。离线环境下数据库要提前装好初始化所需的 SQL 可在 utils/django_migrations.sql 中找到参考。接下来进入应用本身的初始化流程# 生成配置文件核心步骤别漏 cp config_example.yml config.yml # 按内网实际情况编辑数据库地址、端口、密钥等信息 vi config.yml # 初始化数据库表结构 python apps/manage.py migrate # 收集静态文件前端页面才能正常渲染 python apps/manage.py collectstatic --noinput # 创建管理员账号 python apps/manage.py createsuperuserconfig.yml是整个系统的命门里面的 SECRET_KEY、数据库连接串、Redis 地址都要仔细核对写错一个字符后面启动就会连环报错。六、实战第四步启动服务收尾验收初始化完成后用项目自带的入口脚本拉起服务即可bash entrypoint.sh脚本内部会调用仓库根目录的jms启动器依次拉起 core、celery 等核心组件。如果你想自定义启动行为也可以直接python jms start指定服务名。想让它开机自启、出问题时自动重启写一个 systemd 服务文件指向 entrypoint 脚本即可注意WorkingDirectory一定要指到项目根目录否则相对路径会全部失效。验证是否成功浏览器访问http://服务器IP:8080能出现登录页并用createsuperuser创建的账号登入就说明离线部署大功告成。七、容器派的选择Docker 离线部署三板斧如果内网机器装好了 Docker容器路线会让你省下大半力气在联网机器上用 utils/build_docker.sh 构建镜像bash utils/build_docker.sh 版本号把镜像导出为 tardocker save -o jumpserver-image.tar 镜像名:版本号传到离线机器上docker load -i jumpserver-image.tar配合 docker-compose 一次性拉起数据库、Redis 和 Jumpserver 全栈。容器方案的额外好处是升级时只需替换镜像业务数据都在挂载卷里容错率高很多。八、避坑锦囊离线部署最容易翻车的五个点依赖版本漂移pip download默认解析最新版本建议在联网机器上先锁定 requirements 版本再下载否则离线机器装不上。系统包与 Python 版本不匹配编译类依赖如 freerdp、ldap 开发库必须与你目标机的 Python 小版本兼容装前先python --version确认。配置文件被遗漏config.yml必须在首次启动前生成否则jms启动器会直接退出并提示找不到配置文件。防火墙与端口内网机器常常默认封闭端口记得放行 8080 和 SSH 相关端口不然页面打不开还误以为是安装失败。忘记数据备份生产环境务必定期备份直接用项目自带的 utils/backup_db.sh 就能把数据库 dump 到指定目录配合 cron 定时执行更稳妥。九、总结与下一步行动离线部署 Jumpserver 并没有想象中那么神秘核心心法就八个字联网打包、断网搬运。系统依赖、Python 依赖、Docker 镜像三大件提前在联网机器上准备齐全离线服务器上就只剩复制粘贴 初始化。给你一份可执行的行动清单确认目标机系统类型与 Python 版本联网机器克隆仓库按本文章节三、四打好全部依赖包传输到内网装系统依赖 → 装 Python 依赖 → 生成 config.ymlmigrate collectstatic createsuperuser启动、登录、备份走通全流程。一步到位不难难的是把每一步的为什么想明白。现在你已经拿到了完整地图剩下的就是动手实践——祝你一次装通顺利上线。【免费下载链接】jumpserverJumpServer is an open-source Privileged Access Management (PAM) platform that provides DevOps and IT teams with on-demand and secure access to SSH, RDP, Kubernetes, Database and RemoteApp endpoints through a web browser.项目地址: https://gitcode.com/GitHub_Trending/ju/jumpserver创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考