centos8半容器部署jumpserver
超级详细!!!!!

cd /opt && \
wget https://github.com/jumpserver/jumpserver/releases/download/v2.2.2/jumpserver-v2.2.2.tar.gz
tar xf jumpserver-v2.2.2.tar.gz
mv jumpserver-v2.2.2 jumpserver
rm -rf jumpserver-v2.2.2.tar.gz删除压缩包

1、 firewall(防火墙)

# nginx端口
firewall-cmd --zone=public --add-port=80/tcp --permanent      
# 用户SSH登录端口koko           
firewall-cmd --zone=public --add-port=2222/tcp --permanent
# 设置防火墙规则,允许容器ip访问宿主8080端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="172.17.0.0/16" port protocol="tcp" port="8080" accept"
# 设置防火墙规则,允许容器ip访问宿主8080端口
firewall-cmd --reload                                       
# 重新载入规则
firewall-cmd --list-all查看开启的端口

docker bushu jumpserver docker部署jumpserver_nginx

Python3和Python虚拟环境

安装依赖软件包	yum -y install wget gcc epel-release git
安装Python3.6		dnf install python36 python36-devel

建立Python虚拟环境
#创建虚拟环境,环境命令自定义为py3

cd /opt
python3.6 -m venv py3
ls看看目录
source /opt/py3/bin/activate	进去py3环境

docker bushu jumpserver docker部署jumpserver_centos_02

python –version 查看py版本

Redis
Jumpserver使用Redis做cache和celery broke

dnf -y install redis
systemctl    start  redis  && systemctl    enable  redis
systemctl    status redis
ps -ef|grep redis	查看Redis是否正常启动

docker bushu jumpserver docker部署jumpserver_docker_03

Mariadb数据库

安装Mariadb数据库

dnf install mariadb-server mariadb -y

启动并开机启动

systemctl   start  mariadb && systemctl   enable   mariadb
初始化数据库	mysql_secure_installation

docker bushu jumpserver docker部署jumpserver_centos_04

生成随机数据库密码

DB_PASSWORD=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 24`
echo -e "\033[31m 你的数据库密码是 $DB_PASSWORD \033[0m

数据库配置

mysql -uroot –p	连接数据库

docker bushu jumpserver docker部署jumpserver_nginx_05

show databases; 显示数据库

create database jumpserver default charset 'utf8';

创建jumpserver数据库

create database jumpserver default charset 'utf8' collate 'utf8_bin';

授权jumpserver用户

grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'dhfbGWxvTjZIPDzard39xy7L';
grant all on jumpserver.* to 'jumpserver'@'localhost' identified by 'dhfbGWxvTjZIPDzard39xy7L';

docker bushu jumpserver docker部署jumpserver_docker_06

docker bushu jumpserver docker部署jumpserver_nginx_07

刷新策略 flush privileges;

show databases;	显示数据库。查看建成没有
exit;		退出数据库

软件环境依赖

dnf  -y install gcc krb5-devel libtiff-devel libjpeg-devel libzip-devel freetype-devel libwebp-devel tcl-devel tk-devel sshpass openldap-devel mariadb-devel libffi-devel openssh-clients telnet openldap-clients

pip 依赖环境

cd /opt/jumpserver/requirements/
pip install wheel && \
pip install --upgrade pip setuptools && \
pip install -r requirements.txt

确保已经载入 py3 虚拟环境, 中间如果遇到报错一般是依赖包没装全
国内可以使用阿里镜像加速,装这三个

pip install wheel -i https://mirrors.aliyun.com/pypi/simple/
pip install --upgrade pip setuptools -i https://mirrors.aliyun.com/pypi/simple/
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

修改jumpserver配置文件

cd /opt/jumpserver
cp config_example.yml config.yml复制并改名
ll	查看出来没有

SECRET_KEY:秘钥生成命令

cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50

BOOTSTRAP_TOKEN:秘钥生成命令

cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16

docker bushu jumpserver docker部署jumpserver_docker_08


vi config.yml 编辑config.yml内容

docker bushu jumpserver docker部署jumpserver_docker_09

也可以百度生成秘钥,两个方法,二选一,这里采用命令生成必须要看下百度生成秘钥的图,需要数据库密码和改动其他

百度:随机字符串生成 这是找好的https://suijimimashengcheng.51240.com/

添加SECRET_KEY:和BOOTSTRAP_TOKEN:的密码

docker bushu jumpserver docker部署jumpserver_nginx_10


docker bushu jumpserver docker部署jumpserver_docker_11

下面关键图,注意修改

docker bushu jumpserver docker部署jumpserver_nginx_12

最后一行也一样的改法,看下图

docker bushu jumpserver docker部署jumpserver_nginx_13

保存,退出!

./jms start all -d      启动所有jms服务
./jms status		查看状态

docker bushu jumpserver docker部署jumpserver_数据库_14

Docker
# 安装相关依赖

dnf install -y yum-utils device-mapper-persistent-data lvm2

# 配置Docker源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 重新生成缓存

dnf makecache

# 安装Docker-ce

rpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

安装Docker-ce

rpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
dnf -y install docker-ce

更新 containerd.io 的版本,然后重新安装最新版本的docker 即可成功安装

wget https://download.docker.com/linux/centos/7/x86_64/edge/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
dnf install -y  containerd.io-1.2.6-3.3.el7.x86_64.rpm

安装docker

dnf -y install docker-ce

下载相关文件

mkdir -p /etc/docker
wget -O /etc/docker/daemon.json http://demo.jumpserver.org/download/docker/daemon.json

启动docker并设置开机自启

systemctl restart docker && systemctl enable docker

查看状态

systemctl status docker
cd /opt

在opt目录下把containerd.io-1.2.6-3.3.el7.x86_64.rpm移动到…去

mv jumpserver/containerd.io-1.2.6-3.3.el7.x86_64.rpm ../

docker bushu jumpserver docker部署jumpserver_centos_15

cd..ll 查看是否到了..

docker bushu jumpserver docker部署jumpserver_docker_16


然后移动到opt

mv containerd.io-1.2.6-3.3.el7.x86_64.rpm  opt/

先cd /opt 然后 ll 查看是否到了opt

查看到根目录没

docker bushu jumpserver docker部署jumpserver_nginx_17


安装koko

官网安装文档复制

docker run --name jms_koko -d \
  -p 2222:2222 \
  -p 127.0.0.1:5000:5000 \
  -e CORE_HOST=http://192.168.244.144:8080 \
  -e BOOTSTRAP_TOKEN=zxffNymGjP79j6BN \
  -e LOG_LEVEL=ERROR \
  --privileged=true \
  --restart=always \
  jumpserver/jms_koko:v2.2.2

docker bushu jumpserver docker部署jumpserver_docker_18

复制进去

docker bushu jumpserver docker部署jumpserver_数据库_19

docker images查看下载好了没

docker ps -a 查看所有容器

Docker 部署 Guacamole 组件

docker run --name jms_guacamole -d \
  -p 127.0.0.1:8081:8080 \
  -e JUMPSERVER_SERVER=http://192.168.244.144:8080 \
  -e BOOTSTRAP_TOKEN=abcdefg1234 \
  -e GUACAMOLE_LOG_LEVEL=ERROR \
  jumpserver/jms_guacamole:v2.2.2

docker bushu jumpserver docker部署jumpserver_centos_20

下载 Lina 组件

cd /opt
wget https://github.com/jumpserver/lina/releases/download/v2.2.2/lina-v2.2.2.tar.gz

解压

tar -xf lina-v2.2.2.tar.gz

重命名

mv lina-v2.2.2 lina

改权组,从root变成nginx

chown -R nginx:nginx lina

下载 Luna 组件

cd /opt
wget https://github.com/jumpserver/luna/releases/download/v2.2.2/luna-v2.2.2.tar.gz

解压

tar -xf luna-v2.2.2.tar.gz

重命名

mv luna-v2.2.2 luna

改组权,从root变成nginx

chown -R nginx:nginx luna

配置 Nginx 整合各组件

docker bushu jumpserver docker部署jumpserver_docker_21


docker bushu jumpserver docker部署jumpserver_数据库_22

sudo yum install yum-utils
yum install nginx
cd /etc/nginx/
vi nginx.conf

有两种方法,一种是复制下方的进去就可以
二种是下下面的诠释server项

user  root;
worker_processes  auto;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

二种是:注释server项

docker bushu jumpserver docker部署jumpserver_数据库_23


docker bushu jumpserver docker部署jumpserver_nginx_24

保存退出

确保已经载入 py3 虚拟环境

source /opt/py3/bin/activate

第一句好像是移动文件
第二句是新建jumpserver.conf

echo > /etc/nginx/conf.d/default.conf
vi /etc/nginx/conf.d/jumpserver.conf

往jumpserver.conf里复制下面的

server {
    listen 80;

    client_max_body_size 100m;  # 录像及文件上传大小限制

    location /ui/ {
        try_files $uri / /index.html;
        alias /opt/lina/;
    }

    location /luna/ {
        try_files $uri / /index.html;
        alias /opt/luna/;  # luna 路径, 如果修改安装目录, 此处需要修改
    }

    location /media/ {
        add_header Content-Encoding gzip;
        root /opt/jumpserver/data/;  # 录像位置, 如果修改安装目录, 此处需要修改
    }

    location /static/ {
        root /opt/jumpserver/data/;  # 静态资源, 如果修改安装目录, 此处需要修改
    }

    location /koko/ {
        proxy_pass       http://localhost:5000;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        access_log off;
    }

    location /guacamole/ {
        proxy_pass       http://localhost:8081/;
        proxy_buffering off;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $http_connection;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        access_log off;
    }

    location /ws/ {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://localhost:8070;
        proxy_http_version 1.1;
        proxy_buffering off;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /api/ {
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /core/ {
        proxy_pass http://localhost:8080;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location / {
        rewrite ^/(.*)$ /ui/$1 last;
    }
}

查看状态

nginx -t

重新加载配置文件

nginx -s reload

最后,打开网页骚吧!

docker bushu jumpserver docker部署jumpserver_centos_25

命令
cat /etc/redhat-release看linux版本
systemctl status nginx 系统查看状态
nginx -t 查看状态
systemctl start nginx 启动nginx
ps -ef|grep nginx查看nginx的进程
nginx -s reload 重新加载配置文件
rm -rf lina 删除命令
false关 true开

docker命令
docker中 启动所有的容器命令

docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)

docker images查看镜像
docker ps -a // 查看所有容器
docker ps // 查看所有正在运行容器
docker stop containerId // containerId 是容器的ID
docker version 看docker版本
docker stop $(docker ps -a -q) // stop停止所有容器
docker rm $(docker ps -a -q) // remove删除所有容器
docker ps -l 显示最新创建的容器包括所有状态
ps -ef|grep py3 查看py3的进程和过滤出带py3的进程

其他命令
chmod 755 config.yml
chmod是Linux下设置文件权限的命令,后面的数字表示不同用户或用户组的权限。

一般是三个数字:

第一个数字表示文件所有者的权限

第二个数字表示与文件所有者同属一个用户组的其他用户的权限

第三个数字表示其它用户组的权限。

权限分为三种:读(r=4),写(w=2),执行(x=1)。综合起来还有可读可执行(rx=5=4+1)、可读可写(rw=6=4+2)、可读可写可执行(rwx=7=4+2+1)。

所以,chmod 755 设置用户的权限为:

1.文件所有者可读可写可执行

2.与文件所有者同属一个用户组的其他用户可读可执行

3.其它用户组可读可执行
ssh -p 2222 admin@192.168.166.131