参考资料:准备工作 - JumpServer 文档
准备工作
整体部署说明
环境说明
- 除 JumpServer 自身组件外,其他组件的高可用请参考对应的官方文档进行部署。
- 按照此方式部署后,后续只需要根据需要扩容 JumpServer 节点然后添加节点到 HAProxy 即可。
- 如果已经有 HLB 或者 SLB 可以跳过 HAProxy 部署,第三方 LB 要注意 session 和 websocket 问题。
- 如果已经有 云存储 (S3/Ceph/Swift/OSS/Azure) 可以跳过 MinIO 部署,MySQL、Redis 也一样。
- 生产环境中,应该使用 Ceph 等替代 NFS,或者部署高可用的 NFS 防止单点故障。
- 整个部署环境中,需要关闭防火墙或者开启白名单,保证网络互通
数据库要求
名称 | 版本 | 默认字符集 | 默认字符编码 | TLS/SSL |
---|---|---|---|---|
MySQL | >= 5.7 | utf8 | utf8_general_ci | 支持 |
MariaDB | >= 10.6 | utf8mb3 | utf8mb3_general_ci | 支持 |
Name | Version | Sentinel | Cluster | TLS/SSL |
---|---|---|---|---|
Redis | >= 6.0 | 支持 | 不支持 | 支持 |
服务器要求
服务名称 | IP 地址 | 端口 | 使用涉及组件/服务 | 最小化硬件配置 | 标准化硬件配置 | 备注 |
---|---|---|---|---|---|---|
NFS | 10.0.110.87 | 123 | Core | 2Core/8GB RAM/100G HDD | 4Core/16GB RAM/1T SSD | 自建,目前存在单节点故障风险,可扩展 |
MySQL | rm-bp1do34u2uo2706di.mysql.rds.aliyuncs.com | 3306 | Core | 2Core/8GB RAM/90G HDD | 4Core/16GB RAM/1T SSD | 阿里云RDS |
Redis | 10.0.110.87(从库10.0.110.89) | 6379 | Core, Koko, Lion | 2Core/8GB RAM/90G HDD | 4Core/16GB RAM/1T SSD | 自建,主从模式 |
HAProxy | 192.168.100.100 | 80,443,2222,33060,33061 | All | 2Core/4GB RAM/60G HDD | 4Core/8GB RAM/60G SSD | 阿里云SLB |
JumpServer 01 | 10.0.110.87 | 80,2222,33060,33061 | HAProxy | 2Core/8GB RAM/60G HDD | 4Core/8GB RAM/90G SSD | ECS |
JumpServer 02 | 10.0.110.89 | 80,2222,33060,33061 | HAProxy | 2Core/8GB RAM/60G HDD | 4Core/8GB RAM/90G SSD | ECS |
JumpServer 03 | xx.xx.xx.xx | 80,2222,33060,33061 | HAProxy | 2Core/8GB RAM/60G HDD | 4Core/8GB RAM/90G SSD | 可扩展 |
JumpServer 04 | xx.xx.xx.xx | 80,2222,33060,33061 | HAProxy | 2Core/8GB RAM/60G HDD | 4Core/8GB RAM/90G SSD | 可扩展 |
MinIO | 120.55.16.246 | 19000,19001 | Core, KoKo, Lion | 2Core/4GB RAM/100G HDD | 4Core/8GB RAM/1T SSD | 已建,共用线上一套,通过bucket区分 |
Elasticsearch | 10.0.110.89 | 9200,9300 | Core, KoKo | 2Core/4GB RAM/100G HDD | 4Core/8GB RAM/1T SSD | 自建,目前存在单节点故障风险,可扩展 |
组件容器健康检查
NFS 服务器端安装与配置
|
准备MySql环境
进入阿里云控制台
选择生产环境运维组件的mysql实例,创建账号
创建数据库并授权即可
部署 Redis 服务主从模式
主库10.0.110.87执行以下命令
|
从库10.0.110.89执行以下命令
|
查看主从状态
部署 JumpServer01 节点
|
安装过程默认下一步即可,所有参数都已经在config-example.txt提前配置过,安装过程中请务必记录下SECRET_KEY和BOOTSTRAP_TOKEN的值
启动后查看服务状态,均为healthy即可
./jmsctl.sh status
部署 JumpServer 02 节点
|
如需扩展其他 JumpServer 节点参考本章节内容即可
部署 MinIO 服务
具体部署过程见MinIO分布式部署
账号密码资源见MinIO资源情况
在 MinIO 中创建 Buckets资源
访问 http://120.55.16.246:19001/login,输入 MinIO 账号密码登录。
点击左侧菜单的 Buckets,选择 Create Bucket 创建桶,Bucket Name 输入 jumpserver,然后点击 Save 保存。
创建bucket策略
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:*" ], "Resource": [ "arn:aws:s3:::jumpserver/*" ] } ] }
创建用户组
创建用户,并管理用户组和策略
在 JumpServer 中配置 MinIO
- 访问 JumpServer Web 页面并使用管理员账号进行登录。
- 点击左侧菜单栏的 [终端管理],在页面的上方选择 [存储配置],在 [录像存储] 下方选择 [创建] 选择 [Ceph]
- 根据下方的说明进行填写,保存后在 [终端管理] 页面对所有组件进行 [更新],录像存储选择 [jms-mino],提交。
选项 | 参考值 | 说明 |
---|---|---|
名称 (Name) | jms-minio | 标识, 不可重复 |
类型 (Type) | Ceph | 固定, 不可更改 |
桶名称 (Bucket) | jumpserver | Bucket Name |
Access key | minio | MINIO_ROOT_USER |
Secret key | KXOeyNgDeTdpeu9q | MINIO_ROOT_PASSWORD |
端点 (Endpoint) | http://120.55.16.246:19000 | minio 服务访问地址 |
默认存储 | 新组件将自动使用该存储 |
通过管理员账号进入系统设置界面
选择存储设置-对象存储
创建Ceph对象存储
填写minio存储信息
测试成功即可
部署Elasticsearch 服务
安装配置 Docker 环境
|
安装配置 Elasticsearch
|
在 JumpServer 中配置 Elasticsearch
- 访问 JumpServer Web 页面并使用管理员账号进行登录。
- 点击左侧菜单栏的 [终端管理],在页面的上方选择 [存储配置],在 [命令存储] 下方选择 [创建] 选择 [Elasticsearch]
- 根据下方的说明进行填写,保存后在 [终端管理] 页面对所有组件进行 [更新],命令存储选择 [jms-es],提交。
选项 | 参考值 | 说明 |
---|---|---|
名称 (Name) | jms-es | 标识, 不可重复 |
类型 (Type) | Elasticsearch | 固定, 不可更改 |
主机 (Hosts) | http://elastic:KXOeyNgDeTdpeu9q@10.0.110.89:9200/ | http://es_host:es_port |
索引 (Index) | jumpserver | 索引 |
忽略证书认证 | https 自签 ssl 需要勾选 | |
默认存储 | 新组件将自动使用该存储 |
通过管理员账号进入系统设置界面
选择存储设置-命令存储
填写elasticsearch存储信息