#docker 安裝
mkdir /etc/docker
echo "{
\"registry-mirrors\" : [
\"https://registry.docker-cn.com\",
\"https://docker.mirrors.ustc.edu.cn\",
\"http://hub-mirror.c.163.com\",
\"https://cr.console.aliyun.com/\"
]
}">>/etc/docker/daemon.json
yum -y install yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
systemctl start docker && systemctl enable docker
#生成秘鑰
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
注:生成完 SECRET_KEY 和 BOOTSTRAP_TOKEN 變量后一定要確認一下,如果出現異常將會影響到后面的過程
創建jms容器中的日志及數據掛到宿機的目錄
mkdir -p /jumpserver/jumpserver/data
mkdir -p /jumpserver/koko/data
mkdir -p /jumpserver/nginx/logs
mkdir -p /jumpserver/mysql/{data,logs}
============== 不管用以下哪種方法都要執行以上操作 且 創建完容器后一定要等幾分鍾再訪問 =====================
方法1:
#pull鏡像和創建容器(所有數據都在容器中)
docker run --name jms_all -d \
-p 80:80 -p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
jumpserver/jms_all:latest
網頁登錄容器所在IP,賬密:admin/admin
方法2:(個人推薦使用該方法)
1、容器中的jumpserver的數據在/opt/jumpserver/data目錄中,日志在/opt/jumpserver/logs目錄中,初始化數據庫在/opt/jumpserver/utils目錄中,配置文件在/opt/jumpserver/config.yml文件中,啟動jumpserver命令為/opt/jumpserver/jms { start | restart | stop }
2、koko插件的配置文件在/opt/koko/config.yml文件中,數據在/opt/koko/data目錄中
docker run --name jms_all -d \
-p 80:80 -p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-v /jumpserver/jumpserver/data:/opt/jumpserver/data \
-v /jumpserver/jumpserver/logs:/opt/jumpserver/logs \
-v /jumpserver/koko/data:/jumpserver/koko/data \
-v /jumpserver/nginx/logs:/var/log/nginx/ \
jumpserver/jms_all:latest
#測試(其他機器連接172.16.186.131,連接用戶是admin,密碼是admin)
方法3:(該方法順序不能變)
#docker pull mysql
docker run --restart=always \
--name mysql5.7 -id \
-e MYSQL_DATABASE="jumpserver" \
-e MYSQL_USER="jumpserver" \
-e MYSQL_PASSWORD="AA7788aa" \
-e MYSQL_ROOT_PASSWORD="AA7788aa" \
-v /jumpserver/mysql/data:/var/lib/mysql \
-v /jumpserver/mysql/logs:/var/log/mysql/ \
-p 3306:3306 -d mysql:5.7.20
#docker pull redis
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo "vm.overcommit_memory=1">>/etc/sysctl.conf
echo "net.core.somaxconn= 1024">>/etc/sysctl.conf
echo "'echo never > /sys/kernel/mm/transparent_hugepage/enabled'">>/etc/rc.local
sysctl -p
docker run -p 6379:6379 --name redis -v /jumpserver/redis/data:/data -d redis redis-server --requirepass "A12345a" --appendonly yes
redis容器中登錄方式
#docker pull jms
docker run --restart=always \
--name jms_all -d \
-p 80:80 -p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-v /jumpserver/jumpserver/data:/opt/jumpserver/data \
-v /jumpserver/jumpserver/logs:/opt/jumpserver/logs \
-v /jumpserver/koko/data:/jumpserver/koko/data \
-v /jumpserver/nginx/logs:/var/log/nginx/ \
-e DB_HOST="mysql5.7" \
-e DB_PORT=3306 \
-e DB_USER=root \
-e DB_PASSWORD=AA7788aa \
-e DB_NAME=jumpserver \
--link mysql5.7:mysql \
-e REDIS_HOST=redis \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD=A12345a \
--link redis:redis \
jumpserver/jms_all:latest
注:創建完容器后要稍等一下在去頁面訪問。
方法4:(該方法適合在無互聯網環境中使用且只需redis和jms_all即可)
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
mkdir -p /jumpserver/jumpserver/data
mkdir -p /jumpserver/koko/data
mkdir -p /jumpserver/nginx/logs
mkdir -p /jumpserver/mysql/{data,logs}
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo "vm.overcommit_memory=1">>/etc/sysctl.conf
echo "net.core.somaxconn= 1024">>/etc/sysctl.conf
echo "'echo never > /sys/kernel/mm/transparent_hugepage/enabled'">>/etc/rc.local
sysctl -p
#需在互聯網中將redis和jms_all的鏡像pull下來,再打成tar包發送至內網環境中,並導入進去
將鏡像打包
docker save -o <new_name>.tar <ImageID>
導入鏡像
docker load -i <new_name>.tar
將鏡像更換名
docker tag <images_name>:<tag> <image_name>:<tag>
docker run -p 6379:6379 --name redis -v /jumpserver/redis/data:/data -d redis redis-server --requirepass "A12345a" --appendonly yes
docker run --restart=always \
--name jms_all -d \
-p 80:80 -p 2222:2222 \
-e SECRET_KEY=$SECRET_KEY \
-e BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN \
-v /jumpserver/jumpserver/data:/opt/jumpserver/data \
-v /jumpserver/jumpserver/logs:/opt/jumpserver/logs \
-v /jumpserver/koko/data:/jumpserver/koko/data \
-v /jumpserver/nginx/logs:/var/log/nginx/ \
-v /jumpserver/mysql/data:/var/lib/mysql/ \
-v /jumpserver/mysql/logs:/var/log/mariadb/ \
-e REDIS_HOST=redis \
-e REDIS_PORT=6379 \
-e REDIS_PASSWORD=A12345a \
--link redis:redis \
jms_all:latest
注:如在創建jms容器時報錯,需先將-v /jumpserver/mysql/logs:/var/log/mariadb/ \這條去掉,再創建,無問題后再刪掉容器后再加上-v /jumpserver/mysql/logs:/var/log/mariadb/ \選項來創建jms容器
docker容器設置開機自啟動:
--restart具體參數值詳細信息
no - 容器退出時,不重啟容器
on-failure - 只有在非0狀態退出時才從新啟動容器
always - 無論退出狀態是如何,都重啟容器
使用 on-failure 策略時指定 Docker 將嘗試重新啟動容器的最大次數;默認情況下Docker將嘗試永遠重新啟動容器;
docker run --restart=on-failure:10 redis
如果創建容器時未指定 --restart=always ,可通過 update 命令更改;
docker update --restart=always 容器ID
如未使用--restart=always選項,在服務器或其他情況導致服務器關機/重啟,再次啟動容器時需先起MySQL、redis,最后起jms
添加windows系列主機
先創建組,左側“用戶管理”---用戶組---創建---填寫信息---提交
創建用戶
左側“用戶管理”---用戶列表---創建---填寫信息(如下圖,下圖為填寫好以后的)---提交
創建管理用戶
左側“資產管理”---管理用戶---創建---填寫信息(名稱可自定義,用戶名填寫登錄被控機的賬號和密碼)---提交
創建系統用戶
左側“資產管理”---系統用戶---創建---填寫信息---提交
(名稱可自定義,windows也可以自動登錄,用戶名為登錄登錄被控機的賬戶,優先級默認,協議為rdp,自動推送關閉,密碼為登錄被控機的密碼)
將資產授權給用戶
左側“權限管理”---資產授權---創建---填寫信息---提交
注:上圖中的開始日期和失效日期為可選項
以上所有都得保證下圖中的2個服務是在線狀態,如下圖所示
用戶登錄
注:賬密為服務端中“用戶管理”---“用戶列表”中的,客戶端登錄時用戶名為“用戶列表”中的用戶名列,密碼為自定義的
點擊上圖中的“動作”列中的第一個圖標即可連到windows被控端,如下圖所示(因為在服務端授權時選的“自動登錄”,所以點完“動作”列中的第一個圖標后可以直接連進來)
添加Linux主機
組、用戶還用上面的“張三”,因為該項僅供web端登錄使用
創建管理用戶
資產管理----管理用戶----創建(名稱自定義,用戶名和密碼為linux端的一個用戶和對應的密碼)
創建系統用戶
資產管理----系統用戶----創建
注:上圖中的名稱可自定義,sudo項為使用zs用戶登錄進去后能執行的命令
添加資產
資產管理----資產列表----添加資產----創建(主機名必須如實寫)
資產授權
權限管理----資產授權----創建
還是使用張三用戶登錄進行查看/測試
注:可以看到使用zs用戶執行id命令時產生了一個報錯,待解決!!!
或者使用官方的腳本安裝
# https://github.com/jumpserver/jumpserver/releases
wget https://github.com/jumpserver/jumpserver/releases/download/2.0.1/quick_start.sh
sh -x quick_start.sh
注:使用該方式時需要把koko容器中的logs目錄單獨掛出來,不然日志隨着時間的推移會越來越大(容器中的日志在/config/tomcat9/logs)
或參考
歡迎加入QQ群一起討論Linux、開源等技術