1:JumpServer 部署

JumpServer版本:https://github.com/jumpserver/jumpserver/releases

JumpServer采用一键部署脚本的交互式安装方式,安装过程非常方便,整个服务都是使用Docker容器来运行的。

参考官方快速部署文档:https://docs.jumpserver.org/zh/master/install/setup_by_fast/

安装环境要求

  • 2核CPU、8G内存,保证足够的磁盘空间;
  • CentOS 7.x系统;
  • 连接互联网;
  • 使用root用户执行。

数据库和缓存要求(推荐使用外置的数据库和缓存,以便后期扩展):

  • MySQL >= 5.7 或 MariaDB >= 10.2
  • Redis >= 5.0

自动部署

export DOCKER_IMAGE_PREFIX=swr.cn-north-1.myhuaweicloud.com
curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.7.1/quick_start.sh | bash# 如果出现问题
cd /opt/jumpserver-installer-v2.7.1
./jmsctl.sh --help

手动部署

export DOCKER_IMAGE_PREFIX=swr.cn-north-1.myhuaweicloud.com
cd /opt
yum -y install wget
wget https://github.com/jumpserver/installer/releases/download/v2.7.1/jumpserver-installer-v2.7.1.tar.gz
tar -xf jumpserver-installer-v2.7.1.tar.gz
cd jumpserver-installer-v2.7.1
cat config-example.txt

启动

到默认的安装目录/opt/jumpserver-install-v2.7.1,执行:

./jmsctl.sh start

本次实验采用自动部署的方式,安装JumpServer-2.7.1。

拓扑图

采用外置数据库和缓存的方式进行安装。

  • 数据库:部署在node100(192.168.1.100),端口3306,DB名称jumpserver,用户名jumpserver,密码123456;
  • Redis:部署在node100(192.168.1.100),端口6379,连接密码123456;
  • JumpServer:部署在node201,版本2.7.1。

1.1:安装准备

MySQL数据库和Redis已提前在node100上安装完成。

1.1.1:数据库准备

1.1.1.1:设置默认字符集为 UTF-8

因为有中文数据插入需要,MySQL需要设置默认字符集为UTF8,分别编辑mysqld.cnfmysql.cnf进行设置。

也可以在创建数据库时指定字符集为UTF-8,这样就不需要设置默认字符集了。

root@node100:~# vim /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
character-set-server=utf8root@node100:~# vim /etc/mysql/conf.d/mysql.cnf
[mysql]
default-character-set=utf8

设置完成后重启mysql:

root@node100:~# systemctl restart mysql

验证默认字符集:

mysql>  show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.04 sec)+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)

1.1.1.2:创建 jumpserver 数据库并授权用户

创建数据库:

mysql> CREATE DATABASE jumpserver;

如果未设置默认字符集为 UTF-8,则需要在创建数据库时指定字符集:

create database jumpserver default charset 'utf8';

创建jumpserver用户并授权:

mysql> GRANT ALL PRIVILEGES ON jumpserver.* TO 'jumpserver'@'192.168.1%' IDENTIFIED BY '123456';

在node201上验证jumpserver用户是否能远程登录:

[root@node201 ~]# mysql -ujumpserver -p -h192.168.1.100
Enter password: MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| jumpserver         |
+--------------------+

1.1.2:Redis 准备

redis配置文件内容如下:

root@node100:~# cat /apps/redis/etc/redis.conf
bind 0.0.0.0
protected-mode yes
port 6379
tcp-backlog 511
timeout 0
tcp-keepalive 300
daemonize yes
supervised systemd
pidfile /apps/redis/run/redis_6379.pid
loglevel notice
logfile "/apps/redis/logs/redis_6379.log"
databases 16
always-show-logo yes
save 900 1
save 300 10
save 60 10000
stop-writes-on-bgsave-error no
rdbcompression yes
rdbchecksum yes
dbfilename dump_6379.rdb
dir /apps/redis/data
slave-serve-stale-data yes
slave-read-only yes
repl-diskless-sync yes
repl-diskless-sync-delay 0
repl-disable-tcp-nodelay no
repl-backlog-size 100mb
slave-priority 100
requirepass 123456
maxmemory 536870912
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
slave-lazy-flush no
appendonly yes
appendfilename "appendonly_6379.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit slave 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60
hz 10
aof-rewrite-incremental-fsync yes

验证从node201是否能远程连接redis:

先将node100的redis-cli拷贝到node201:

root@node100:~# scp /apps/redis/bin/redis-cli 192.168.1.201:/bin
[root@node201 ~]# redis-cli -h 192.168.1.100
192.168.1.100:6379> auth 123456
OK

1.2:安装 JumpServer

1.2.1:配置 Docker 镜像仓库地址

JumpServer官方推荐使用华为云作为容器镜像服务,也给出了可用仓库地址列表,可以根据自己所在地理位置选择相对较近的地址:

区域 镜像仓库地址 使用方式
华北-北京一 swr.cn-north-1.myhuaweicloud.com export DOCKER_IMAGE_PREFIX=swr.cn-north-1.myhuaweicloud.com
华北-北京四 swr.cn-north-4.myhuaweicloud.com export DOCKER_IMAGE_PREFIX=swr.cn-north-4.myhuaweicloud.com
华南-广州 swr.cn-south-1.myhuaweicloud.com export DOCKER_IMAGE_PREFIX=swr.cn-south-1.myhuaweicloud.com
华东-上海一 swr.cn-east-3.myhuaweicloud.com export DOCKER_IMAGE_PREFIX=swr.cn-east-3.myhuaweicloud.com

JumpServer的自动部署脚本是将 Docker镜像仓库的地址设为DOCKER_IMAGE_PREFIX变量。

设置变量:

[root@node201 ~]# export DOCKER_IMAGE_PREFIX=swr.cn-north-1.myhuaweicloud.com

1.2.2:获取自动部署脚本

获取自动部署脚本quick_start.sh的内容并直接用bash运行:

因为脚本在github上,国内可能存在github访问过慢的情况,导致直接运行下方命令出现超时;

可以先在浏览器访问https://github.com/jumpserver/jumpserver/releases/download/v2.7.1/quick_start.sh,将脚本下载下来后再上传到服务器运行。

[root@node201 ~]# curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.7.1/quick_start.sh | bash

1.2.3:进行交互式自动部署

运行quick_start.sh脚本:

[root@node201 ~]# bash quick_start.sh ██╗██╗   ██╗███╗   ███╗██████╗ ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗██║██║   ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗██║██║   ██║██╔████╔██║██████╔╝███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝██   ██║██║   ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║     ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║╚════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝Version:  v2.7.1

选择语言(默认中文):

语言 Language  (cn/en)  (default cn):

1.2.3.1:安装配置 JumpServer

【注意】

前边的配置均保持默认:

>>> 安装配置 JumpServer
1. 检查配置文件
配置文件位置: /opt/jumpserver/config/config.txt
完成2. 配置 Nginx
配置文件: /opt/jumpserver/config/nginx/cert
完成3. 备份配置文件
Back up to /opt/jumpserver/config/backup/config.txt.2021-03-16_09-16-54
完成4. 配置网络
是否需要支持 IPv6? (y/n)  (默认为 n):
完成5. 配置加密密钥
自动生成 SECRETE_KEY:     CmxvOiBmbGFncz03MzxVUCxMT09QQkFDSyxSVU5OSU5HPiAgb
自动生成 BOOTSTRAP_TOKEN: CmxvOiBmbGFncz03
完成

持久化目录在安装后不可修改,所以直接配置一个大磁盘,这里配置在默认目录/opt/jumpserver

6. 配置持久化目录
修改日志录像等持久化的目录,可以找个最大的磁盘,并创建目录,如 /opt/jumpserver
注意:安装后不能更改,否则数据库可能会丢失文件系统                 容量  已用  可用 已用% 挂载点
/dev/sdb1                 50G   34M   50G    1% /opt
/dev/sda1                509M  139M  370M   28% /boot持久化存储目录 (默认为 /opt/jumpserver):
完成

选择使用外部MySQL和Redis,分别配置数据库和redis为之前准备好的服务器。

7. 配置 MySQL
是否使用外部 MySQL? (y/n)  (默认为 n): y
请输入 mysql 的主机地址 (无默认值): 192.168.1.100
请输入 mysql 的端口 (默认为 3306):
请输入 mysql 的数据库 (默认为 jumpserver):
请输入 mysql 的用户名 (无默认值): jumpserver
请输入 mysql 的密码 (无默认值): 123456
完成8. 配置 Redis
是否使用外部 Redis? (y/n)  (默认为 n): y
请输入 Redis 的主机地址 (无默认值): 192.168.1.100
请输入 Redis 的端口 (默认为 6379):
请输入 Redis 的密码 (无默认值): 123456
完成

1.2.3.2:安装配置 Docker

自动部署脚本会下载、配置并启动docker,完成容器运行环境的准备工作,并拉取相关镜像;
过程中仅需指定Docker容器的存储路径,其它操作由脚本自动完成。

这里,在/opt/jumpserver-installer-v2.7.1/scripts/0_prepare.sh脚本中就会调用之前设置的环境变量DOCKER_IMAGE_PREFIX

[root@node201 ~]# cd /opt/jumpserver-installer-v2.7.1/scripts/[root@node201 scripts]# grep 'DOCKER_IMAGE_PREFIX' ./*
./0_prepare.sh:DOCKER_IMAGE_PREFIX="${DOCKER_IMAGE_PREFIX-}"
./0_prepare.sh:    if [[ -n "${DOCKER_IMAGE_PREFIX}" && $(image_has_prefix "${image}") == "0" ]]; then
./0_prepare.sh:      docker pull "${DOCKER_IMAGE_PREFIX}/${image}"
./0_prepare.sh:      docker tag "${DOCKER_IMAGE_PREFIX}/${image}" "${image}"

安装 Docker,下载Docker Compose:

>>> 安装配置 Docker
1. 安装 Docker
开始下载 Docker 程序 ...
--2021-03-16 09:17:25--  https://mirrors.aliyun.com/docker-ce/linux/static/stable/x86_64/docker-18.06.2-ce.tgz
正在解析主机 mirrors.aliyun.com (mirrors.aliyun.com)... 223.15.177.244, 223.15.177.238, 223.15.177.239, ...
正在连接 mirrors.aliyun.com (mirrors.aliyun.com)|223.15.177.244|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:43834194 (42M) [application/octet-stream]
正在保存至: “/tmp/docker.tar.gz”100%[=============================================================================================================================>] 43,834,194  18.3MB/s 用时 2.3s   2021-03-16 09:17:27 (18.3 MB/s) - 已保存 “/tmp/docker.tar.gz” [43834194/43834194])开始下载 Docker Compose 程序 ...
--2021-03-16 09:17:29--  https://get.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64
正在解析主机 get.daocloud.io (get.daocloud.io)... 106.75.86.15
正在连接 get.daocloud.io (get.daocloud.io)|106.75.86.15|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 302 FOUND
位置:https://dn-dao-github-mirror.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64 [跟随至新的 URL]
--2021-03-16 09:17:30--  https://dn-dao-github-mirror.daocloud.io/docker/compose/releases/download/1.27.4/docker-compose-Linux-x86_64
正在解析主机 dn-dao-github-mirror.daocloud.io (dn-dao-github-mirror.daocloud.io)... 240e:925:7000:1:3::3fd, 240e:925:7000:1:3::3fe, 223.15.177.239, ...
正在连接 dn-dao-github-mirror.daocloud.io (dn-dao-github-mirror.daocloud.io)|240e:925:7000:1:3::3fd|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:12218968 (12M) [application/x-executable]
正在保存至: “/tmp/docker-compose”100%[=============================================================================================================================>] 12,218,968  15.2MB/s 用时 0.8s   2021-03-16 09:17:31 (15.2 MB/s) - 已保存 “/tmp/docker-compose” [12218968/12218968])完成

配置Docker:

这里我将Docker的存储目录保持了默认的/opt/docker,因为根分区较小,专门挂载了一块磁盘在/opt,可以保证实验所需的磁盘空间。

2. 配置 Docker
修改 Docker 镜像容器的默认存储目录, 可以找个最大的磁盘, 并创建目录, 如 /opt/docker
文件系统                 容量  已用  可用 已用% 挂载点
/dev/sdb1                 50G  185M   50G    1% /opt
/dev/sda1                509M  139M  370M   28% /bootDocker 镜像存储目录 (默认为 /opt/docker):
完成

启动Docker,并拉取相关镜像:

可以看到分别拉取了mysql、redis、nginx,以及jumpserver的各组件镜像。

3. 启动 Docker
Docker version has changed or Docker configuration file has been changed, do you want to restart? (y/n)  (默认为 y):
完成>>> 加载 Docker 镜像
[jumpserver/redis:6-alpine]
[jumpserver/mysql:5]
[jumpserver/nginx:alpine2]
[jumpserver/luna:v2.7.1]
[jumpserver/core:v2.7.1]
[jumpserver/koko:v2.7.1]
[jumpserver/guacamole:v2.7.1]
[jumpserver/lina:v2.7.1]

1.2.3.3:帮助信息

>>> 安装完成了
1. 可以使用如下命令启动, 然后访问
./jmsctl.sh start2. 其它一些管理命令
./jmsctl.sh stop
./jmsctl.sh restart
./jmsctl.sh backup
./jmsctl.sh upgrade
更多还有一些命令, 你可以 ./jmsctl.sh --help 来了解3. Web 访问
http://192.168.1.201:8080
https://192.168.1.201:8443
默认用户: admin  默认密码: admin4. SSH/SFTP 访问
ssh admin@192.168.1.201 -p2222
sftp -P2222 admin@192.168.1.2015. 更多信息
我们的官网: https://www.jumpserver.org/
我们的文档: https://docs.jumpserver.org/

1.3:启动并访问 JumpServer

1.3.1:启动并验证

使用jmsctl.sh脚本启动JumpServer:

脚本路径为/opt/jumpserver-installer-v2.7.1/jmsctl.sh

[root@node201 ~]# cd /opt/jumpserver-installer-v2.7.1/
[root@node201 jumpserver-installer-v2.7.1]# ./jmsctl.sh start
Creating network "jms_net" with driver "bridge"
Creating jms_core ... done
Creating jms_koko      ... done
Creating jms_luna      ... done
Creating jms_celery    ... done
Creating jms_lina      ... done
Creating jms_guacamole ... done
Creating jms_nginx     ... done

启动时,就是通过docker-compose编排启动yml中定义好的容器,yml文件如下:

[root@node201 ~]# ll /opt/jumpserver-installer-v2.7.1/compose/
总用量 40
drwxrwxr-x 2 root root   29 1月  21 19:45 config_static
-rw-rw-r-- 1 root root 2785 1月  21 19:45 docker-compose-app.yml
-rw-rw-r-- 1 root root  652 1月  21 19:45 docker-compose-es.yml
-rw-rw-r-- 1 root root  668 1月  21 19:45 docker-compose-lb.yml
-rw-rw-r-- 1 root root  590 1月  21 19:45 docker-compose-mysql.yml
-rw-rw-r-- 1 root root  196 1月  21 19:45 docker-compose-network_ipv6.yml
-rw-rw-r-- 1 root root  134 1月  21 19:45 docker-compose-network.yml
-rw-rw-r-- 1 root root  449 1月  21 19:45 docker-compose-omnidb.yml
-rw-rw-r-- 1 root root  588 1月  21 19:45 docker-compose-redis.yml
-rw-rw-r-- 1 root root  605 1月  21 19:45 docker-compose-task.yml
-rw-rw-r-- 1 root root  542 1月  21 19:45 docker-compose-xpack.yml

验证容器启动情况:

[root@node201 ~]# docker ps

验证数据库:

[root@node201 ~]# mysql -ujumpserver -p -h192.168.1.100
Enter password: MySQL [(none)]> use jumpserver;
Database changedMySQL [jumpserver]> show tables;
+----------------------------------------------+
| Tables_in_jumpserver                         |
+----------------------------------------------+
| applications_application                     |
| assets_adminuser                             |
| assets_asset                                 |
| assets_asset_labels                          |
……

1.3.2:访问 JumpServer

浏览器输入http://192.168.1.201:8080/,输入默认管理员账号admin/admin:

会提示重置密码:

使用重置的密码登录,进入JumpServer页面:

JumpServer 1:JumpServer 部署相关推荐

  1. 堡垒机jumpserver集群部署

    本文参考老广二次开发后的堡垒机部署方案,在此基础上进行集群部署,提高其可靠性.尽管国外已经有类似的功能的堡垒机的发布,但是还是要感谢老广在百忙之中开发出更加实用的堡垒机. 本文内容虽然亲测,但内容难免 ...

  2. Jumpserver堡垒机部署(完整过程)

    文章目录 一.跳板机.堡垒机 1.跳板机 2.堡垒机(为什么需要堡垒机) 2.1堡垒机的作用 2.2堡垒机的运维思想 2.3堡垒机的核心功能 2.4堡垒机应用的场景 2.5企业角度看堡垒机 2.6管理 ...

  3. centos7 Jumpserver堡垒机部署以及使用详情

    一.跳板机,堡垒机的概念 1.跳板机 跳板机就是一台服务器,运维人员在使用管理服务器的时候,必须先连接上跳板机,然后才能去操控内网中的服务器,才能登录到目标设备上进行维护和操作. 跳板机的缺点,仅仅实 ...

  4. centos7 JumpServer服务的部署

    一.1.linux服务器准备 2cpu 4G内存 50G硬盘 2.环境准备,关闭防火墙服务 iptables -F systemctl disabled firewalld systemctl sto ...

  5. Jumpserver堡垒机部署和基本使用

    Jumpserver堡垒机部署和基本使用 一.JumpServer介绍 1.JumpServer介绍 2.JumpServer特点 3.JumpServerd官网 二.环境要求 1.数据库版本要求 2 ...

  6. Jumpserver堡垒机部署

    Jumpserver 是全球首款完全开源的堡垒机, 使用 GNU GPL v2.0 开源协议, 是符合 4A 的专业运维审计系统. Jumpserver 使用 Python / Django 进行开发 ...

  7. jumpserver堡垒机部署及添加linux主机资产

    jumpserver部署及添加资产 1.部署jumpserver 1.1.安装docker及docker-compose 1.安装docker [root@jumpserver ~]# wget -O ...

  8. 堡垒机JumpServer(一):部署运维安全审计系统

    准备最低环境配置:服务器:2核4G,200G硬盘, 64 位 Centos 7 主机:作用:运维与安全,是符合 4A 的专业运维安全审计系统. JumpServer核心功能: 1.jumpserver ...

  9. jumpserver堡垒机部署及应用

    jumpserver堡垒机相关链接: FIT2CLOUD 飞致云 - 为数字经济时代创造好软件 JumpServer - 开源堡垒机 - 官网 安装部署 - JumpServer 文档 准备一台Lin ...

  10. jump-server 安装部署

    配置清单 主机名称                IP地址             最低配置             软件名称          版本 jump-server     192.168. ...

最新文章

  1. java8-06-自定义Collector-JoinCollector
  2. 小学数学闯关游戏 java代码_Java语言实现小学数学练习
  3. 【论文解读】一种基于时间卷积网络的知识驱动股票趋势预测方法
  4. 标准C程序设计七---120
  5. (1) 还原二叉树 (25 分)
  6. 互联网对实体经济的三轮冲击
  7. 如何用 latex 排版日文 (xelatex)
  8. 记录:GoogleMap 谷歌地图经纬度转屏幕坐标z,y,偏移量
  9. 如何快速通过信息系统管理工程师考试
  10. 投资理财之基金篇(一) - 认识基金
  11. 瘟疫公司中国版(Android)手动破解内购
  12. 港股通不得不了解的汇率问题
  13. JavaScript之正则表达式验证邮箱,手机号码,身份证,网址,QQ,邮政编码,中文
  14. 【无标题】百度地图的基本使用
  15. 微信小程序如何申请注册教程
  16. Flink流式计算从入门到实战 二
  17. 9700 功耗测试软件,温度与功耗测试 - 酷睿i9-9900K/i7-9700K同步评测:八核的时代来了 - 超能网...
  18. 怎样快速实现整篇文档中英互译?这里有简单的方法
  19. Threshold ECDSA
  20. java基础练习-超市购物系统

热门文章

  1. Python创建文字图片(居中)/多图片合并(PIL)
  2. 三极管和上拉电阻与下拉电阻
  3. html 验证邮箱地址,验证邮箱地址唯一性.html
  4. css3 calc函数不生效问题
  5. VR全景助力健身房品牌升级,大幅度提升用户到店率
  6. 学生用计算机小数怎么转成分数,学生作品 | 小数和分数如何转换
  7. Codeforces Round #658 (Div. 1) A2. Prefix Flip (Hard Version)
  8. 粒子群优化算法(Particle Swarm Optimization)
  9. 服务器指定gpu命令,用于亚马逊网络服务深度学习的10个命令行技巧
  10. 显示年月,注册页面和后台数据交互,不涉及数据库