1、基础设置

# 版本说明

操作系统:centos7.
jumpserver:1.5.

# 升级所有包同时也升级软件和系统内核

yum update -y

# selinux配置

setenforce
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

# 安装依赖包

yum -y install wget gcc epel-release git vim

2、安装Redis

# 安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke

yum -y install redis
systemctl enable redis
systemctl start redis

3、安装MySQL

# 安装 MySQL(centos7下叫mariadb)

yum -y install mariadb mariadb-devel mariadb-server MariaDB-shared
systemctl enable mariadb
systemctl start mariadb

# 创建数据库 Jumpserver 并授权

mysql -uroot
create database jumpserver default charset 'utf8';
grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'wmq20151118';
flush privileges;

4、配置Python环境

# 安装 Python3.6

yum -y install python36 python36-devel

# 配置并载入 Python3 虚拟环境

cd /opt
python3. -m venv py3
source /opt/py3/bin/activate

# 看到下面的提示符代表成功, 以后运行 Jumpserver 都要先运行以上 source 命令, 载入环境后默认以下所有命令均在该虚拟环境中运行

(py3) [root@localhost py3]

5、安装Jumpserver

# 下载 Jumpserver

cd /opt/
git clone --depth= https://github.com/jumpserver/jumpserver.git

# 安装依赖 RPM 包

yum -y install $(cat /opt/jumpserver/requirements/rpm_requirements.txt)

# 安装 Python 库依赖

pip install --upgrade pip setuptools
pip install -r /opt/jumpserver/requirements/requirements.txt

# 复制 Jumpserver 配置文件

cd /opt/jumpserver
cp config_example.yml config.yml

# 生成随机SECRET_KEY

加密秘钥 生产环境中请修改为随机字符串, 请勿外泄, PS: 纯数字不可以

SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0- | head -c `
echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc

# 生成随机BOOTSTRAP_TOKEN

预共享Token coco和guacamole用来注册服务账号, 不在使用原来的注册接受机制

BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0- | head -c `
echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc

# 查看SECRET_KEY、BOOTSTRAP_TOKEN

cat ~/.bashrc
SECRET_KEY=c1NVKkBQonam9CqX8AWqLiCt4PMGmJTr3DYFGePG0Nz3QD9uY4
BOOTSTRAP_TOKEN=nfmBa3WkbQ8leRRb

# 修改配置文件

sed -i "s/SECRET_KEY:/SECRET_KEY: $SECRET_KEY/g" /opt/jumpserver/config.yml
sed -i "s/BOOTSTRAP_TOKEN:/BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/jumpserver/config.yml
sed -i "s/# DEBUG: true/DEBUG: false/g" /opt/jumpserver/config.yml
sed -i "s/# LOG_LEVEL: DEBUG/LOG_LEVEL: ERROR/g" /opt/jumpserver/config.yml
sed -i "s/# SESSION_EXPIRE_AT_BROWSER_CLOSE: false/SESSION_EXPIRE_AT_BROWSER_CLOSE: true/g" /opt/jumpserver/config.yml
sed -i "s/DB_PASSWORD: /DB_PASSWORD: $DB_PASSWORD/g" /opt/jumpserver/config.yml

# 查看完整 config.yml 配置文件

cat /opt/jumpserver/config.yml

# SECURITY WARNING: keep the secret key used in production secret!
# 加密秘钥 生产环境中请修改为随机字符串,请勿外泄, 可使用命令生成
# $ cat /dev/urandom | tr -dc A-Za-z0- | head -c ;echo
SECRET_KEY: c1NVKkBQonam9CqX8AWqLiCt4PMGmJTr3DYFGePG0Nz3QD9uY4 # SECURITY WARNING: keep the bootstrap token used in production secret!
# 预共享Token coco和guacamole用来注册服务账号,不在使用原来的注册接受机制
BOOTSTRAP_TOKEN: nfmBa3WkbQ8leRRb # Development env open this, when error occur display the full process track, Production disable it
# DEBUG 模式 开启DEBUG后遇到错误时可以看到更多日志
DEBUG: false # DEBUG, INFO, WARNING, ERROR, CRITICAL can set. See https://docs.djangoproject.com/en/1.10/topics/logging/
# 日志级别
LOG_LEVEL: ERROR
# LOG_DIR: # Session expiration setting, Default hour, Also set expired on on browser close
# 浏览器Session过期时间,默认24小时, 也可以设置浏览器关闭则过期
# SESSION_COOKIE_AGE:
SESSION_EXPIRE_AT_BROWSER_CLOSE: true # Database setting, Support sqlite3, mysql, postgres ....
# 数据库设置
# See https://docs.djangoproject.com/en/1.10/ref/settings/#databases # SQLite setting:
# 使用单文件sqlite数据库
# DB_ENGINE: sqlite3
# DB_NAME: # MySQL or postgres setting like:
# 使用Mysql作为数据库
DB_ENGINE: mysql
DB_HOST: 127.0.0.1
DB_PORT:
DB_USER: jumpserver
DB_PASSWORD: wmq20151118
DB_NAME: jumpserver # When Django start it will bind this host and port
# ./manage.py runserver 127.0.0.1:
# 运行时绑定端口
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: # Use Redis as broker for celery and web socket
# Redis配置
REDIS_HOST: 127.0.0.1
REDIS_PORT:
# REDIS_PASSWORD:
# REDIS_DB_CELERY:
# REDIS_DB_CACHE: # Use OpenID authorization
# 使用OpenID 来进行认证设置
# BASE_SITE_URL: http://localhost:8080
# AUTH_OPENID: false # True or False
# AUTH_OPENID_SERVER_URL: https://openid-auth-server.com/
# AUTH_OPENID_REALM_NAME: realm-name
# AUTH_OPENID_CLIENT_ID: client-id
# AUTH_OPENID_CLIENT_SECRET: client-secret
#
# Use Radius authorization
# 使用Radius来认证
# AUTH_RADIUS: false
# RADIUS_SERVER: localhost
# RADIUS_PORT:
# RADIUS_SECRET: # OTP settings
# OTP/MFA 配置
# OTP_VALID_WINDOW:
# OTP_ISSUER_NAME: Jumpserver

# 运行 Jumpserver

cd /opt/jumpserver
./jms start all -d

# 开机自启

vim /usr/lib/systemd/system/jms.service

[Unit]
Description=jms
After=network.target mariadb.service redis.service
Wants=mariadb.service redis.service [Service]
Type=forking
Environment="PATH=/opt/py3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
ExecStart=/opt/jumpserver/jms start all -d
ExecReload=
ExecStop=/opt/jumpserver/jms stop [Install]
WantedBy=multi-user.target

6、安装coco

cd /opt/
git clone https://github.com/jumpserver/coco.git
cd /opt/coco
yum -y install $(cat /opt/coco/requirements/rpm_requirements.txt)
pip install -r /opt/coco/requirements/requirements.txt

# 复制配置文件

cp config_example.yml config.yml

# 配置文件完整配置

cat /opt/coco/config.yml

# 项目名称, 会用来向Jumpserver注册, 识别而已, 不能重复
# NAME: {{ Hostname }} # Jumpserver项目的url, api请求注册会使用
CORE_HOST: http://127.0.0.1:8080 # Bootstrap Token, 预共享秘钥, 用来注册coco使用的service account和terminal
# 请和jumpserver 配置文件中保持一致,注册完成后可以删除
BOOTSTRAP_TOKEN: nfmBa3WkbQ8leRRb # 启动时绑定的ip, 默认 0.0.0.0
# BIND_HOST: 0.0.0.0 # 监听的SSH端口号, 默认2222
# SSHD_PORT: # 监听的HTTP/WS端口号,默认5000
# HTTPD_PORT: # 项目使用的ACCESS KEY, 默认会注册,并保存到 ACCESS_KEY_STORE中,
# 如果有需求, 可以写到配置文件中, 格式 access_key_id:access_key_secret
# ACCESS_KEY: null # ACCESS KEY 保存的地址, 默认注册后会保存到该文件中
# ACCESS_KEY_FILE: data/keys/.access_key # 加密密钥
# SECRET_KEY: null # 设置日志级别 [DEBUG, INFO, WARN, ERROR, FATAL, CRITICAL]
LOG_LEVEL: ERROR # 日志存放的目录
# LOG_DIR: logs # SSH白名单
# ALLOW_SSH_USER: all # SSH黑名单, 如果用户同时在白名单和黑名单,黑名单优先生效
# BLOCK_SSH_USER:
# - # 和Jumpserver 保持心跳时间间隔
# HEARTBEAT_INTERVAL: # Admin的名字,出问题会提示给用户
# ADMINS: '' # SSH连接超时时间 (default seconds)
# SSH_TIMEOUT: # 语言 [en,zh]
# LANGUAGE_CODE: zh # SFTP的根目录, 可选 /tmp, Home其他自定义目录
# SFTP_ROOT: /tmp # SFTP是否显示隐藏文件
# SFTP_SHOW_HIDDEN_FILE: false # 是否复用和用户后端资产已建立的连接(用户不会复用其他用户的连接)
# REUSE_CONNECTION: true

# 后台启动coco

/opt/coco/cocod start -d

# 开机自启

vim /usr/lib/systemd/system/coco.service

[Unit]
Description=coco
After=network.target jms.service [Service]
Type=forking
PIDFile=/opt/coco/coco.pid
Environment="PATH=/opt/py3/bin"
ExecStart=/opt/coco/cocod start -d
ExecReload=
ExecStop=/opt/coco/cocod stop [Install]
WantedBy=multi-user.target

7、下载Luna

# 安装 Web Terminal 前端: Luna 需要 Nginx 来运行访问 访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包, 直接解压, 不需要编译

cd /opt
wget https://github.com/jumpserver/luna/releases/download/1.5.0/luna.tar.gz

# 如果网络有问题导致下载无法完成可以使用下面地址

wget https://demo.jumpserver.org/download/luna/1.5.0/luna.tar.gz

# 解压

tar xf luna.tar.gz
chown -R root:root luna

8、安装Nginx

# 安装 Nginx, 用作代理服务器整合 Jumpserver 与各个组件

vim /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=
enabled=
yum -y install nginx

# 配置 Nginx 整合各组件

rm -rf /etc/nginx/conf.d/default.conf
vim /etc/nginx/conf.d/jumpserver.conf

server {
# http自动跳转到https
listen ;
server_name jump.wmqhealth.com;
rewrite ^ https://$http_host$request_uri? permanent;
} server {
# 代理端口, 以后将通过此端口进行访问, 不再通过8080端口
listen ssl; ssl_certificate ssl/jump.wmqhealth.com.pem;
ssl_certificate_key ssl/jump.wmqhealth.com.key; server_name jump.wmqhealth.com; # 修改成你的域名或者注释掉 client_max_body_size 100m; # 录像及文件上传大小限制 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 /socket.io/ {
proxy_pass http://localhost:5000/socket.io/; # 如果coco安装在别的服务器, 请填写它的ip
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 /coco/ {
proxy_pass http://localhost:5000/coco/; # 如果coco安装在别的服务器, 请填写它的ip
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/; # 如果guacamole安装在别的服务器, 请填写它的ip
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 / {
proxy_pass http://localhost:8080; # 如果jumpserver安装在别的服务器, 请填写它的ip
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}

# 运行 Nginx

nginx -t
systemctl enable nginx
systemctl start nginx

9、访问

# 访问 UI (注意 没有 :8080 通过 nginx 代理端口进行访问):

http://192.168.244.144
默认账号: admin 密码: admin 到会话管理-终端管理 接受 coco 等应用的注册

# 测试ssh连接
ssh -p2222 admin@192.168.244.144
密码: admin

10、附启动命令

#启动
systemctl start mariadb
systemctl start redis
systemctl start jms
systemctl start coco
systemctl start nginx

Centos 7.6 部署 Jumpserver 1.5.0的更多相关文章

  1. SpringBoot入门教程(二)CentOS部署SpringBoot项目从0到1

    在之前的博文<详解intellij idea搭建SpringBoot>介绍了idea搭建SpringBoot的详细过程, 并在<CentOS安装Tomcat>中介绍了Tomca ...

  2. centos7安装部署jumpserver

    一.系统环境准备1.查看系统版本 # cat /etc/redhat-release // 查看系统版本 CentOS Linux release (Core) # uname -a // 查看系统信 ...

  3. 基于docker-compose部署jumpserver

    基于docker-compose部署jumpserver 组件说明 Jumpserver 为管理后台, 管理员可以通过 Web 页面进行资产管理.用户管理.资产授权等操作, 用户可以通过 Web 页面 ...

  4. CentOS Mono Nginx 部署 MVC4+WebApi

    CentOS Mono Nginx 部署 MVC4+WebApi 经过几天的折磨,终于在CentOS上成功部署了MVC4+WebApi.Mono上的服务器推荐两种:Jexus(国产高人写的一款很牛的服 ...

  5. CentOS 7.2 部署Saltstack

    CentOS 7.2部署Saltstack 一.环境介绍: 服务器名称 IP地址 Salt-Master 192.168.30.141 Slave1 192.168.30.131 Slave2 192 ...

  6. CentOS 7.1静默安装11.2.0.3 64位单机数据库软件

    第1章 CentOS 7.1静默安装11.2.0.3 64位单机数据库软件 1.1  安装前的准备工作 1.1.1      软件准备 1.1.2      检查硬件 注意这里的内存应该满足要求,不然 ...

  7. 如何在CentOS 7上部署Google BBR【搬运、机翻】

    如何在CentOS 7上部署Google BBR 本文章搬运自 https://www.vultr.com/docs/how-to-deploy-google-bbr-on-centos-7 [注:文 ...

  8. Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(二)

    Asp.NetCore程序发布到CentOs(含安装部署netcore)--最佳实践(一) 接上一篇 3. Nginx配置反向代理 3.1 cnetos 安装nginx 首先,我们需要在服务器上安装N ...

  9. 在CentOS 7上部署Ghost博客

    作者:waringid 一.简介 跟静态博客不同的是,Ghost 这种轻量级的动态博客,有一个管理后台,可以直接写作和管理博客.本质上,跟 WordPress 是相通的,只是 Ghost 搭建在 No ...

随机推荐

  1. du -h

    du命令用来查看目录或文件所占用磁盘空间的大小.常用选项组合为:du -sh   一.du的功能:`du` reports the amount of disk space used by the s ...

  2. Opentrains 1519 G——最小圆覆盖

    题目 给出 $n$ 个定义在区间 $[0, 1]$ 上的一次函数 $f_i(x) = a_ix+b_i$,定义两个函数的距离为: $$dist(f,g) = \left(\max_{0\leq i\l ...

  3. 「GXOI / GZOI2019」宝牌一大堆 (DP)

    题意 LOJ传送门 题解 可以发现「七对子」 和 「国士无双」直接暴力就行了. 唯一的就是剩下的"3*4+2". 考试的时候写了个爆搜剪枝,开了O2有50pts.写的时候发现可以D ...

  4. 干货,不小心执行了rm -f,除了跑路,如何恢复?https://www.cnblogs.com/justmine/p/10359186.html

    前言 每当我们在生产环境服务器上执行rm命令时,总是提心吊胆的,因为一不小心执行了误删,然后就要准备跑路了,毕竟人不是机器,更何况机器也有bug,呵呵. 那么如果真的删除了不该删除的文件,比如数据库. ...

  5. python 当前时间多加一天、一小时、一分钟(转载)

    首先看下,datetime的使用 import datetime >>> print datetime.datetime.now() 2017-07-15 15:01:24.6190 ...

  6. netflix conductor 2.x 版本新功能简单说明

    netflix conductor 2.x 已经发布很长时间了,同时官方也发布了关于2.x 新特性的说明,当前github 行的release 版本为2.14.4 新特性 grpc 框架支持 一个可选 ...

  7. [RN] React Native ScrollView自动滑动到顶部

    react-native 自动滚到屏幕顶部,模仿微信朋友圈评论自动定位 <ScrollView showsVerticalScrollIndicator={false} style={[styl ...

  8. [linux][c/c++]代码片段01

    #include <stdio.h> #include <unistd.h> void usage() { printf("Usage:\n"); prin ...

  9. 【技术博客】Django+uginx+uwsgi框架的服务器部署

    1.登录服务器 使用ssh来直接登录到服务器terminal进行操作,推荐使用XShell和XFtp来进行远程登录和文件传输. 2.运行环境准备 本组获得的华为云服务器为ubuntu16.04版本,先 ...

  10. ip rule实现源IP路由,实现一个主机多IP(或多网段)同时通(外部看是完全两个独立IP)

    利用ip rule实现基于源地址区分路由表,实现一个主机多IP网段同时通.(外部的一个主机无论访问哪个网段都可以访问通)实际应用:创建路由表table200ip route add 192.168.1 ...