JumpServer 安装部署指南
本文档详细记录了 JumpServer 安装部署的过程、核心脚本功能说明以及后续管理使用提示,方便运维人员快速查阅和二次安装。
1. 前提条件
操作系统要求:
仅支持 Linux 系统,不支持 Darwin(macOS)。脚本内对 OS 类型进行了判断,若检测为 Darwin,则会中止执行。必备工具:
脚本会自动检测并安装以下工具:curl
wget
tar
iptables
若系统中未安装上述命令,会尝试根据所使用的包管理器(dnf、yum、apt、zypper、apk)自动安装,不存在则报错退出。
网络要求:
确保服务器能够访问外部网络,以便下载脚本和安装包。
2. 脚本说明与准备工作
2.1 下载官方安装脚本
在 JumpServer 服务器上执行以下命令,下载官方安装脚本并保存为 install.sh
:
# 下载官方脚本文件
curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh >> ./install.sh
ls
cat install.sh
2.2 脚本结构解析
定义变量
VERSION
当前版本号(例如v4.8.1
)。DOWNLOAD_URL
下载安装包的基础 URL。
安装依赖函数:install_soft
根据系统内置的包管理器(dnf、yum、apt、zypper、apk),检测并安装缺失的软件包;同时针对 apk 的情况,额外安装 gettext-dev
和 python3
,确保依赖完整。
依赖检查函数:prepare_install
遍历检查所需的工具(curl、wget、tar、iptables),若不存在则调用 install_soft
自动安装。
获取安装器函数:get_installer
- 进入
/opt
目录,在该目录下创建或使用jumpserver-installer-${VERSION}
文件夹。 - 使用
wget
下载相应版本的安装包(tar.gz 格式),并在 60 秒内限时下载。 - 下载成功后解压安装包至
/opt
目录,解压失败则清理并退出提示错误。
配置与启动函数:config_installer
- 进入安装包所在目录
/opt/jumpserver-installer-${VERSION}
。 - 修改配置示例文件,将
# DOCKER_IMAGE_MIRROR=1
替换为DOCKER_IMAGE_MIRROR=1
,启用 Docker 镜像加速。 - 依次调用
./jmsctl.sh install
进行安装配置,再调用./jmsctl.sh start
启动服务。
主程序 main
- 判断是否在 Darwin 系统下运行(若是则退出)。
- 执行依赖检查、下载安装包及配置安装步骤。
脚本结构如下:
#!/usr/bin/env bash
VERSION=v4.8.1
DOWNLOAD_URL=https://resource.fit2cloud.com
function install_soft() {
if command -v dnf &>/dev/null; then
dnf -q -y install "$1"
elif command -v yum &>/dev/null; then
yum -q -y install "$1"
elif command -v apt &>/dev/null; then
apt-get -qqy install "$1"
elif command -v zypper &>/dev/null; then
zypper -q -n install "$1"
elif command -v apk &>/dev/null; then
apk add -q "$1"
command -v gettext &>/dev/null || {
apk add -q gettext-dev python3
}
else
echo -e "[\033[31m ERROR \033[0m] $1 command not found, Please install it first"
exit 1
fi
}
function prepare_install() {
for i in curl wget tar iptables; do
command -v $i &>/dev/null || install_soft $i
done
}
function get_installer() {
echo "download install script to /opt/jumpserver-installer-${VERSION}"
cd /opt || exit 1
if [ ! -d "/opt/jumpserver-installer-${VERSION}" ]; then
timeout 60 wget -qO jumpserver-installer-${VERSION}.tar.gz ${DOWNLOAD_URL}/jumpserver/installer/releases/download/${VERSION}/jumpserver-installer-${VERSION}.tar.gz || {
rm -f /opt/jumpserver-installer-${VERSION}.tar.gz
echo -e "[\033[31m ERROR \033[0m] Failed to download jumpserver-installer-${VERSION}"
exit 1
}
tar -xf /opt/jumpserver-installer-${VERSION}.tar.gz -C /opt || {
rm -rf /opt/jumpserver-installer-${VERSION}
echo -e "[\033[31m ERROR \033[0m] Failed to unzip jumpserver-installer-${VERSION}"
exit 1
}
rm -f /opt/jumpserver-installer-${VERSION}.tar.gz
fi
}
function config_installer() {
cd /opt/jumpserver-installer-${VERSION} || exit 1
sed -i "s/# DOCKER_IMAGE_MIRROR=1/DOCKER_IMAGE_MIRROR=1/g" /opt/jumpserver-installer-${VERSION}/config-example.txt
./jmsctl.sh install
./jmsctl.sh start
}
function main(){
if [[ "${OS}" == 'Darwin' ]]; then
echo
echo "Unsupported Operating System Error"
exit 1
fi
prepare_install
get_installer
config_installer
}
main
3. 安装执行过程
3.1 执行安装脚本
运行以下命令启动安装流程:
bash install.sh
安装过程会输出相关信息,例如:
#执行安装脚本
root@jumpserver:~> bash install.sh
download install script to /opt/jumpserver-installer-v4.8.1
██╗██╗ ██╗███╗ ███╗██████╗ ███████╗███████╗██████╗ ██╗ ██╗███████╗██████╗
██║██║ ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║ ██║██╔════╝██╔══██╗
██║██║ ██║██╔████╔██║██████╔╝███████╗█████╗ ██████╔╝██║ ██║█████╗ ██████╔╝
██ ██║██║ ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝ ██╔══██╗╚██╗ ██╔╝██╔══╝ ██╔══██╗
╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║ ███████║███████╗██║ ██║ ╚████╔╝ ███████╗██║ ██║
╚════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚══════╝╚═╝ ╚═╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝
Version: v4.8.1-ce
1. Check Configuration File
Path to Configuration file: /opt/jumpserver/config
/opt/jumpserver/config/config.txt [ √ ]
/opt/jumpserver/config/loki/promtail.yml [ √ ]
/opt/jumpserver/config/nginx/cert/server.crt [ √ ]
/opt/jumpserver/config/nginx/cert/server.key [ √ ]
安装脚本会引导完成多个配置步骤:
配置私钥(SECRETE_KEY 与 BOOTSTRAP_TOKEN)
会自动生成后显示在提示中,直接按回车确认(如果不需要自定义修改)。配置持久化目录
- 默认目录为
/data/jumpserver
- 如需自定义,建议选择磁盘空间充足的盘符,但注意:安装后不可更改!
- 默认目录为
数据库配置
- 是否使用外部 PostgreSQL(默认内置)
Redis 配置
- 配置 Redis 引擎模式(redis/sentinel)
- 是否使用外部 Redis:若选择外部,则需提供服务器 IP、端口和密码
外部访问配置
- 是否修改默认的外部访问端口(默认端口 80)
初始化数据库
安装过程中会启动容器并完成数据库初始化、静态文件收集和数据迁移。
>>> Install and Configure JumpServer
1. Configure Private Key
SECRETE_KEY: 3e1e8dea32665fe01eed82a44b52a90556c0a7f61cf91a79
BOOTSTRAP_TOKEN: zZEHIGACppkAaC123RED0ywp
complete
2. Configure Persistent Directory
Do you need custom persistent store, will use the default directory /data/jumpserver? (y/n) (default n): y
To modify the persistent directory such as logs video, you can select your largest disk and create a directory in it, such as /data/jumpserver
Note: you can not change it after installation, otherwise the database may be lost
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/ubuntu--vg-ubuntu--lv 96G 11G 81G 12% /
Persistent storage directory (default /data/jumpserver):
complete
3. Configure DB
Do you want to use external PostgreSQL? (y/n) (default n):
complete
4. Configure Redis
Please enter Redis Engine? (redis/sentinel) (default redis):
Do you want to use external Redis? (y/n) (default n): y
Please enter Redis server IP (default redis):
Please enter Redis server port (default 6379):
Please enter Redis password (no default):
complete
5. Configure External Access
Do you need to customize the JumpServer external port? (y/n) (default n):
complete
6. Init JumpServer Database
[+] Running 4/4
✔ Network jms_net Created 0.1s
✔ Container jms_redis Started 0.8s
✔ Container jms_core Started 0.8s
✔ Container jms_postgresql Started 0.8s
4. 部署完成后的使用
安装流程结束后,会显示最终的账号信息和管理命令,示例如下:
4.1 默认账号信息
Web 访问地址:
http://192.168.200.200:80
默认账号:
- 用户名:
admin
- 密码:
ChangeMe
- 用户名:
登录后如下
4.2 常用管理命令
所有容器和服务均由 /opt/jumpserver-installer-v4.8.1
下的 jmsctl.sh
脚本管理,常用命令包括:
# 启动 JumpServer
cd /opt/jumpserver-installer-v4.8.1
./jmsctl.sh start
# 停止 JumpServer
./jmsctl.sh stop
# 重启 JumpServer
./jmsctl.sh restart
# 数据备份
./jmsctl.sh backup
# 升级 JumpServer
./jmsctl.sh upgrade
# 查看更多命令帮助
./jmsctl.sh --help
具体使用
可以参考我写的一篇openstack+jumpserver的文章,里面有介绍jumpserver的简单使用
【Project】基于OpenStack的公司云平台建设与管理方案