Docker部署jumpserver


當前服務器版本:centos7.5

服務器IP: 10.0.0.1

配置:2核4G

0 簡介

 Jumpserver 使用 Python / Django 進行開發,開源的堡壘機,我搭建jumpserver的主要為了方便統一管理服務器 ,另一方面方便開發人員通過堡壘機查看日志,接下來就跟着我一起快速體驗一下jumpserver的安裝和使用吧。

官方文檔:https://jumpserver.readthedocs.io/zh/master/

1 准備工作

1.1 安裝docker

wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo

sed -i 's#download.docker.com#mirrors.ustc.edu.cn/docker-ce#g' /etc/yum.repos.d/docker-ce.repo

yum list docker-ce --showduplicates | sort -r #可列出docker版本

yum install docker-ce -y         #此安裝最新版本的docker

mkdir /etc/docker

vim /etc/docker/daemon.json

{

"registry-mirrors": ["https://registry.docker-cn.com"]

}

systemctl daemon-reload

systemctl restart docker

1.2 安裝mysql

mkdir -p /mnt/mysql/data

docker run -d --name mysql --restart=always -e MYSQL_ROOT_PASSWORD=Test@1234 -p 3306:3306 -v /mnt/mysql/data:/var/lib/mysql mysql:5.7 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

注意:密碼不要設置123456這種簡單的密碼,否則會導致jumpserver無法寫入數據!提示無法連接mysql

創建jumpserver數據庫,並授權

#docker exec -it mysql /bin/bash

mysql -u root -p Test@1234

mysql> create database jumpserver default charset 'utf8mb4';

mysql> grant all on jumpserver.* to 'jumpserver'@'%' identified by 'Test@1234';

mysql> flush privileges;

mysql> exit

#exit

1.3 安裝redis

mkdir -p /mnt/redis/data

docker run -d -it --name redis -p 6379:6379 -v /mnt/redis/data:/data --restart=always --sysctl net.core.somaxconn=1024 redis:4.0.10 --requirepass "123456" 

 

DBHOST: 10.0.0.1 
DBNAME: jumpserver 
DBUSER: jumpserver 
DBPASSWORD: Test@1234 
Redis地址:10.0.0.1 
Redis密碼: 123456 

 

2 生成隨機加密密鑰

SECRET_KEY 很重要,以后升級或者遷移數據需要用到。 
# 生成隨機加密秘鑰, 勿外泄,使用 root 身份在服務器上輸入 
# 環境遷移和更新升級請檢查 SECRET_KEY 是否與之前設置一致, 不能隨機生成, 否則數據庫所有加密的字段均無法解密
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

VT6AxUpfGKq1uUoDoqI51r7jOboBfNsshjsPrmVdqjqx3kUl9z 
z8rXvysXR6E1o8W6 

3 安裝jumpserver

mkdir -p /mnt/jumpserver/data

這里使用版本v2.2.3版本

docker run -d --name jumpserver -h jumpserver --restart=always \ 
 -v /mnt/jumpserver/data:/opt/jumpserver/data/media \ 
 -p 80:80 \ 
 -p 2222:2222 \ 
 -e SECRET_KEY=VT6AxUpfGKq1uUoDoqI51r7jOboBfNsshjsPrmVdqjqx3kUl9z \ 
 -e BOOTSTRAP_TOKEN=z8rXvysXR6E1o8W6 \ 
 -e DB_HOST=10.0.0.1 \ 
 -e DB_PORT=3306 \ 
 -e DB_USER=jumpserver \ 
 -e DB_PASSWORD="Test@1234" \ 
 -e DB_NAME=jumpserver \ 
 -e REDIS_HOST=10.0.0.1 \ 
 -e REDIS_PORT=6379 \ 
 -e REDIS_PASSWORD="123456" \ 
jumpserver/jms_all:v2.2.3 

 

參數解釋 

-h 指定docker主機名

-e 指定環境變量,注意修改mysql和redis的ip地址和密碼。

 

查看jumpserver日志

# docker logs -f jumpserver

3.1 訪問頁面

瀏覽器訪問:http://<容器所在服務器IP>

用戶名admin 密碼admin

 

3.2 啟動koko

docker exec -it jumpserver /bin/bash

cd koko

./koko restart -d

查看koko進程

3.2.1 koko故障記錄

[ERRO] POST http://127.0.0.1:8080/api/v2/terminal/terminal-registrations/ failed, get code: 400, {"name":["名稱重復"]}

進入 Jumpserver 網頁 => 會話管理 => 終端管理 => 刪除所有終端,再啟動.

[ERRO] POST http://127.0.0.1:8080/api/v2/terminal/terminal-registrations/ failed, get code: 401, {"detail":"身份認證信息未提供。"}

cat /opt/koko/config.yml | grep BOOTSTRAP_TOKEN

提供:BOOTSTRAP_TOKEN


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM