jumpserver部署实践
当前选择的版本是
https: //docs.jumpserver.org/zh /v2.12.0/install /setup_by_fast/
这种开源工具,没必要追求太新的,功能太多,用不上,且部署繁琐。
虽提供了docker部署,暂时先不用。
1. 基础组件
Lina 是 JumpServer 的前端 UI 项目, 主要使用 Vue, Element UI 完成, 名字来源于 Dota 英雄 Lina
Luna 是 JumpServer Web Terminal 前端项目(网页命令行)
Lina 和 Luna 为纯静态文件,最终由 nginx 整合。
Core 是 JumpServer 的核心组件,由 Django 二次开发而来。
Koko 是 Go 版本的 coco,重构了 coco 的 SSH/SFTP 服务和 Web Terminal 服务。
Lion 使用了 Apache 软件基金会的开源项目 Guacamole,JumpServer 使用 Golang 和 Vue 重构了 Guacamole 实现 RDP/VNC 协议跳板机功能。
2.架构图
3. 服务器硬件环境
jumpserver服务器
4C cpu/16GB memory/200G disk
centos7.* 64位
硬盘主要用于存储审计录像,因此需要根据客户的资产数量,以及使用程度评估,建议在200G以上;
以100台Linux资产为例,日常使用,200G磁盘可以存储5~6个月的录屏。
存储空间计算规则
- 每小时产生录像约10M
- 每天操作约4h
- 保留过期期限30天
存储空间,以100台机器算
>>> 10*4*30*100/1024
117.1875
4.基础环境准备
注意得是新机器,否则你可能会遇见各种坑,那就随机应变的解决吧
1.环境准备
centos7
关闭防火墙 firewalld selinux
iptables -F
systemctl stop firewalld
systemctl disable firewalld
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc ntpdate openldap-devel
yum -y install git python-pip gcc automake autoconf python-devel vim sshpass lrzsz readline-devel zlib zlib-devel openssl openssl-devel
git --- 用于下载jumpserver软件程序
python-pip --- 用于安装python软件
gcc --- 解析代码中C语言信息(解释器)
automake --- 实现软件自动编译过程
autoconf --- 实现软件自动配置过程
python-devel --- 系统中需要有python依赖
readline-devel --- 在操作python命令信息时,实现补全功能
3.修改系统字符集为中文
localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
export LC_ALL=zh_CN.UTF-8
echo 'LANG="zh_CN.UTF-8" ' > /etc/locale.conf
[root@master-61 ~]
[root@master-61 ~]
LANG=en_US.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8
5.环境要求
Name
Core
Python
MySQL
MariaDB
Redis
Version
v2.12.0
>= 3.6
>= 5.7
>= 10.2
>= 6
一.部署mysql5.7
# 设置 Repo
yum - y localinstall http:/ / mirrors.ustc.edu.cn/ mysql- repo/ mysql57- community- release - el7.rpm
# 关闭秘钥检查
sed - i '/gpgcheck=1/c gpgcheck=0' / etc/ yum.repos.d/ mysql- community*
# 安装 MySQL
yum clean all
yum install - y mysql- community- server
# 数据库参数解释
# 使用
# 配置 MySQL
if [ ! "$(cat /usr/bin/mysqld_pre_systemd | grep -v ^\# | grep initialize-insecure )" ]; then
sed - i "s@--initialize @--initialize-insecure @g" / usr/ bin/ mysqld_pre_systemd
fi
# 启动 MySQL
systemctl enable mysqld
systemctl start mysqld
# 数据库授权,改密码
mysql - uroot
mysql> create database jumpserver default charset 'utf8' ;
Query OK, 1 row affected (0.00 sec)
mysql> set global validate_password_policy= LOW;
Query OK, 0 rows affected (0.00 sec)
mysql> create user 'jumpserver' @'%' identified by 'www.yuchaoit.cn' ;
Query OK, 0 rows affected (0.00 sec)
mysql> grant all on jumpserver.* to 'jumpserver' @'%' ;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
二.部署redis-6.2.4
yum -y install epel-release wget make gcc-c++
cd /opt
wget https://download.redis.io/releases/redis-6.2.4.tar.gz
tar -xf redis-6.2.4.tar.gz
cd redis-6.2.4
make && make install PREFIX=/usr/local/redis
cp redis.conf /etc/redis.conf
sed -i "s/bind 127.0.0.1/bind 0.0.0.0/g" /etc/redis.conf
sed -i "s/daemonize no/daemonize yes/g" /etc/redis.conf
sed -i "561i maxmemory-policy allkeys-lru" /etc/redis.conf
sed -i "481i requirepass www.yuchaoit.cn" /etc/redis.conf
cat >/etc/systemd/system/redis.service <<EOF
[Unit]
Description=Redis persistent key-value database
After=network.target
After=network-online.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/bin/redis-server /etc/redis.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
[Install]
WantedBy=multi-user.target
EOF
systemctl enable redis
systemctl start redis
[root@db-52 /opt/redis-6.2.4]
redis-cli 6.2.4
[root@db-52 /opt/redis-6.2.4]
OK
三.部署后端core
Core 是 JumpServer 的核心组件,由 Django 二次开发而来, 内置了 Lion Celery Beat Flower Daphne 服务。
mkdir /opt/jumpserver-v2.12.0
wget -O /opt/jumpserver-v2.12.0.tar.gz https://github.com/jumpserver/jumpserver/archive/refs/tags/v2.12.0.tar.gz
tar -xf jumpserver-2.12.0.tar.gz -C /opt/jumpserver-v2.12.0 --strip-components 1
[root@master-61 /opt/jumpserver-v2.12.0]
总用量 28
requirements/
├── alpine_requirements.txt
├── deb_buster_requirements.txt
├── deb_requirements.txt
├── issues.txt
├── mac_requirements.txt
├── requirements.txt
└── rpm_requirements.txt
yum install -y $(cat /opt/jumpserver-v2.12.0/requirements/rpm_requirements.txt)
1.安装python3
从 Python 网站获取部署 Python3 的方法,请根据 环境要求,通过命令行中判断是否安装完成。
[root@master-61 /opt/jumpserver-v2.12.0]
python python2 python2.7 python2.7-config python2-config python-config
yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
cd /opt && wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz
tar -zxf Python-3.6.9.tgz
cd Python-3.6.9/
./configure --prefix=/opt/python369
make && make install
echo 'export PATH=$PATH:/opt/python369/bin/' >> /etc/profile
source /etc/profile
[root@master-61 /opt/Python-3.6.9]
Python 3.6.9
[root@master-61 ~]
pip 18.1 from /opt/python369/lib/python3.6/site-packages/pip (python 3.6)
2.安装python虚拟环境
mkdir ~/.pip
vim ~/.pip/pip.conf
[global]
index-url=https://pypi.tuna.tsinghua.edu.cn/simple
python的项目管理方式,在线上要基于虚拟环境部署,便于管理多项目,防止依赖冲突。
这里需要对python开发的模块依赖管理有一定的认识,方可理解;
cd /opt && python3 -m venv /opt/py3
[root@master-61 /opt]
(py3) [root@master-61 /opt]
(py3) [root@master-61 /opt]
/opt/py3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/python369/bin/
3.安装core后端的项目依赖
虚拟环境,必须每次都要激活后,方可使用该python解释器。
(py3) [root@master-61 /opt]
(py3) [root@master-61 /opt/jumpserver-v2.12.0/requirements]
alpine_requirements.txt deb_requirements.txt mac_requirements.txt rpm_requirements.txt
deb_buster_requirements.txt issues.txt requirements.txt
(py3) [root@master-61 /opt/jumpserver-v2.12.0/requirements]
检查解释器的模块依赖
安装的模块依赖大约这么多,不一定完全一样
(py3) [root@master-61 /opt/jumpserver-v2.12.0/requirements]
198
4.修改core配置文件
(venv_py3) [root@master-61 /opt/jumpserver-v2.12.0]
修改如下
jumpserver整个架构的所有组件,相互之间的通信,都是基于一个密钥来加密的。
基于如下命令,生成2个密钥。
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: "$SECRET_KEY "
BOOTSTRAP_TOKEN: "$BOOTSTRAP_TOKEN "
DEBUG: true
LOG_LEVEL: DEBUG
SESSION_EXPIRE_AT_BROWSER_CLOSE: true
DB_ENGINE: mysql
DB_HOST: 10.0.0.51
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD: www.yuchaoit.cn
DB_NAME: jumpserver
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: 8080
WS_LISTEN_PORT: 8070
REDIS_HOST: 10.0.0.51
REDIS_PORT: 6379
REDIS_PASSWORD: www.yuchaoit.cn
因此最终的配置如下
(venv_py3) [root@master-61 /opt/jumpserver-v2.12.0]
SECRET_KEY: "$SECRET_KEY "
BOOTSTRAP_TOKEN: "$BOOTSTRAP_TOKEN "
DEBUG: true
LOG_LEVEL: DEBUG
SESSION_EXPIRE_AT_BROWSER_CLOSE: true
DB_ENGINE: mysql
DB_HOST: 10.0.0.51
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD: www.yuchaoit.cn
DB_NAME: jumpserver
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: 8080
WS_LISTEN_PORT: 8070
REDIS_HOST: 10.0.0.51
REDIS_PORT: 6379
REDIS_PASSWORD: www.yuchaoit.cn
5.数据库迁移,生成数据表
通过python3命令,生成jumpserver的核心数据库,数据表内容,会写入到mysql
(py3) [root@master-61 /opt/jumpserver-v2.12.0/apps]
此步骤,会写入mysql数据库的jumpserver库中的数据表
(py3) [root@master-61 /opt/jumpserver-v2.12.0/apps]
有了数据之后,可以启动后端了
进入到jumpserver源码目录中,它提供好了启动脚本。
一键执行python的启动服务脚本,运行后端所有程序
并且是后台运行,不会占用你的窗口,xshell关了,也不会断开。
(venv_py3) [root@master-61 /opt/jumpserver-v2.12.0]
/opt/jumpserver-v2.12.0/jms
(venv_py3) [root@master-61 /opt/jumpserver-v2.12.0]
(venv_py3) [root@master-61 /opt/jumpserver-v2.12.0]
(venv_py3) [root@master-61 /opt/jumpserver-v2.12.0]
检查所有的组件,状态,确保有进程id 号,才是对的。
(venv_py3) [root@master-61 /opt/jumpserver-v2.12.0]
gunicorn is running: 2977
flower is running: 2992
daphne is running: 3152
celery_ansible is running: 3347
celery_default is running: 3448
beat is running: 3587
确保这6个进程的pid,都存在,即正确。以及查看该进程的端口,注意是端口。
(venv_py3) [root@master-61 /opt/jumpserver-v2.12.0]
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8070 0.0.0.0:* LISTEN 3152/python3
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 2977/python3
tcp 0 0 0.0.0.0:5555 0.0.0.0:* LISTEN 2992/python3
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 958/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1127/master
tcp6 0 0 :::5555 :::* LISTEN 2992/python3
tcp6 0 0 :::22 :::* LISTEN 958/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1127/master
6.首次访问登录,修改密码
首次是可以访问,它会让你修改密码,下一次,人家代码中限制,你就没法直接访问后台了,。必须通过前端lina服务器,才能访问到后台。
admin
admin
修改密码为:www.yuchaoit.cn
部署到这里,可以退出虚拟环境
记住,虚拟环境影响的只是python的PATH。
(venv_py3) [root@master-61 /opt/jumpserver-v2.12.0]
四.部署前端lina
1.安装nodejs
1. 下载前端源代码,解压缩。
mkdir -p /opt/lina-v2.12.0
wget -O /opt/lina-v2.12.0.tar.gz https://github.com/jumpserver/lina/archive/refs/tags/v2.12.0.tar.gz
cd /opt/lina-v2.12.0
tar -xf lina-2.12.0.tar.gz -C /opt/lina-v2.12.0 --strip-components 1
2. 部署nodejs
mkdir -p /opt/node-v10.24.1 && cd /opt/node-v10.24.1 && wget https://nodejs.org/dist/v10.24.1/node-v10.24.1-linux-x64.tar.gz
tar -xf node-v10.24.1-linux-x64.tar.gz -C /opt/node-v10.24.1 --strip-components 1
vim /etc/profile
export PATH=$PATH :/opt/python369/bin/:/opt/node-v10.24.1/bin
source /etc/profile
[root@master-61 /opt/node-v10.24.1/bin]
v10.24.1
[root@master-61 /opt/node-v10.24.1/bin]
6.14.12
2.配置前端npm的下载加速源
npm config set registry https:
npm config get registry
3.安装前端源代码的依赖
进入源代码目录,执行命令,安装即可
npm install -g yarn
[root@master-61 /opt/lina-v2.12.0]
4.修改前端的js文件,设置一些运行参数
[root@master-61 /opt/lina-v2.12.0]
ENV = 'development'
VUE_APP_BASE_API = ''
VUE_APP_PUBLIC_PATH = '/ui/'
VUE_CLI_BABEL_TRANSPILE_MODULES = true
VUE_APP_LOGIN_PATH = '/core/auth/login/'
VUE_APP_LOGOUT_PATH = '/core/auth/logout/'
VUE_APP_CORE_HOST = 'http://localhost:8080'
VUE_APP_ENV = 'development'
5.运行前端(后台运行)
[root@master-61 /opt/lina-v2.12.0]
[1] 16518
[root@master-61 /opt/lina-v2.12.0]
[root@master-61 /opt/lina-v2.12.0]
[1]+ Running nohup yarn serve &
[root@master-61 /opt/lina-v2.12.0]
tcp 0 0 0.0.0.0:9528 0.0.0.0:* LISTEN 16529/node
6.测试访问前端
访问的地址入口是前端
http:
测试访问,能确保正确看到堡垒机后台,就OK
五.部署luna前端(网页版命令行)
1. 安装luna
mkdir -p /opt/luna-v2.12.0
wget -O /opt/luna-v2.12.0.tar.gz https://github.com/jumpserver/luna/archive/refs/tags/v2.12.0.tar.gz
tar -xf luna-2.12.0.tar.gz -C /opt/luna-v2.12.0 --strip-components 1
yum -y install gcc gcc-c++
执行如下2条命令。
命令一:
安装依赖,直接执行这个命令即可,会自动寻找目录下的 package.json文件,安装前端依赖信息
[root@master-61 /opt/luna-v2.12.0]
[root@master-61 /opt/luna-v2.12.0]
安装了如下1477个依赖包。
added 1477 packages from 1909 contributors in 244.312s
11 packages are looking for funding
run `npm fund` for details
命令二:
[root@master-61 /opt/luna-v2.12.0]
[root@master-61 /opt/luna-v2.12.0]
2.修改luna 的配置文件
由于luna和 core服务部署在一台机器,因此这里的地址,不用改,用localhost
如果luna和core服务,分开在不同得机器,你得填写 core机器的ip:端口
[root@master-61 /opt/luna-v2.12.0]
{
"/koko" : {
"target" : "http://localhost:5000" ,
"secure" : false ,
"ws" : true
},
"/media/" : {
"target" : "http://localhost:8080" ,
"secure" : false ,
"changeOrigin" : true
},
"/api/" : {
"target" : "http://localhost:8080" ,
"secure" : false ,
"changeOrigin" : true
},
"/core" : {
"target" : "http://localhost:8080" ,
"secure" : false ,
"changeOrigin" : true
},
"/static" : {
"target" : "http://localhost:8080" ,
"secure" : false ,
"changeOrigin" : true
},
"/lion" : {
"target" : "http://localhost:9529" ,
"secure" : false ,
"pathRewrite" : {
"^/lion/monitor" : "/monitor"
},
"ws" : true ,
"changeOrigin" : true
}
}
3.启动luna
安装ng命令,用于启动前端服务器,注意,必须是这个版本
# 安装这个ng命令,使用这条命令,添加
npm install - g @angular / cli@1 .3 .2
# 确保ng命令装好,执行如下命令验证。
[root@master -61 / opt/ luna- v2.12 .0 ]#ng
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | | _ _|
/ △ \ | '_ \ / _` | | | | |/ _` | ' __| | | | | | |
/ ___ \| | | | (_| | | _| | | (_| | | | | ___| | ___ | |
/ _/ \_\_| | _| \__, | \__,_| _| \__,_| _| \____| _____| ___|
| ___/
Angular CLI: 7.3 .9
Node: 10.24 .1
OS: linux x64
Angular: 7.2 .15
... animations, common, compiler, compiler- cli, core, forms
... http, language - service, platform- browser
... platform- browser- dynamic , router
Package Version
@angular - devkit/ architect 0.13 .9
@angular - devkit/ build- angular 0.13 .9
@angular - devkit/ build- optimizer 0.13 .9
@angular - devkit/ build- webpack 0.13 .9
@angular - devkit/ core 7.3 .9 (cli- only )
@angular - devkit/ schematics 7.3 .9 (cli- only )
@angular / cdk 7.3 .7
@angular / cli 7.3 .9
@angular / flex- layout 7.0 .0 - beta.24
@angular / material 7.3 .7
@ngtools / webpack 7.3 .9
@schematics / angular 7.3 .9
@schematics / update 0.13 .9
rxjs 6.3 .3
typescript 3.2 .4
webpack 4.29 .0
# 后台运行命令如下,必须运行在0.0 .0 .0 地址上,否则不通。
[root@master -61 / opt/ luna- v2.12 .0 ]#nohup ng serve
# 检查端口
[root@master -61 / opt/ luna- v2.12 .0 ]#netstat - tunlp| grep 4200
tcp 0 0 0.0 .0 .0 :4200 0.0 .0 .0 :* LISTEN 7244 / @angular / cli
# 至此,luna就OK了,可以访问网页版linux命令行了。
4.测试访问luna
访问 http:
由于这个luna版本,有点问题,v2 .12 .0 ,总是需要前端工程师配合,才能精确的调通。
这里的部署,有点bug,需要指定luna的端口才可以访问到 网页版命令行。
以及luna需要去连接koko服务,才能实现远程网页,执行linux命令。
你先确保可以看到luna的页面。
六.部署koko后端(命令行版堡垒机)
早期的命令行堡垒机,是基于coco服务,是飞致云公司,基于python开发的工具
部署python的环境,运行coco代码。
后来代码升级,基于golang重构了,换为了koko。
需要提供golang的开发环境,才能运行koko
Koko 是 Go 版本的 coco,重构了 coco 的 SSH/SFTP 服务和 Web Terminal 服务。
Koko组件用于基于ssh的跳板机登录,统一管理。
jumpserver是一个 跳板机(koko)的升级版,添加了很多4A功能,完成了整个的堡垒机产品。
1.部署koko
mkdir /opt/koko-v2.12.0
cd /opt ; wget https://github.com/jumpserver/koko/releases/download/v2.12.0/koko-v2.12.0-linux-amd64.tar.gz
tar -xf koko-v2.12.0-linux-amd64.tar.gz -C /opt/koko-v2.12.0 --strip-components 1
2.配置golang的环境
配置golang的环境,也是下载即可,然后配置环境变量就可以用了
[root@master -61 /opt]
[root@master -61 /opt]
[root@master -61 /opt]
export PATH=$PATH :/opt/python369/bin :/opt/node-v10 .24.1 /bin: /opt/go/bin
[root@master -61 /opt]
[root@master -61 /opt/go/bin]
go version go1.15 linux/amd64
至此golang开发环境,go编译器已经装好
3.启动koko
[root@master-61 /opt/koko-v2.12.0 ]
CORE_HOST: http://127.0.0.1:8080
BOOTSTRAP_TOKEN: "$BOOTSTRAP_TOKEN"
BIND_HOST: 0.0 .0 .0
SSHD_PORT: 2222
HTTPD_PORT: 5000
LOG_LEVEL: DEBUG
3 .具体配置如下
[root@master-61 /opt/koko-v2.12.0 ]
CORE_HOST: http://127.0.0.1:8080
BOOTSTRAP_TOKEN: "$BOOTSTRAP_TOKEN"
BIND_HOST: 0.0 .0 .0
SSHD_PORT: 2222
HTTPD_PORT: 5000
LOG_LEVEL: DEBUG
4 .运行koko服务,首次会注册到堡垒机中,以及确保2222,和5000端口都运行了,koko才是正常运行。
[root@master-61 /opt/koko-v2.12.0 ]
5 .验证koko的运行
[root@master-61 /opt/koko-v2.12.0 ]
tcp6 0 0 :::5000 :::* LISTEN 7613 /./koko
tcp6 0 0 :::2222 :::* LISTEN 7613 /./koko
6 .至此,koko已经运行成功了
7 .确保如下操作正常即可,说明你的koko,跳板机已经可以使用,使用的是jumpserver的用户信息
ssh admin@10.0.0.61 -p 2222
账户 admin 密码www.yuchaoit.cn
4.此时你可以试试,跳板机的实际用法了
1.访问luna的网页命令行
http://10.0.0.61:4200/luna
由于还没在堡垒机中,添加你的服务器资产数据,所以说看不到服务器列表,为了验证luna和koko结合,点击文件管理功能即可。
七.部署lion(提供vnc远程桌面功能)
1.安装guacamole
mkdir /opt/guacamole-v2.12.0
cd /opt/guacamole-v2.12.0
wget http://download.jumpserver.org/public/guacamole-server-1.3.0.tar.gz
tar -xzf guacamole-server-1.3.0.tar.gz
cd guacamole-server-1.3.0/
yum -y install cairo-devel libjpeg-devel libpng-devel uuid-devel
[root@master-61 /opt/guacamole-v2.12.0/guacamole-server-1.3.0]
[root@master-61 /opt/guacamole-v2.12.0/guacamole-server-1.3.0]
ldconfig
2.安装lion程序
cd /opt
wget https://github.com/jumpserver/lion-release/releases/download/v2.12.0/lion-v2.12.0-linux-amd64.tar.gz
tar -xf lion-v2.12.0-linux-amd64.tar.gz
cd lion-v2.12.0-linux-amd64
3.修改配置文件
拷贝配置文件
[root@master-61 /opt/lion-v2.12.0-linux-amd64 ]
修改配置文件,参考如下写法
CORE_HOST: http://127.0.0.1:8080
BOOTSTRAP_TOKEN: "$BOOTSTRAP_TOKEN"
BIND_HOST: 0.0 .0 .0
HTTPD_PORT: 8081
LOG_LEVEL: DEBUG
4.启动guacd程序
/etc/init.d/guacd start
[root@master-61 /opt/lion-v2.12.0-linux-amd64]
Starting guacd: guacd[13422]: INFO: Guacamole proxy daemon (guacd) version 1.3.0 started
SUCCESS
5.启动lion进程
[root@master-61 /opt/lion-v2.12.0-linux-amd64 ]#nohup ./lion -f config.yml &
[3 ] 13435
八.部署nginx
1.部署nginx
vi /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever /$basearch /
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
yum install nginx -y
jumpserver.linux0224.cc 默认80端口即可。
2.配置nginx
cd /etc/nginx/conf.d/
[root@master-61 /etc/nginx/conf.d]
vim jumpserver.conf
server {
listen 80;
client_max_body_size 5000m;
location /luna/ {
proxy_pass http://luna:4200;
}
location /media/replay/ {
add_header Content-Encoding gzip;
root /opt/jumpserver-v2.12.0/data/;
}
location /media/ {
root /opt/jumpserver-v2.12.0/data/;
}
location /static/ {
root /opt/jumpserver-v2.12.0/data/;
}
location /koko/ {
proxy_pass http://koko:5000;
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_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade ;
proxy_set_header Connection "upgrade" ;
}
location /lion/ {
proxy_pass http://lion:8081;
proxy_buffering off;
proxy_request_buffering off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for ;
proxy_set_header Upgrade $http_upgrade ;
proxy_set_header Connection $http_connection ;
proxy_ignore_client_abort on;
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 6000;
}
location /ws/ {
proxy_pass http://core:8070;
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_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade ;
proxy_set_header Connection "upgrade" ;
}
location /api/ {
proxy_pass http://core: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://core: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 /ui/ {
proxy_pass http://lina:9528;
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;
}
}
注意,配置文件中用的都是测试域名,你要在master-61上做好hosts解析
10.0.0.61 luna koko lion core lina
最后,启动nginx,访问入口
[root@master-61 /etc/nginx/conf.d]
[root@master-61 /etc/nginx/conf.d]
访问入口是: http://10.0.0.61:80
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性