1、首先安装docker,此处使用离线方式安装。
链接: docker 离线安装包 提取码: 48mm
下载安装包后,上传到服务器 /data/soft/ 目录
cd /data/soft/
unzip base-docker.zip
cd /data/soft/base-docker
sh install.sh
2、本地安装mysql5.7 并启动
docker run -it -d --name mysql --restart=always -p 3306:3306 -v /opt/jumpserver/mysql/conf:/etc/mysql/conf.d -v /opt/jumpserver/mysql/logs:/var/log/mysql -v /opt/jumpserver/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD="abcdefg" mysql:5.7
3、本地安装redis
docker run -it -d --name redis --restart=always -p 6379:6379 redis --requirepass "123456"
3、生成SECRET_KEY 和 BOOTSTRAP_TOKEN , 请谨慎保存
if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi
if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi
source ~/.bashrc
4、安装jumpserver镜像
其中DB_HOST 为mysql 的ip地址, REDIS_HOST 为redis 的连接地址。
要为jumpserver 创建一个数据库名称为 :jumpserver 并赋予权限。
mkdir -p /data/jumpserver
docker run -d --name jumpserver -h jumpserver --restart=always \
-v /data/jumpserver:/opt/jumpserver/data/media \
-p 9898:80 \
-p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-e DB_HOST=172.31.1.1 \
-e DB_PORT=3306 \
-e DB_USER=root \
-e DB_PASSWORD="abcdefg" \
-e DB_NAME=jumpserver \
-e REDIS_HOST=172.31.1.1 \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD="123456" \
jumpserver/jms_all:2.28.7
安装成功后,,如果是专有网路,需要开通9898端口的网络访问: http://ip:9898,至此,jumpserver 搭建完成。
如果想要使用nginx 进行ws的反向代理,请使用如下配置
location ^~ /ws/notifications/ {
proxy_pass http://172.31.1.1:9898/ws/notifications/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_connect_timeout 600s;
proxy_read_timeout 600;
proxy_send_timeout 600s;
}