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查看开启的端口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环境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是否正常启动Mariadb数据库 安装Mariadb数据库
dnf install mariadb-server mariadb -y启动并开机启动
systemctl start mariadb && systemctl enable mariadb 初始化数据库 mysql_secure_installation生成随机数据库密码
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 连接数据库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';刷新策略 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-clientspip 依赖环境
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 50BOOTSTRAP_TOKEN:秘钥生成命令
cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16vi config.yml 编辑config.yml内容 也可以百度生成秘钥,两个方法,二选一,这里采用命令生成
必须要看下百度生成秘钥的图,需要数据库密码和改动其他 百度:随机字符串生成 这是找好的https://suijimimashengcheng.51240.com/ 添加SECRET_KEY:和BOOTSTRAP_TOKEN:的密码 下面关键图,注意修改 最后一行也一样的改法,看下图 保存,退出!
./jms start all -d 启动所有jms服务 ./jms status 查看状态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更新 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启动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 ../再cd.. 再ll 查看是否到了.. 然后移动到opt
mv containerd.io-1.2.6-3.3.el7.x86_64.rpm opt/先cd /opt 然后 ll 查看是否到了opt 查看到根目录没 安装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 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下载 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 整合各组件
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项 保存退出
确保已经载入 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最后,打开网页骚吧!
命令 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