最完整的Jumpserver离线部署指南:从依赖到启动的全流程解析

最完整的Jumpserver离线部署指南:从依赖到启动的全流程解析

【免费下载链接】jumpserver jumpserver/jumpserver: 是一个开源的 Web 服务器和 Web 应用程序代理服务器,可以用于构建安全,高性能和易于使用的 Web 服务器和代理服务器。 【免费下载链接】jumpserver 项目地址: https://gitcode.com/GitHub_Trending/ju/jumpserver

你是否还在为内网环境无法连接互联网而发愁如何部署Jumpserver?是否在寻找一份详尽可靠的离线安装方案?本文将为你提供从环境准备到服务启动的完整离线部署流程,无需联网即可完成Jumpserver的部署与配置。读完本文后,你将能够:

  • 掌握离线环境下的依赖包准备方法
  • 理解Jumpserver的离线安装脚本工作原理
  • 独立完成从安装到启动的全流程操作

一、离线部署前的环境准备

1.1 系统要求

Jumpserver支持多种Linux发行版,在离线部署前需要确认目标服务器满足以下基本要求:

  • 操作系统:CentOS 7/8、Ubuntu 18.04/20.04 LTS
  • 内存:至少4GB RAM
  • 硬盘:至少20GB可用空间
  • 权限:需要root用户权限执行安装操作

1.2 离线安装包获取

官方提供了完整的离线安装包,你可以通过以下两种方式获取:

  1. 从拥有互联网访问权限的机器下载完整安装包,然后传输到目标服务器
  2. 使用项目提供的脚本在联网环境下预下载所有依赖,然后迁移到离线环境

相关的下载脚本可以在项目的requirements目录中找到,包括:

二、依赖包的离线准备

2.1 Debian/Ubuntu系统依赖处理

对于Debian系系统,可以使用deb_pkg.sh脚本预先下载所需的deb包。该脚本包含了所有必要的系统依赖:

#!/bin/bash
apt install \
    g++ make iputils-ping default-libmysqlclient-dev libpq-dev \
    libffi-dev libldap2-dev libsasl2-dev openssh-client sshpass pkg-config libxml2-dev \
    libxmlsec1-dev libxmlsec1-openssl libaio-dev freetds-dev freerdp2-dev

要离线使用此脚本,建议在联网的相同系统版本上执行以下命令:

# 在联网机器上下载所有依赖包但不安装
apt-get download $(cat requirements/deb_pkg.sh | grep -v '#' | tr '\n' ' ')

然后将下载的所有.deb文件复制到离线服务器的/var/cache/apt/archives/目录,即可使用dpkg -i *.deb命令批量安装。

2.2 RHEL/CentOS系统依赖处理

对于RHEL系系统,rpm_pkg.sh脚本定义了所需的RPM包:

#!/bin/bash
yum -y install \
    gcc-c++ sshpass mariadb-devel openldap-devel openssh-clients libxml2-devel \
    xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel \
    postgresql-devel freerdp-devel

在联网环境下,可以使用以下命令将所有RPM包下载到本地:

# 安装yumdownloader工具
yum install -y yum-utils

# 下载所有依赖包
yumdownloader --resolve $(cat requirements/rpm_pkg.sh | grep -v '#' | tr '\n' ' ')

将下载的RPM包复制到离线服务器后,使用以下命令创建本地yum仓库并安装:

# 创建本地仓库
createrepo /path/to/rpms

# 创建repo文件
cat > /etc/yum.repos.d/local.repo << EOF
[local]
name=Local Repository
baseurl=file:///path/to/rpms
enabled=1
gpgcheck=0
EOF

# 安装依赖
yum install -y $(cat requirements/rpm_pkg.sh | grep -v '#' | tr '\n' ' ')

三、Docker离线部署方案

如果目标服务器支持Docker,使用Docker进行离线部署会更加便捷。Jumpserver提供了完整的Dockerfile和相关脚本,可以预先构建镜像后在离线环境中使用。

3.1 构建Docker镜像

在联网环境中,使用项目提供的utils/build_docker.sh脚本构建Docker镜像:

# 克隆仓库
git clone https://gitcode.com/GitHub_Trending/ju/jumpserver
cd jumpserver

# 构建Docker镜像
bash utils/build_docker.sh

构建完成后,保存镜像为tar文件:

docker save -o jumpserver-image.tar jumpserver/jumpserver:latest

3.2 离线环境加载镜像

jumpserver-image.tar文件传输到离线服务器后,使用以下命令加载镜像:

docker load -i jumpserver-image.tar

然后使用Docker Compose启动服务。需要提前准备好docker-compose.yml文件,可以从项目仓库中获取并根据需要修改。

四、手动离线安装步骤

4.1 数据库准备

Jumpserver需要数据库支持,在离线环境中可以选择以下数据库之一:

  • SQLite:无需额外安装,适合测试环境
  • MySQL/MariaDB:需要预先在离线环境中安装配置
  • PostgreSQL:需要预先在离线环境中安装配置

数据库初始化脚本可以在项目中找到,相关SQL文件路径为utils/django_migrations.sql

4.2 应用部署

  1. 将Jumpserver源代码复制到离线服务器,可以通过U盘或其他存储设备传输

  2. 安装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
    
  3. 配置Jumpserver:

    # 复制配置文件模板
    cp config_example.yml config.yml
    
    # 编辑配置文件,设置数据库连接等信息
    vi config.yml
    
  4. 初始化数据库:

    python apps/manage.py migrate
    python apps/manage.py collectstatic --noinput
    
  5. 创建管理员账户:

    python apps/manage.py createsuperuser
    

4.3 服务启动

使用项目提供的entrypoint脚本启动服务:

bash entrypoint.sh

或者使用systemd管理服务,创建服务文件:

[Unit]
Description=Jumpserver Service
After=network.target mariadb.service

[Service]
User=root
WorkingDirectory=/path/to/jumpserver
ExecStart=/bin/bash entrypoint.sh
Restart=always

[Install]
WantedBy=multi-user.target

五、离线升级与维护

5.1 数据备份

定期备份数据是系统维护的重要部分,项目提供了utils/backup_db.sh脚本用于数据库备份:

# 使用备份脚本
bash utils/backup_db.sh

5.2 版本升级

离线环境下升级Jumpserver需要:

  1. 获取新版本源代码并传输到离线服务器
  2. 重复执行数据库迁移步骤
  3. 重启服务

升级前建议先备份数据和当前配置文件,以防出现兼容性问题。

六、常见问题解决

6.1 依赖缺失

如果安装过程中提示依赖缺失,可以使用以下命令查找提供该依赖的包:

# Debian/Ubuntu
apt-file search <缺失的文件>

# RHEL/CentOS
yum whatprovides <缺失的文件>

然后在联网环境中下载相应的包并手动安装。

6.2 服务启动失败

服务启动失败时,可以查看日志文件定位问题:

# 查看应用日志
tail -f /var/log/jumpserver/app.log

# 查看系统日志
journalctl -u jumpserver.service

七、总结

本文详细介绍了Jumpserver的多种离线安装方案,包括传统的手动安装和更便捷的Docker部署方式。通过预先准备依赖包和相关资源,可以在没有互联网连接的环境中成功部署Jumpserver。

项目中提供了丰富的脚本和工具来简化离线部署过程,关键文件路径总结如下:

选择适合自己环境的部署方案,并严格按照步骤操作,即可顺利完成Jumpserver的离线部署。如有其他问题,可以参考项目官方文档或社区寻求帮助。

【免费下载链接】jumpserver jumpserver/jumpserver: 是一个开源的 Web 服务器和 Web 应用程序代理服务器,可以用于构建安全,高性能和易于使用的 Web 服务器和代理服务器。 【免费下载链接】jumpserver 项目地址: https://gitcode.com/GitHub_Trending/ju/jumpserver

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值