第十二周

内容纲要

一、安装jumpserver

基于容器部署单台:2核、4G内存、50G硬盘--最低配置
mysql版本大于5.7
redis版本大于6.0

基于docker部署:
环境:10.0.0.136--rocky

1、设置docker.repo

```bash
cat /etc/yum.repo.d/docker.repo
[docker-ce-stable]
name=Docker CE Stable - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-stable-debuginfo]
name=Docker CE Stable - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-stable-source]
name=Docker CE Stable - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/stable
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test]
name=Docker CE Test - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test-debuginfo]
name=Docker CE Test - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-test-source]
name=Docker CE Test - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/test
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-nightly]
name=Docker CE Nightly - $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-nightly-debuginfo]
name=Docker CE Nightly - Debuginfo $basearch
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/debug-$basearch/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

[docker-ce-nightly-source]
name=Docker CE Nightly - Sources
baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/source/nightly
enabled=0
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
#配置阿里云镜像加速:
mkdir -p /etc/docker
cat /etc/docker/daemon.json
{
  "registry-mirrors": ["https://npud8xro.mirror.aliyuncs.com"]
}

2、安装mysql

docker run --rm --name mysql -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jumpserver -e MYSQL_USER=jumpserver -e MYSQL_PASSWORD=123456 -d -p 3306:3306 mysql:5.7.30

###默认的mysql不符合jumpserver配置,需修改。
docker stop mysql

准备相关配置和目录
mkdir -p /etc/mysql/mysql.conf.d/
mkdir -p /etc/mysql/conf.d/

指定字符集
tee /etc/mysql/mysql.conf.d/mysqld.cnf <<EOF
[mysqld]
pid-file= /var/run/mysqld/mysqld.pid
socket= /var/run/mysqld/mysqld.sock
datadir= /var/lib/mysql
symbolic-links=0
character-set-server=utf8 
EOF

tee /etc/mysql/conf.d/mysql.cnf <<EOF
[mysql]
default-character-set=utf8
EOF

将上面宿主机的设置好的配置文件挂载至MySQL容器
docker run -d -p 3306:3306 --name mysql --restart always -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=jumpserver -e MYSQL_USER=jumpserver -e MYSQL_PASSWORD=123456 -v /data/mysql:/var/lib/mysql -v /etc/mysql/mysql.conf.d/mysqld.cnf:/etc/mysql/mysql.conf.d/mysqld.cnf -v /etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf mysql:5.7.30

验证mysql
docker exec -it mysql sh
# mysql -p123456 -e 'show variables like "character%"'
# mysql -p123456 -e 'show variables like "collation%"'
# mysql -p123456 -e 'select user,host from mysql.user'

验证是否可以远程登录:
mysql -ujumpserver -p123456 -h10.0.0.136

3、安装redis

`docker run -d -p 6379:6379 --name redis --restart always redis:6.2.5`

验证redis是否正常连接
redis-cli -h 10.0.0.136

4、生成key,官方有文档

#!/bin/bash
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=$SECRET_KEY;
else
echo SECRET_KEY=$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=$BOOTSTRAP_TOKEN;
else
echo BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN;
fi

运行脚本,结果显示key和token。
可用tail -n2 ~/.bashrc 查看生成的key和token

5、看官方文档、看官方文档、看官方文档。别人讲的终归是别人讲的也有可能是错的。。。

地址:https://docs.jumpserver.org/zh/master/install/setup_by_fast/#_3

官网安装命令:
cd /opt
wget https://github.com/jumpserver/installer/releases/download/v2.27.0/jumpserver-installer-v2.27.0.tar.gz #下载安装包
tar -xf jumpserver-installer-v2.27.0.tar.gz
cd jumpserver-installer-v2.27.0

# 根据需要修改配置文件模板, 如果不清楚用途可以跳过修改,这里是已经改过的。jumpserver安装是会根据配置文件自动选择

cat config-example.txt

# JumpServer configuration file example.
#
# 如果不了解用途可以跳过修改此配置文件, 系统会自动填入
# 完整参数文档 https://docs.jumpserver.org/zh/master/admin-guide/env/

################################## 镜像配置 ###################################
#
# 国内连接 docker.io 会超时或下载速度较慢, 开启此选项使用华为云镜像加速
# 取代旧版本 DOCKER_IMAGE_PREFIX
#
DOCKER_IMAGE_MIRROR=1

################################## 安装配置 ###################################
#
# JumpServer 数据库持久化目录, 默认情况下录像、任务日志都在此目录
# 请根据实际情况修改, 升级时备份的数据库文件(.sql)和配置文件也会保存到该目录
#
VOLUME_DIR=/opt/jumpserver

# 加密密钥, 迁移请保证 SECRET_KEY 与旧环境一致, 请勿使用特殊字符串
# (*) Warning: Keep this value secret.
# (*) 勿向任何人泄露 SECRET_KEY
#
SECRET_KEY=WoGoMXpkhmTN1lePpx694NysQfCefj8R9jLDuDuQ5W0MO9XCeS

# 组件向 core 注册使用的 token, 迁移请保持 BOOTSTRAP_TOKEN 与旧环境一致,
# 请勿使用特殊字符串
# (*) Warning: Keep this value secret.
# (*) 勿向任何人泄露 BOOTSTRAP_TOKEN
#
BOOTSTRAP_TOKEN=LcvHUEldOsJ1ZAHO

# 日志等级 INFO, WARN, ERROR
#
LOG_LEVEL=ERROR

# JumpServer 容器使用的网段, 请勿与现有的网络冲突, 根据实际情况自行修改
#
DOCKER_SUBNET=192.168.250.0/24

# ipv6 nat, 正常情况下无需开启
# 如果宿主不支持 ipv6 开启此选项将会导致无法获取真实的客户端 ip 地址
#
USE_IPV6=0
DOCKER_SUBNET_IPV6=fc00:1010:1111:200::/64

################################# MySQL 配置 ##################################
# 外置 MySQL 需要输入正确的 MySQL 信息, 内置 MySQL 系统会自动处理
#
DB_HOST=10.0.0.136
DB_PORT=3306
DB_USER=jumpserver
DB_PASSWORD=123456
DB_NAME=jumpserver

################################# Redis 配置 ##################################
# 外置 Redis 需要请输入正确的 Redis 信息, 内置 Redis 系统会自动处理
#
REDIS_HOST=10.0.0.136
REDIS_PORT=6379
REDIS_PASSWORD=

################################## 访问配置 ###################################
# 对外提供服务端口, 如果与现有服务冲突请自行修改
# 如果不想对外提供访问可以使用 127.0.0.1:<port>, eg: 127.0.0.1:33060
#
HTTP_PORT=80
SSH_PORT=2222
MAGNUS_PORTS=30000-30100

################################# HTTPS 配置 #################################
# 参考 https://docs.jumpserver.org/zh/master/admin-guide/proxy/ 配置
#
# USE_LB=1
# HTTPS_PORT=443
# SERVER_NAME=your_domain_name
# SSL_CERTIFICATE=your_cert
# SSL_CERTIFICATE_KEY=your_cert_key
#
CLIENT_MAX_BODY_SIZE=4096m

################################## 组件配置 ###################################
# 组件注册使用, 默认情况下向 core 容器注册, 集群环境需要修改为集群 vip 地址
#
CORE_HOST=http://core:8080

# Task 配置, 是否启动 jms_celery 容器, 单节点必须开启
#
USE_TASK=1

# XPack 包, 企业版本自动开启, 开源版本设置无效
#
RDP_PORT=3389

# Core Session 定义,
# SESSION_COOKIE_AGE 表示闲置多少秒后 session 过期,
# SESSION_EXPIRE_AT_BROWSER_CLOSE=true 表示关闭浏览器即 session 过期
#
# SESSION_COOKIE_AGE=86400
SESSION_EXPIRE_AT_BROWSER_CLOSE=True

# Lion 开启字体平滑, 优化体验
#
JUMPSERVER_ENABLE_FONT_SMOOTHING=True

################################## 其他配置 ##################################
# 终端使用宿主 HOSTNAME 标识, 首次安装自动生成
#
SERVER_HOSTNAME=${HOSTNAME}

# 当前运行的 JumpServer 版本号, 安装和升级完成后自动生成
#
CURRENT_VERSION=

6、安装过程基本都是默认即可。一路回车,安装完毕后./jmctl.sh start启动即可

# 安装
./jmsctl.sh install

# 启动
./jmsctl.sh start

# 安装完成后配置文件 /opt/jumpserver/config/config.txt

cd /opt/jumpserver-installer-v2.27.0

# 启动
./jmsctl.sh start

# 停止
./jmsctl.sh down

# 卸载
./jmsctl.sh uninstall

# 帮助
./jmsctl.sh -h

7、启动成功后的url:10.0.0.136

默认账户:admin 密码一致。

创建顺序:
创建登录jumpserver用户,创建组,将用户加进组里。
创建登录服务器的特权用户(root),普通用户,
添加资产--服务器,绑定特权用户和普通用户
测试连接,推送普通用户致服务器,在普通用户界面添加资产

资产授权:授权登录jumpserver的用户可远程访问哪几台服务器。

也可创建审计用户,查看普通用户在服务器的操作、录像、回放、强制踢人等操作。

8、先创建命令过滤器再创建里面的规则,不允许普通用户删除文件、远程其他服务器等操作

9、也支持使用特定格式导入导出资产列表

10、详细过程

1、

2、

3、

二、升级jumpserver

1、查看jumpserver升级帮助

#程序包内的执行程序帮助里讲的很清楚,执行命令即可

./jmsctl.sh -h
#执行这条命令查看升级选项,这里发现check_update为检查和升级选项,执行即可
JumpServer Deployment Management Script

Usage: 
  ./jmsctl.sh [COMMAND] [ARGS...]
  ./jmsctl.sh --help

Installation Commands: 
  install           Install JumpServer
  upgrade [version] Upgrade JumpServer
  check_update      Check for updates JumpServer
  reconfig          Reconfiguration JumpServer

Management Commands: 
  start             Start   JumpServer
  stop              Stop    JumpServer
  close             Close   JumpServer
  restart           Restart JumpServer
  status            Check   JumpServer
  down              Offline JumpServer
  uninstall         Uninstall JumpServer

More Commands: 
  load_image        Loading docker image
  backup_db         Backup database
  restore_db [file] Data recovery through database backup file
  raw               Execute the original docker-compose command
  tail [service]    View log

2、执行命令./jmsctl.sh check_update,以下为具体过程

1、

2、

3、

4、

5、

6、

7、

三、最终界面--升级成功

注意:因为docker默认存的镜像位置是在/var/lib/docker中,要保证/var的磁盘空间够大,我这里第一次升级因为空间只有5G,连docker旧版和新版images都放不下。导致升级失败,还好我做了逻辑卷可以扩展。附扩展步骤:

#扩容前
[root@rocky ~]# df -h
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   1.8G     0  1.8G   0% /dev
tmpfs                      1.9G     0  1.9G   0% /dev/shm
tmpfs                      1.9G   18M  1.8G   1% /run
tmpfs                      1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/rl_rocky-root   10G  2.5G  7.6G  25% /
/dev/mapper/rl_rocky-var   5.0G  4.9G  163M  97% /var
/dev/mapper/rl_rocky-opt    20G  240M   20G   2% /opt
/dev/mapper/rl_rocky-data   10G  334M  9.7G   4% /data
/dev/nvme0n1p1            1014M  216M  799M  22% /boot
tmpfs                      371M     0  371M   0% /run/user/0

#虚拟机添加完硬盘开始扩容
#创建物联卷
[root@rocky ~]# pvcreate /dev/nvme0n2
  Physical volume "/dev/nvme0n2" successfully created.

#扩容卷组
[root@rocky ~]# vgextend rl_rocky /dev/nvme0n2
  Volume group "rl_rocky" successfully extended

#逻辑卷扩容
[root@rocky ~]# lvextend -L +15G /dev/rl_rocky/var 
  Size of logical volume rl_rocky/var changed from 5.00 GiB (1280 extents) to 20.00 GiB (5120 extents).
  Logical volume rl_rocky/var successfully resized.

#结果,更新文件系统
[root@rocky ~]# xfs_growfs /dev/rl_rocky/var
meta-data=/dev/mapper/rl_rocky-var isize=512    agcount=4, agsize=327680 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=1310720, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 1310720 to 5242880

#查看扩容结果
[root@rocky ~]# df -h
Filesystem                 Size  Used Avail Use% Mounted on
devtmpfs                   1.8G     0  1.8G   0% /dev
tmpfs                      1.9G     0  1.9G   0% /dev/shm
tmpfs                      1.9G   18M  1.8G   1% /run
tmpfs                      1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/mapper/rl_rocky-root   10G  2.5G  7.6G  25% /
/dev/mapper/rl_rocky-var    20G  5.0G   16G  25% /var
/dev/mapper/rl_rocky-opt    20G  240M   20G   2% /opt
/dev/mapper/rl_rocky-data   10G  334M  9.7G   4% /data
/dev/nvme0n1p1            1014M  216M  799M  22% /boot
tmpfs                      371M     0  371M   0% /run/user/0

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注