找回密码
 注册
查看: 472|回复: 13

jumpserver集群模式部署

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2023-3-8 10:00:01 | 显示全部楼层 |阅读模式
准备工作⚓︎
+ S" Z2 l! k9 a# Y1 整体部署说明⚓︎
) N1 o( H! J5 R. V8 b- }. B环境说明& d9 V$ Q6 X5 w
1 O4 `" o( x& J3 x# ~
除 JumpServer 自身组件外,其他组件的高可用请参考对应的官方文档进行部署。
; x- N) q6 ~$ H( g+ ~按照此方式部署后,后续只需要根据需要扩容 JumpServer 节点然后添加节点到 HAProxy 即可。
* ]( X+ J. b2 j* _7 \如果已经有 HLB 或者 SLB 可以跳过 HAProxy 部署,第三方 LB 要注意 session 和 websocket 问题。
/ M; f6 A; U1 l如果已经有 云存储 (S3/Ceph/Swift/OSS/Azure) 可以跳过 MinIO 部署,MySQL、Redis 也一样。6 y$ i* d8 W, j* L2 Y9 R
生产环境中,应该使用 Ceph 等替代 NFS,或者部署高可用的 NFS 防止单点故障。
1 c4 Q) z; I; x2 V1 b$ q1.1 数据库要求⚓︎! U* Y. h) B' C+ `+ a  l
名称        版本        默认字符集        默认字符编码        TLS/SSL4 {) @% \& ~8 a3 V
MySQL        >= 5.7        utf8        utf8_general_ci       
7 m; M% Q9 V# jMariaDB        >= 10.2        utf8mb3        utf8mb3_general_ci       
) u) M( M1 z0 s6 ~2 A$ V: Y3 wName        Version        Sentinel        Cluster        TLS/SSL
3 y" D! v( ~/ F" R2 G4 vRedis        >= 6.0                        6 f# _6 ^/ p! J+ z5 T
1.2 服务器要求⚓︎& H" c' Z) y( d7 V: ?0 o
服务名称        IP 地址        端口        使用涉及组件/服务        最小化硬件配置        标准化硬件配置' t( N& r6 U* ]5 C6 n2 f8 u
NFS        192.168.10.11        -        Core        2Core/8GB RAM/100G HDD        4Core/16GB RAM/1T SSD
2 y" x! m; F9 |7 O: p2 MMySQL        192.168.10.11        3306        Core        2Core/8GB RAM/90G HDD        4Core/16GB RAM/1T SSD
1 T; Q* @% t" S' f" k9 oRedis        192.168.10.11        6379        Core, Koko, Lion        2Core/8GB RAM/90G HDD        4Core/16GB RAM/1T SSD
8 ^5 E4 Z$ ~% Z( V* U6 xHAProxy        192.168.10.100        80,443,2222,33060,33061        All        2Core/4GB RAM/60G HDD        4Core/8GB RAM/60G SSD
3 D7 {; n$ h3 T7 _% IJumpServer 01        192.168.10.21        80,2222,33060,33061        HAProxy        2Core/8GB RAM/60G HDD        4Core/8GB RAM/90G SSD6 U9 C8 e7 i% V% k4 D- v
JumpServer 02        192.168.10.22        80,2222,33060,33061        HAProxy        2Core/8GB RAM/60G HDD        4Core/8GB RAM/90G SSD, r; K9 z  l  |
JumpServer 03        192.168.10.23        80,2222,33060,33061        HAProxy        2Core/8GB RAM/60G HDD        4Core/8GB RAM/90G SSD
/ Z% ?4 F' Y# r0 bJumpServer 04        192.168.10.24        80,2222,33060,33061        HAProxy        2Core/8GB RAM/60G HDD        4Core/8GB RAM/90G SSD# q6 V2 r& J' `9 x8 P
MinIO        192.168.10.41        9000,9001        Core, KoKo, Lion        2Core/4GB RAM/100G HDD        4Core/8GB RAM/1T SSD
( R0 q5 e% w, SElasticsearch        192.168.10.51        9200,9300        Core, KoKo        2Core/4GB RAM/100G HDD        4Core/8GB RAM/1T SSD3 D. ]# c' ?+ u3 X
1.3 组件容器健康检查⚓︎$ h( Y7 Z4 i/ G- V/ A" F4 T
服务名称        健康检查        实例: Z# B" H( a( i0 q( [% z2 v* J$ \
Core        http://core:8080/api/health/        https://demo.jumpserver.org/api/health/5 p$ P1 _9 ]( S( A& O5 r
KoKo        http://koko:5000/koko/health/        https://demo.jumpserver.org/koko/health/
% c5 E5 g2 x1 |7 ~; BLion        http://lion:8081/lion/health/        https://demo.jumpserver.org/lion/health/, L! t) Y  h7 V% X
2 部署顺序⚓︎
! a; V$ C" y8 p. `4 j1.部署 NFS 服务4 b! h2 ]* r, x
- T* p1 k+ E! o! R
2.部署 MySQL 服务. K% N2 k+ k" A% I+ v
% a) e+ H* t2 o5 I
3.部署 Redis 服务
" c2 ^7 [0 u) `- S- M4 v2 _0 p# l  R/ c( {+ s5 a' I- U. Q' G( T
4.部署 JumpServer 01 节点) K+ v, Q( \2 n* a

3 Y9 e8 G6 L( q9 ?( d9 Y5.部署 JumpServer 02 节点, H7 t, \" z, Y; {# i( ^  \/ g+ j6 `

7 y4 ]7 b, a3 l+ N2 X' E8 b  ^6.部署 JumpServer 03 节点/ N: M( J) c( i; |# G

& u( A* U: D1 l* G7.部署 JumpServer 04 节点
# G$ ], A' v7 q) ~
: o) L6 S6 a( I3 ?9 S1 h$ z4 S8.部署 HAProxy 服务
7 j( e7 p- s8 U% [7 P$ F: i5 h" G7 |7 K5 L4 g, J: n/ x
9.部署 MinIO 服务7 T  ]; Z5 l* K

9 s0 d' l! H; O, S: K, P10.部署 Elasticsearch 服务1 ]+ T" U  n1 _& z  t

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:02 | 显示全部楼层
部署 NFS 服务⚓︎
, F& b3 @. U& t  U6 `( y1 NFS 服务器端安装与配置⚓︎
- z& D  s( [' i! M1.1 环境信息⚓︎
- y# w# U3 |$ A5 R% G2 ~NFS 服务器信息如下:7 p9 l5 y2 P4 m

6 b$ T% U6 Y7 w( [5 w+ t* ]192.168.10.11
' Z8 s/ M6 w4 ]. w1.2 安装依赖⚓︎
; T: x' t& }5 p6 M  R" |; S* \0 l9 _$ i2 p
yum -y install epel-release. j: [5 S3 S, Y2 Y; t* F# n
1.3 安装 NFS 依赖包⚓︎
( @1 s" k$ H- i, Q* p# H/ |1 u1 a) ~% T( K" m. \4 g
yum -y install nfs-utils rpcbind
' Q. [/ A+ U" N: c1.4 启动 NFS⚓︎4 \# e- O' C6 R
& m& m; u1 r* u' g7 T
systemctl enable rpcbind nfs-server nfs-lock nfs-idmap
9 _0 E: @% [$ c: U3 f" ]systemctl start rpcbind nfs-server nfs-lock nfs-idmap- {' X* ^2 N9 u7 q& j
1.5 配置防火墙⚓︎  u6 D. _8 X- `8 U
0 B+ M! d: D  t3 i9 h9 r; G
firewall-cmd --add-service=nfs --permanent --zone=public
4 o: J. j( U" v, D! G+ e, N- ofirewall-cmd --add-service=mountd --permanent --zone=public! o) B3 O# y+ Q' j
firewall-cmd --add-service=rpc-bind --permanent --zone=public
" ~) S3 p1 i/ i. Z! Ofirewall-cmd --reload) C4 J" l1 Y* y9 n; o
1.6 配置 NFS⚓︎4 N2 }' ]* H* M( P  M
' @- l( }: p" I% e: J
mkdir /data
6 i* Z2 X+ C5 v7 C# J3 zchmod 755 -R /data1 @) p; _4 Z9 u+ P" M

6 F. T, ?0 ~7 G) w' \! Kvi /etc/exports
$ Z9 ]& o+ v8 _. g, J* O
( y7 q5 e/ P- a0 ^2 E8 N# 设置 NFS 访问权限, /data 是刚才创建的将被共享的目录, 192.168.10.* 表示整个 192.168.10.* 的资产都有括号里面的权限
) R* a  l& i7 D. E# 也可以写具体的授权对象 /data 192.168.10.30(rw,sync,no_root_squash) 192.168.10.31(rw,sync,no_root_squash)
9 M+ s- `, T4 D: B3 I
) z8 o* \  P  c0 Z/data 192.168.10.*(rw,sync,all_squash,anonuid=0,anongid=0)0 t7 b- W6 k& N  Y1 E; a
8 U& Z" z6 }2 J0 S
) j  ?: d( M$ A0 q% Y: n7 D  P
1.7 让 exports 配置生效⚓︎
& q- V9 W& l4 O& ]
# n) D7 g/ ]+ @exportfs -a( R  l9 ?9 ?, w. D2 u5 U9 x

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:03 | 显示全部楼层
部署 MySQL 服务⚓︎# |- v# ^6 i. v: j# M( Y% t* ~9 g/ F
1 准备工作⚓︎$ a4 @( O" i* N  n! b& p2 t% E3 ~
1.1 环境信息⚓︎/ _9 i! H2 g0 S# ?: Y
MySQL 服务器信息如下:' D. ^* q6 Q- }( {; E. E
- I5 V1 V2 C, z4 Z2 {+ N5 e; Y0 |
192.168.10.11
# b4 M3 w% }7 r6 U: y, A1.2 设置 Repo⚓︎& ?7 W: C& R# B

. O$ [0 K9 f5 b: Z  Myum -y localinstall http://mirrors.ustc.edu.cn/mysql ... ity-release-el7.rpm
; H5 ^0 Q3 v( y( U+ j2 安装配置 MySQL⚓︎
% \  d2 N+ j( J, `  L4 O7 a2.1 Yum 方式安装 MySQL⚓︎' x8 u9 q8 }) s

# q1 N( a6 r$ h9 [; D2 Hyum install -y mysql-community-server' [+ v; S# B2 E, A1 e
2.1 配置 MySQL⚓︎
6 Q5 Q( Z( {$ v& @! b( i! g' a( m" m. c+ U) T
if [ ! "$(cat /usr/bin/mysqld_systemd | grep -v ^\# | grep initialize-insecure )" ]; then2 v- i4 b& u8 B9 x1 m$ L3 {* l! ?
    sed -i "s@--initialize @--initialize-insecure @g" /usr/bin/mysqld_systemd. v! B! \, c& z  L/ _
fi9 r4 V$ V- j$ ]( n1 _" L
2.2 启动 MySQL⚓︎+ ]2 }& K0 _- X  C3 F
# [1 x1 q, I  P5 j* q
systemctl enable mysqld
+ u" ~& F2 N6 |7 `  L3 Vsystemctl start mysqld
0 r5 a# k; H+ b3 J2.3 配置数据库授权⚓︎
% c  \+ A0 k& L0 y
# {' h. L5 I" \8 H" `; }" imysql -uroot
% `4 ]8 i6 q6 [, c0 v4 g; ^
! C/ d* S! D% DWelcome to the MySQL monitor.  Commands end with ; or \g./ D% Q: ?7 Y0 G$ W' E
Your MySQL connection id is 2
4 v1 P! c+ `- a& Y7 I* H( ?: Z, [Server version: 5.7.32 MySQL Community Server (GPL)3 W/ K) {: N0 E2 S; [' y' R

. O9 q& ?. C; D8 j# Y3 {4 MCopyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
# x, e/ q  ~& G4 s' ~
2 w" U) y+ T" {5 [Oracle is a registered trademark of Oracle Corporation and/or its4 g- z0 a' D# I+ d1 e7 _* i% e) X% S
affiliates. Other names may be trademarks of their respective
2 T* K+ j% i" x2 _owners.
0 M7 F4 u2 B4 Y* X5 K$ \) v
$ |3 ?2 d+ I; U' L; R0 \Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.1 a' ~+ a1 O$ z" w( a2 Y
- }1 E  ]& r- e* K* q6 r( d
mysql> create database jumpserver default charset 'utf8';- A% H( x' D' q" l' b  j0 ?
Query OK, 1 row affected (0.00 sec)
4 _4 l$ s  I, G3 t; \
* ?. J$ y6 Y# P) m0 xmysql> set global validate_password_policy=LOW;
$ C6 ^  k& b0 Q$ p5 M% bQuery OK, 0 rows affected (0.00 sec)$ u, P8 z# P- ~2 q+ Z5 c  s
& j# h; l0 e: J, O
mysql> create user 'jumpserver'@'%' identified by 'KXOeyNgDeTdpeu9q';. D$ f; S* g: l( Z+ O
Query OK, 0 rows affected (0.00 sec)
; r0 r5 C  q# S  u! R0 e; {2 ^; N( G
) S6 ?, f( k+ r: T( M; o! ymysql> grant all on jumpserver.* to 'jumpserver'@'%';% j" h! H/ c: g
Query OK, 0 rows affected, 1 warning (0.00 sec)! V1 N; }: J% m. i. X1 }
$ ?8 F( ?% A' N" _& u7 e3 H! C. V5 u
mysql> flush privileges;) N( ?# t8 H& B0 e+ z) c  V7 I$ w3 R
Query OK, 0 rows affected (0.00 sec)& s3 ^$ c4 E# m2 l

4 ]* @/ N4 m% I9 Qmysql> exit& ~% K- V9 Z8 |
Bye
9 N  ?4 O/ m$ A& m2 n8 ^/ z. c3 配置防火墙⚓︎
  s$ x$ _( @, a# L9 z- t; {! r/ i& ?
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" port protocol="tcp" port="3306" accept"6 b* U1 H' y, ^/ f5 q' W; z
firewall-cmd --reload9 t1 \  L* _( D( h

6 L5 U) r/ c- M1 U$ P4 \7 @

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:04 | 显示全部楼层
部署 Redis 服务⚓︎
5 F: c! _5 x! o; s  G1 准备工作⚓︎
! E/ e( _+ d, f0 }1.1 环境信息⚓︎4 j& ^1 I+ A4 R$ z
Redis 服务器信息如下:4 l- v, S0 P0 P+ P" N6 l

" |1 n# c: ~- B192.168.10.11( [( I2 Q$ {" H  B  _1 k! Z
1.2 设置 Repo⚓︎
( j( J3 g5 {& R9 r& c6 T" r: W, f6 S8 B# G4 N
yum -y install epel-release https://repo.ius.io/ius-release-el7.rpm
, G! W/ ?- l+ l5 k0 u3 h2 安装配置 Redis⚓︎. @! A5 C6 N. P; {
2.1 Yum 方式安装 Redis⚓︎1 u7 w; h4 ^( k& X9 C' H" r

2 Z0 I5 o5 p* T; g; x9 n4 tyum install -y redis6
0 r% H7 K7 ?& R. f0 @+ S* s2.2 配置 Redis⚓︎
) z$ o' o7 S+ k7 W& m6 Q" C4 o. n3 \; w# c+ w
sed -i "s/bind 127.0.0.1/bind 0.0.0.0/g" /etc/redis.conf
2 b" e- q1 V3 }sed -i "561i maxmemory-policy allkeys-lru" /etc/redis.conf9 l8 ~, e& `5 h9 S
sed -i "481i requirepass KXOeyNgDeTdpeu9q" /etc/redis.conf8 N% n: L' X7 g% E6 w. ~
2.3 启动 Redis⚓︎
/ \, f, g  [& n6 Q+ T2 O
) }" L  q- M4 K% i$ B2 C& A7 isystemctl enable redis
) s7 x) t/ h' H" m" Csystemctl start redis
% E0 s  s6 X0 \- t( A3 配置防火墙⚓︎3 _1 W+ f% M2 s' |

5 A0 O. F3 h) g- e' ~( `& g+ Wfirewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" port protocol="tcp" port="6379" accept"
3 ~# J+ X1 S- U% C) ?" ofirewall-cmd --reload

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:05 | 显示全部楼层
部署 JumpServer 01 节点⚓︎
4 Z1 k  s- P; [5 ]1 准备工作⚓︎
8 i& I/ `0 ^: V5 u7 O% d3 z9 z1.1 环境信息⚓︎
5 E8 c  g, \8 M- t$ l# |' S/ JJumpServer_Node_01 服务器信息如下:
. W$ C7 t0 Y5 k# x1 F& A2 R, ^
, _1 H. u2 h! i- ]  P8 R192.168.10.213 x- e% }; e5 ^; c% e
2 配置 NFS⚓︎
/ R# w7 L1 b8 n+ o* G2.1 安装 NFS 依赖包⚓︎
" F0 d; N2 v- f0 _" ?9 _
9 W& r! M$ w! J' p* C! |7 y/ ~yum -y install nfs-utils
$ K6 B$ W: k& y; n0 Cshowmount -e 192.168.10.11
2 k. w/ _9 L* l9 M7 r2.2 挂载 NFS 目录⚓︎
# \: K( M. B2 ~$ ]+ L8 I6 t. @7 W6 u2 F  ^3 t
# 将 Core 持久化目录挂载到 NFS, 默认 /opt/jumpserver/core/data, 请根据实际情况修改& _/ A- a  ]$ |- X
# JumpServer 持久化目录定义相关参数为 VOLUME_DIR, 在安装 JumpServer 过程中会提示) w& Y/ Z* v2 T% H9 J" U
mkdir /opt/jumpserver/core/data7 w( Z; u3 ~# V, t* [, M
mount -t nfs 192.168.10.11:/data /opt/jumpserver/core/data8 ]. ]! m4 A- d" e: a# q
2.3 配置 NFS 共享目录开机自动挂载⚓︎
$ P' ]" H2 _4 E7 i, x4 L4 Q* |; \* }6 i
; |; @. v! ~9 O0 t# 可以写入到 /etc/fstab, 重启自动挂载. 注意: 设置后如果 nfs 损坏或者无法连接该服务器将无法启动" p: U5 O/ d/ |2 B7 H& D$ _$ V, d
echo "192.168.10.11:/data /opt/jumpserver/core/data nfs defaults 0 0" >> /etc/fstab' e0 \  c4 ~2 ]
3 安装 JumpServer⚓︎
' U0 F7 G( `4 D7 |3.1 下载 jumpserver-install 软件包⚓︎
2 G2 \4 z, f& U6 T+ G" ~2 a- H
$ Y0 u+ \( G; b' I9 |cd /opt
, V- U  }+ e$ N, ?# y  J; V. E* z. [yum -y install wget( Q! d% ^9 k# o. l6 J2 N
wget https://github.com/jumpserver/in ... aller-v3.0.3.tar.gz
# p) x1 @$ e$ z" g  ntar -xf jumpserver-installer-v3.0.3.tar.gz" x: ?1 |5 O4 b8 B
cd jumpserver-installer-v3.0.3- _* i- ~: ]/ f5 M8 G2 o
3.2 修改临时配置文件⚓︎
+ l; K) @+ e! _% W3 d
/ W  B# N+ U5 k2 ^  `: L: O, Vvi config-example.txt
/ \- P" @6 A0 J# p
( K4 g" O/ S! ^3 h* A9 N9 R# 修改下面选项, 其他保持默认, 请勿直接复制此处内容5 s2 r( i" ~# d7 a' N: e0 ~
### 注意: SECRET_KEY 和要其他 JumpServer 服务器一致, 加密的数据将无法解密: x$ U( g1 d( r' O

8 j  O7 G" @* s% Y8 Z8 e/ g# 安装配置9 [( H4 a4 m  c5 W
### 注意持久化目录 VOLUME_DIR, 如果上面 NFS 挂载其他目录, 此处也要修改. 如: NFS 挂载到 /data/jumpserver/core/data, 则 VOLUME_DIR=/data/jumpserver
! {$ H2 p' M* y* e+ ?! kVOLUME_DIR=/opt/jumpserver" S2 W3 Z# I( L% H9 u
: B1 c: Y1 b4 w. U
& j; T* {, u  y' A; n  v. }
# Core 配置
2 B& q- p! e, |& J* c0 L### 启动后不能再修改,否则密码等等信息无法解密, 请勿直接复制下面的字符串# l1 \0 Q* ~+ `$ F: W* Y* {9 i
SECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW    # 要其他 JumpServer 服务器一致 (*)
5 V* m$ l% d% {; W4 U- x0 RBOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q                                 # 要其他 JumpServer 服务器一致 (*)
5 F8 _* n* K, u# l+ d, h/ a) nLOG_LEVEL=ERROR                                                  # 日志等级
7 s! h$ C- R! ~# SESSION_COOKIE_AGE=864002 j. G; l8 ]; J% N# s8 g8 f
SESSION_EXPIRE_AT_BROWSER_CLOSE=True                             # 关闭浏览器 session 过期
$ c' e& d/ b5 ]  k$ B- c0 f& ~1 {& U, H0 p2 A; Z1 N
# MySQL 配置1 M  p/ x1 p2 Z" r. [, k

) P$ N  O: n8 ?. ~7 @# u1 y) UDB_HOST=192.168.10.110 Y( P; c( ^* x) O, s- f3 u
DB_PORT=3306
1 d# [* L5 x+ h2 A4 E8 P  M* ADB_USER=jumpserver
3 R( m' v) g/ _3 v/ Q# z3 `( ADB_PASSWORD=KXOeyNgDeTdpeu9q
: z( E% |3 m' Q' Y  ?DB_NAME=jumpserver9 e8 h% k8 B9 \

/ v- {. p9 G7 K; |# Redis 配置
5 ^; A' e- t4 t/ x+ P. Z7 `) F6 g$ n3 e3 B9 x
REDIS_HOST=192.168.10.11
" Z% E3 ]# \# A: }; u+ AREDIS_PORT=6379
; K4 v1 m  a+ ZREDIS_PASSWORD=KXOeyNgDeTdpeu9q
# O& s; ]+ k. K' m, i! [- f. P7 Y2 L4 K! ~; L+ p% T
# KoKo Lion 配置  o2 o" \; t* C' q2 V
SHARE_ROOM_TYPE=redis                                            # KoKo Lion 使用 redis 共享& }8 K; a5 b7 N# q
REUSE_CONNECTION=False                                           # Koko 禁用连接复用! K7 P6 Q4 Q9 b0 L
3.3 执行脚本安装 JumpServer 服务⚓︎
# @2 ?! l5 m' j: Z* G0 X7 u+ z& }0 |. {4 L
./jmsctl.sh install
# G! j3 z4 V9 x* I7 J/ R
' s0 B% I  H7 U       ██╗██╗   ██╗███╗   ███╗██████╗ ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗; I# N- l* H7 U& ~$ X6 m) r
       ██║██║   ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗
& }5 D6 v9 l  w# X% e5 h       ██║██║   ██║██╔████╔██║██████╔╝███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝
5 w0 I  R% D9 |0 O& h  ██   ██║██║   ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗
) l8 Q9 i2 A+ L# a  `1 {7 X  ╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║     ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║
! v; m2 ^5 ?: G5 L! P3 H1 Y  h   ╚════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝. d6 ^: u3 \6 ^: _9 H" @5 P  m+ }; z

5 ?9 x$ ?3 U! `5 ]                                                                     Version:  v3.0.3
. A) D9 f4 A9 c  ]( i. s; }/ B3 Q4 L' W
& b! A7 g3 |( S/ x' U) Z' k
1. 检查配置文件3 r" q7 a& j! `' y
配置文件位置: /opt/jumpserver/config
$ l! [5 U! l% }- V% {* p4 o/opt/jumpserver/config/config.txt  [ √ ]
, j  Z' l& e6 n) @7 D0 E9 t/ z) w/opt/jumpserver/config/nginx/lb_rdp_server.conf  [ √ ]
- _; N/ b0 K; C9 t4 s, ~: P+ r/opt/jumpserver/config/nginx/lb_ssh_server.conf  [ √ ]
8 y  t+ c5 T5 K, H, |% k4 J  t/opt/jumpserver/config/nginx/cert/server.crt  [ √ ]( [- c; ?& T7 w8 ?( b: x
/opt/jumpserver/config/nginx/cert/server.key  [ √ ]
* K# q$ r) @. L1 _( ]# G3 b完成& {& e+ b) d! B: a: e) h" |
; p* i0 ~, D. ?' Y& y/ U
2. 备份配置文件$ P4 d% E2 j9 h3 e
备份至 /opt/jumpserver/config/backup/config.txt.2021-07-15_22-26-13! c" H  o1 G) t1 M: a- I1 s  m% H9 g
完成6 a+ }4 D- v/ F. f+ A/ G; |

7 L4 S# e" i4 }4 G>>> 安装配置 Docker
' J! w! [4 N! m! A7 E1. 安装 Docker
8 f; {/ J" e; M6 R( @开始下载 Docker 程序 ...7 T" l; ?, e+ w/ t
开始下载 Docker Compose 程序 ...0 F5 f7 w- W) L- c
完成
0 t: ]) M7 b0 d1 O2 @4 X$ c$ ?, v9 h/ a* [
2. 配置 Docker
. p, |, u# w2 k7 _是否需要自定义 docker 存储目录, 默认将使用目录 /var/lib/docker? (y/n)  (默认为 n): n
( t1 z& C/ r) j$ q完成2 A7 v7 J1 s3 r& }& G- ~( t/ D
+ m3 u& d& W6 v# }0 A  }
3. 启动 Docker
4 A" A8 d- u9 t) Y3 i1 T3 VCreated symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /etc/systemd/system/docker.service.
2 D1 q2 `: F2 ?" I! V  Q# l/ X) C2 `2 m完成9 L0 V3 ?0 h5 z& f

' `# K4 K' @! @, W" D" \# H$ r( X>>> 加载 Docker 镜像& e+ Z  x. i+ h+ G- L; f* |
Docker: Pulling from jumpserver/core:v3.0.3         [ OK ], d4 I8 ?) ?1 X! y- \+ u$ c; d4 J
Docker: Pulling from jumpserver/koko:v3.0.3         [ OK ]5 R7 O7 N1 d/ h8 g: |
Docker: Pulling from jumpserver/web:v3.0.3      [ OK ]
- N3 r3 \  L' M  h0 kDocker: Pulling from jumpserver/redis:6-alpine      [ OK ]
% ?3 d! z, Z* y0 B. [Docker: Pulling from jumpserver/mysql:5             [ OK ]
. n# E" {* W" X) Y& q) lDocker: Pulling from jumpserver/lion:v3.0.3         [ OK ]+ ?: F5 _/ T2 ^3 T$ q

" F: r' d8 [. i& x  z' c1 x>>> 安装配置 JumpServer
! s4 K% ~: P' W* e' q1. 配置网络
' d, v  r. n( E是否需要支持 IPv6? (y/n)  (默认为 n): n7 Q$ g3 ~4 n, ]
完成; M- x& `3 Y7 D8 k
3 \# P; I8 z' `+ p8 @0 \" l
2. 配置加密密钥) k5 I. o" {0 x8 R0 L' \
SECRETE_KEY:     YTE2YTVkMTMtMGE3MS00YzI5LWFlOWEtMTc2OWJlMmIyMDE2
2 H5 X7 u/ y2 B, H" B4 BBOOTSTRAP_TOKEN: YTE2YTVkMTMtMGE37 I. O/ u. R! U/ [. `
完成9 l) K! E8 L5 \0 o" V' `
% Y+ o( C) ^. Z
3. 配置持久化目录
, i  J3 @5 Q* d: P; R是否需要自定义持久化存储, 默认将使用目录 /opt/jumpserver? (y/n)  (默认为 n): n
2 j2 N- a: K+ n5 s% U) g% S  ^6 a完成6 T; G/ p4 l+ d
) M# K! ?  N! W) Q7 ]# `/ a
4. 配置 MySQL; E5 `! ^0 {6 j4 G" m& j
是否使用外部 MySQL? (y/n)  (默认为 n): y6 k7 W% C" U, ^5 H2 j3 o
请输入 MySQL 的主机地址 (无默认值): 192.168.10.11$ K5 S" ?; A1 @( p! q. g# E% Y1 R
请输入 MySQL 的端口 (默认为3306): 3306
, ~: s% {5 o) N7 W2 k请输入 MySQL 的数据库(事先做好授权) (默认为jumpserver): jumpserver
7 O* ~& h; s9 q* G3 M" R7 s请输入 MySQL 的用户名 (无默认值): jumpserver
; G# g8 @, w# @+ Q  j请输入 MySQL 的密码 (无默认值): KXOeyNgDeTdpeu9q# p' I/ A6 `$ i
完成# b2 D9 @. h7 i# P0 c
# V6 t' j+ F9 \" a: o0 {9 z
5. 配置 Redis+ N0 I2 ]0 B/ P% V# O  }
是否使用外部 Redis? (y/n)  (默认为 n): y
) E7 k; d+ x% |5 j2 f请输入 Redis 的主机地址 (无默认值): 192.168.10.11
4 x' q4 v, U2 G! `0 z请输入 Redis 的端口 (默认为6379): 6379
5 _5 e1 R/ E' v请输入 Redis 的密码 (无默认值): KXOeyNgDeTdpeu9q
/ q$ _. M  u) V- T2 b完成
) K; q( q9 ]7 _" R/ [
0 _4 ]( ~/ R5 h! @1 @+ O6. 配置对外端口, q5 I- m7 t3 g% q
是否需要配置 JumpServer 对外访问端口? (y/n)  (默认为 n): n) _& q( k! T; e3 W; A
完成  k+ T& A7 x( s, R; ~+ A" n; h

- Z. E! U- j; _7 Y1 q" I$ c8 E7. 初始化数据库
& U- f" n" H2 a! ?9 q' t3 QCreating network "jms_net" with driver "bridge"
' {1 `( }$ i0 J( N( `, z" D6 u, {Creating jms_redis ... done
" I: B+ ~0 q" g( d; J2 r7 R2021-07-15 22:39:52 Collect static files) c, s' u) E! q% j. J
2021-07-15 22:39:52 Collect static files done
8 G1 p; S7 J8 L. e2021-07-15 22:39:52 Check database structure change ...' L+ }8 `1 e/ k/ J$ i
2021-07-15 22:39:52 Migrate model change to database ...
% J# n, k; x) W& `& a4 Q/ t. V. T
6 N' r6 N+ C4 z  D1 ~  M# t0 ^475 static files copied to '/opt/jumpserver/data/static'." b6 r9 v+ j5 G& a  W9 z: R
Operations to perform:1 [1 `% Y) w% ?1 M8 b) ]* ]8 \
  Apply all migrations: acls, admin, applications, assets, audits, auth, authentication, captcha, common, contenttypes, django_cas_ng, django_celery_beat, jms_oidc_rp, notifications, ops, orgs, perms, sessions, settings, terminal, tickets, users* U: |/ i. L0 f, P- \) B! V) v
Running migrations:
& R8 N9 w* G- V' e% M  Applying contenttypes.0001_initial... OK
2 \3 _0 @/ X$ h  Applying contenttypes.0002_remove_content_type_name... OK
1 u+ V- p; L8 G0 X# U  Applying auth.0001_initial... OK
1 Z1 [$ i* a) @3 G) B, t  Applying auth.0002_alter_permission_name_max_length... OK
( N1 p2 b5 ~, k& g  Applying auth.0003_alter_user_email_max_length... OK# D$ _9 G0 ^1 H7 O
  Applying auth.0004_alter_user_username_opts... OK
9 g6 i/ Y% h5 R2 d  Applying auth.0005_alter_user_last_login_null... OK
' ^& Y% W' I: t, w  E  Applying auth.0006_require_contenttypes_0002... OK
/ G% ]; Y- K( R' J5 n! h  Q, J' E4 d% J  Applying auth.0007_alter_validators_add_error_messages... OK6 H" d8 F8 V; s8 A% _- _
  Applying auth.0008_alter_user_username_max_length... OK
( E+ S5 i7 V8 y9 k  }  ...
9 `+ Z$ d+ P- I" [3 f$ }  Applying sessions.0001_initial... OK$ N  {9 y, n2 b5 o5 \: h
  Applying terminal.0032_auto_20210302_1853... OK
, R, P2 ~3 ^/ S4 ^. a5 @  Applying terminal.0033_auto_20210324_1008... OK2 k: g8 B4 p8 A3 m
  Applying terminal.0034_auto_20210406_1434... OK
6 m/ L, @5 J( `0 c( s  Applying terminal.0035_auto_20210517_1448... OK! r6 W, P) J# _' F+ ?  t$ a3 [
  Applying terminal.0036_auto_20210604_1124... OK
0 ]' D6 W2 r) e1 m2 Q0 @) s  Applying terminal.0037_auto_20210623_1748... OK
6 e4 f& p# ]2 {+ b  Applying tickets.0008_auto_20210311_1113... OK  y8 {: N1 ?9 H9 k. s
  Applying tickets.0009_auto_20210426_1720... OK4 e. Z) f- k: h" M% O7 t

+ z/ ^2 g+ ~* y+ x  S>>> 安装完成了
% j; o, [9 x: {& X, e1. 可以使用如下命令启动, 然后访问1 h6 a/ C8 ^/ E# G+ t# {- l
cd /root/jumpserver-installer-v3.0.38 V, |; {2 M; W( y% ]7 _( I5 `
./jmsctl.sh start- q+ w/ P- g# J- e# S' r- ?8 T
0 U& H; s% Y$ [
2. 其它一些管理命令: F9 \" W7 a0 g) N$ o6 g8 w: |
./jmsctl.sh stop7 ~4 c) x, g% _; ]6 y
./jmsctl.sh restart; T; M5 g& [# G5 H' h) h6 H
./jmsctl.sh backup/ @/ k$ J; Q* H9 ~
./jmsctl.sh upgrade
1 \4 _6 F- Q* w/ t0 p2 y更多还有一些命令, 你可以 ./jmsctl.sh --help 来了解
. Q; D) v( [: I( f7 k; X0 S0 Q9 M/ X- a
3. Web 访问
6 m5 O6 s5 Q# G$ r0 {# nhttp://192.168.10.212:80
( f6 ]  m2 P/ B' o2 r6 z( ]默认用户: admin  默认密码: admin5 V! T7 [5 O$ ^6 Y" ]
2 F9 _8 H% q5 s
4. SSH/SFTP 访问' W& |6 f/ f' W/ |1 |
ssh -p2222 admin@192.168.10.2126 D% L" E' Q+ j3 m
sftp -P2222 admin@192.168.10.2127 i) }8 J5 t- {$ {: D' t. `
% f. L, Z7 e4 d, d3 p
5. 更多信息0 ~# d# U: R5 P8 k4 c
我们的官网: https://www.jumpserver.org/
7 g7 D- t- _7 P9 l8 X3 P0 |9 P我们的文档: https://docs.jumpserver.org/
, ]  W) A  F* C9 ?6 n3.4 启动 JumpServer 服务⚓︎$ b. B. u  o& J, F9 |6 e& L5 j" u

  _5 `8 r9 h  g$ C( I./jmsctl.sh start" w$ n& f- r/ J
" O4 d' w, `4 f6 Z- ?. j. \; c
Creating network "jms_net" with driver "bridge"
. {- S8 w0 V, g3 [) T9 ~Creating jms_core      ... done/ R# J; X- D& U( }' D% m0 @: I3 f5 u
Creating jms_celery    ... done
; [. ?1 ?* p: f$ U8 SCreating jms_lion      ... done
) |: P$ ?$ P$ l; q5 KCreating jms_koko      ... done4 X; F0 L, z9 v8 S  I& a2 Y2 c+ @
Creating jms_magnus    ... done
# W; u2 x  D" {( R# `( eCreating jms_web       ... done
# I8 A1 f0 @8 V; P9 w5 ]% |3 d7 u. E, W0 s/ s: Y+ f' \( i

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:06 | 显示全部楼层
部署 JumpServer 02 节点⚓︎8 W  f! v& B- I9 b7 `+ m% e
1 准备工作⚓︎
; }; |8 j8 l5 i% M. d+ {# f1 K1.1 环境信息⚓︎
% j; h. Z2 Q/ cJumpServer_Node_02 服务器信息如下:- z0 @9 i3 i% ^: Y
' R. I  r6 D8 L9 T, B
192.168.10.22
* w; h& G+ a( A2 B/ C$ @4 S2 配置 NFS⚓︎& `1 W( L4 R$ \  t- V' c
2.1 安装 NFS 依赖包⚓︎1 T% A$ _( ~0 m5 m: r2 z2 |" `3 H( h
. v5 G; L2 s, B
yum -y install nfs-utils
- S  ~, C3 `* F6 \. H- Vshowmount -e 192.168.10.11
$ p- n! n3 {0 Z& A% z; j6 U2.2 挂载 NFS 目录⚓︎
8 h# x+ j& F  D0 v
; D. F8 G# B' ?# 将 Core 持久化目录挂载到 NFS, 默认 /opt/jumpserver/core/data, 请根据实际情况修改
2 c2 ^, U5 D3 t# [4 s/ \# JumpServer 持久化目录定义相关参数为 VOLUME_DIR, 在安装 JumpServer 过程中会提示
: ^6 b1 I# j+ Zmkdir /opt/jumpserver/core/data
" d) N: C. {  B& H7 r0 q9 ~. ^mount -t nfs 192.168.10.11:/data /opt/jumpserver/core/data
" O3 ~* i- O5 I( r2.3 配置 NFS 共享目录开机自动挂载⚓︎* ^1 f7 K8 w4 t9 b" m6 y
' L/ ?. T& q$ E0 M7 `6 L; F; A
# 可以写入到 /etc/fstab, 重启自动挂载. 注意: 设置后如果 nfs 损坏或者无法连接该服务器将无法启动# O* A: h- W0 y* O% E. `  G/ ?
echo "192.168.10.11:/data /opt/jumpserver/core/data nfs defaults 0 0" >> /etc/fstab& {4 B' b: D6 ]
3 安装 JumpServer⚓︎
* ^- n  B/ m* f& {3.1 下载 jumpserver-install 软件包⚓︎
4 l1 D4 w# c; f4 j6 `* O) K( H% `: ]# i. W& i4 ?0 j
cd /opt1 i$ T8 o9 S3 `7 K( C3 q/ I
yum -y install wget
& ]5 }8 f" d: pwget https://github.com/jumpserver/in ... aller-v3.0.3.tar.gz7 M) o7 M; t* Z- [1 \  H. \
tar -xf jumpserver-installer-v3.0.3.tar.gz
. `1 }- ~. U3 bcd jumpserver-installer-v3.0.3) n( t' a5 ^& D* g7 k( g
3.2 修改临时配置文件⚓︎
# ~9 s. v  z$ S0 v( D) c5 `8 L, R6 v5 f5 n3 g- n3 `
vi config-example.txt9 ?; b- Y3 h8 h, {( [) M9 `
# q  }2 o# ?2 w& N/ }
# 修改下面选项, 其他保持默认, 请勿直接复制此处内容
0 a+ d" V* w* ~" p  [, F### 注意: SECRET_KEY 和要其他 JumpServer 服务器一致, 加密的数据将无法解密: e# L; [& h% V0 U
2 v$ g+ L4 A1 d& m) K
# 安装配置, R3 I( L% O5 r) H
### 注意持久化目录 VOLUME_DIR, 如果上面 NFS 挂载其他目录, 此处也要修改. 如: NFS 挂载到 /data/jumpserver/core/data, 则 VOLUME_DIR=/data/jumpserver; Y: T/ C# B  X) ~# N6 W5 p
VOLUME_DIR=/opt/jumpserver
9 g: B- c4 x  r8 }
+ F" L$ n" l; b) h# q* @- n! q( [  f8 c4 {8 I1 z; n3 h5 d4 V% ]
# Core 配置
( Y& A8 Z5 u( {### 启动后不能再修改,否则密码等等信息无法解密, 请勿直接复制下面的字符串/ w0 q/ H6 Z. y. Y
SECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW    # 要其他 JumpServer 服务器一致 (*)# x: f" y, n* c/ j4 V& w& H
BOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q                                 # 要其他 JumpServer 服务器一致 (*)2 e( p% U5 u$ M: k, A
LOG_LEVEL=ERROR                                                  # 日志等级: @, e+ \" q* _+ K
# SESSION_COOKIE_AGE=86400
; L4 Z' f, }3 o1 j& [SESSION_EXPIRE_AT_BROWSER_CLOSE=True                             # 关闭浏览器 session 过期
" `' T9 Z) n, P, Q: M, d7 w  K2 {& X; B: |7 o. L, |# q! Y3 p4 ?/ W
# MySQL 配置
, {+ M! }: y# ~% u1 E0 N( t
( t7 {3 d& E/ i% Y; ^DB_HOST=192.168.10.117 N) W' C1 {) A7 U+ x+ ]# m# q8 T! d
DB_PORT=3306
6 @2 S. x9 v7 F3 e; J3 j) ]' m. t6 NDB_USER=jumpserver
& A7 |8 E* K( y. W) e1 \+ T2 iDB_PASSWORD=KXOeyNgDeTdpeu9q9 V% e- k4 |+ Z& e, C  |, l+ J0 G
DB_NAME=jumpserver& _0 }) u+ f8 F0 Y  i0 k

4 H0 w% m4 n5 H# Redis 配置+ u0 j0 i3 u* g- E: s

, f, i. _5 [% o3 u/ J2 ^& aREDIS_HOST=192.168.10.11
! `, p  A7 n3 N4 V+ ~; ~REDIS_PORT=6379
9 o# C7 P2 h0 p8 t8 N3 cREDIS_PASSWORD=KXOeyNgDeTdpeu9q1 F& G# T' {- ^- s* t
; S" c4 y+ T( j% ?/ M1 q
# KoKo Lion 配置
2 i! n3 N* V4 K3 `SHARE_ROOM_TYPE=redis                                            # KoKo Lion 使用 redis 共享
  C0 s* ~* p  l. HREUSE_CONNECTION=False                                           # Koko 禁用连接复用
: K' n# r2 y2 n3.3 执行脚本安装 JumpServer 服务⚓︎. M4 y9 h; N8 o% J. d( w+ d
$ [7 [: s, T0 j2 d) a
./jmsctl.sh install
1 e) p# A3 P: e( @+ i; G" l; w3.4 启动 JumpServer 服务⚓︎/ y4 ?0 n6 j* N! V* \5 G' I$ b( d( u

5 T4 ?& a/ A4 b( y) r./jmsctl.sh start+ F: [  U9 c4 a9 ~; e

; E3 [! Z3 W* I6 x% J1 Z# \+ C% mCreating network "jms_net" with driver "bridge"& N* X/ F3 O  M5 P! p( I
Creating jms_core      ... done
, B3 Q( v6 M. uCreating jms_celery    ... done+ K4 V2 m( }# U
Creating jms_lion      ... done
6 I0 M5 A; E' ?& N( oCreating jms_koko      ... done9 T+ R) E, ]' v# v$ y. c5 t1 v. G
Creating jms_magnus    ... done# U3 o. n7 j. P/ @3 F
Creating jms_web       ... done7 }; s2 G  l1 a5 b" Q

: E  r$ S8 H4 p

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:07 | 显示全部楼层
部署 JumpServer 03 节点⚓︎4 e- T9 l4 q! y- h+ j
1 准备工作⚓︎
. D! G- Z( {+ H5 g. r+ T1.1 环境信息⚓︎* T! k/ V4 s/ ]3 A
JumpServer_Node_03 服务器信息如下:
, h- S. r: x; j) [8 H# m% @; v8 |% d2 E0 |8 R' I
192.168.10.239 S" B. b: I) T9 {1 J
2 配置 NFS⚓︎% [' e. {! X, N7 x0 d- v# g
2.1 安装 NFS 依赖包⚓︎% K1 `3 A( t  D3 }4 Z, }
+ K( V5 W. u' y1 N7 g
yum -y install nfs-utils* @/ s* J$ ]! t$ X( \
showmount -e 192.168.10.11- @# O* ^3 P$ m0 ]! m
2.2 挂载 NFS 目录⚓︎' q( g& g) p7 ^$ v

2 ^6 n# I( |" m  m  v# 将 Core 持久化目录挂载到 NFS, 默认 /opt/jumpserver/core/data, 请根据实际情况修改! L# C7 e1 i# R6 Y1 V
# JumpServer 持久化目录定义相关参数为 VOLUME_DIR, 在安装 JumpServer 过程中会提示
( \0 t5 E8 S* B+ Zmkdir /opt/jumpserver/core/data, ]; A% X1 T0 ^8 `
mount -t nfs 192.168.10.11:/data /opt/jumpserver/core/data5 x  D* h/ h6 |/ T  ?3 ~
2.3 配置 NFS 共享目录开机自动挂载⚓︎& @* f' P. a  X  q. P: X3 x* H8 P7 U
" @0 J/ C( D" F8 j& j
# 可以写入到 /etc/fstab, 重启自动挂载. 注意: 设置后如果 nfs 损坏或者无法连接该服务器将无法启动) L0 S9 _: c* x/ g: H: I
echo "192.168.10.11:/data /opt/jumpserver/core/data nfs defaults 0 0" >> /etc/fstab
' Y# C: {; N3 Q3 安装 JumpServer⚓︎
2 k" a  P" d5 y7 T7 M. S/ E3.1 下载 jumpserver-install 软件包⚓︎
; y$ `- ^6 }, q
% J6 ~& I; L- u: v& F4 _1 Mcd /opt9 z( K0 U) j/ `5 {$ d7 c  d
yum -y install wget. X1 x% |, b2 v, _; b! ^4 i: ^
wget https://github.com/jumpserver/in ... aller-v3.0.3.tar.gz" Q) F1 Z% c  m7 e0 e2 {
tar -xf jumpserver-installer-v3.0.3.tar.gz
5 e9 u4 V; D; j8 Acd jumpserver-installer-v3.0.3
4 J5 k+ y8 ]8 L8 w( m( X7 t5 `" A3.2 修改临时配置文件⚓︎
- l' I0 H' t( Y1 ?( k
& c: g& K% ~6 _vi config-example.txt" E1 h9 X" J, |

' X- U9 b  t* y# l% O/ x& J4 m$ l5 O# 修改下面选项, 其他保持默认, 请勿直接复制此处内容& E: ^2 a  [: ~  o& ]
### 注意: SECRET_KEY 和要其他 JumpServer 服务器一致, 加密的数据将无法解密( C$ ^5 X* A$ @# Z2 R2 c& g8 a

' y; c4 ^# t. R) w& W2 g. [& W# 安装配置
# L  L) \% v2 y8 U### 注意持久化目录 VOLUME_DIR, 如果上面 NFS 挂载其他目录, 此处也要修改. 如: NFS 挂载到 /data/jumpserver/core/data, 则 VOLUME_DIR=/data/jumpserver
9 ~$ r  S4 x: O8 qVOLUME_DIR=/opt/jumpserver
- w( }" p" J! ]( ~% R" h- N1 W; `$ K% A' h# Q

+ _; E9 W8 j) V# s2 v# Core 配置7 X5 F/ `  |& Q7 L3 a0 K6 H
### 启动后不能再修改,否则密码等等信息无法解密, 请勿直接复制下面的字符串
+ [. D1 S9 p, ^: xSECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW    # 要其他 JumpServer 服务器一致 (*)
$ y& V* Y' [1 n+ jBOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q                                 # 要其他 JumpServer 服务器一致 (*)4 |- ]3 f$ g  X2 u8 k  e
LOG_LEVEL=ERROR                                                  # 日志等级8 E5 ?6 F" p, Y
# SESSION_COOKIE_AGE=864003 _( O* R: n$ B9 I. T
SESSION_EXPIRE_AT_BROWSER_CLOSE=True                             # 关闭浏览器 session 过期" x1 Z8 y! r0 z6 G
" M* R* ], K: `1 |
# MySQL 配置
: ?, {* t5 m  c7 X
( `0 U2 L) y+ g* bDB_HOST=192.168.10.11. K3 J0 X. A0 Q5 O" T6 K: t
DB_PORT=3306
9 ~0 k: O6 [, _0 O+ D1 w  BDB_USER=jumpserver
7 P8 B9 B3 M2 G: F5 BDB_PASSWORD=KXOeyNgDeTdpeu9q; J+ f; t. F, t( L
DB_NAME=jumpserver
2 V9 H7 C1 ^7 y7 U1 Q4 J2 u, i
: C6 b  Z6 M( Y  g) h# Redis 配置
- O' T8 L6 R* f
0 i& A2 C  a' I1 N/ U9 n  M: [REDIS_HOST=192.168.10.114 y2 v& B( D+ u3 ?  v, ~5 Y# {
REDIS_PORT=63799 L  ~3 ]4 J! r* y& S
REDIS_PASSWORD=KXOeyNgDeTdpeu9q
) @& n1 F6 R- ^, d% Q1 J+ F: k$ u9 \2 L0 }2 a9 G- ^6 T* o7 d
# KoKo Lion 配置$ z- D0 I3 S# L
SHARE_ROOM_TYPE=redis                                            # KoKo Lion 使用 redis 共享# i3 I* C6 V6 \! W6 O# H6 n0 y- E
REUSE_CONNECTION=False                                           # Koko 禁用连接复用
. ?& _' l, a# N. ^. N) {3.3 执行脚本安装 JumpServer 服务⚓︎4 U" f" A+ T; k1 y) D5 h
4 z$ m" u0 x6 g. c: X# n
./jmsctl.sh install, _, L* A" b# N9 ~
3.4 启动 JumpServer 服务⚓︎
" B: ^) M! y' m; C
9 P1 C% A/ C, u; J1 F./jmsctl.sh start
" D/ D' ]" ?- a
9 g3 J2 N. [. _' SCreating network "jms_net" with driver "bridge"; I/ u- u! `) M6 _2 a/ x, A
Creating jms_core      ... done. n- |% j0 m. y$ ^# E% m# A5 |" e
Creating jms_celery    ... done
$ T+ Z, D8 M; d6 F6 ]' m# w6 tCreating jms_lion      ... done
. ?9 f9 L0 f" J% q. n1 ]Creating jms_koko      ... done
. |0 U% J1 ?5 j7 O$ S, C0 xCreating jms_magnus    ... done
9 T4 n, V  B+ R8 ^: e# rCreating jms_web       ... done0 o/ ]7 h/ \6 a" Q/ v
1 N3 i. I! W0 X0 B

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:08 | 显示全部楼层
部署 JumpServer 04 节点⚓︎
( a2 D' _) L- J( ^7 g1 准备工作⚓︎
( ]6 K6 J7 x$ M- g# H; Y% A* M1.1 环境信息⚓︎  ~& e9 z7 z9 N" w9 D5 W
JumpServer_Node_04 服务器信息如下:
* V& i$ Y8 y4 S2 T% h+ Z
/ f2 c) Y; Z- ?4 D& b; _) ~( w  R" e192.168.10.247 o! |% P8 o/ u- V, X2 ~
2 配置 NFS⚓︎
$ R. H: Z: L. l2.1 安装 NFS 依赖包⚓︎) N6 D" I7 `8 P, y& L

. [' U5 {8 k: eyum -y install nfs-utils
7 j( g2 [3 H! K& L/ ]/ K0 p* z7 y) Qshowmount -e 192.168.10.11
  j; U8 s& D9 Q% k2.2 挂载 NFS 目录⚓︎( B1 ]% O/ x3 @: F2 V
: O: G. s% U7 F! P
# 将 Core 持久化目录挂载到 NFS, 默认 /opt/jumpserver/core/data, 请根据实际情况修改
. c+ P& d8 a, Z( r& n# JumpServer 持久化目录定义相关参数为 VOLUME_DIR, 在安装 JumpServer 过程中会提示: i& a3 N) d1 e3 g0 @) r$ i$ a
mkdir /opt/jumpserver/core/data; R* Q. V) S, e' r
mount -t nfs 192.168.10.11:/data /opt/jumpserver/core/data
) B: N* z4 N& C: \. W, K7 r2.3 配置 NFS 共享目录开机自动挂载⚓︎+ a3 w0 _9 ?0 K3 V; s( f

) M0 H1 [) v) C  [7 D# 可以写入到 /etc/fstab, 重启自动挂载. 注意: 设置后如果 nfs 损坏或者无法连接该服务器将无法启动
. v" b6 C' F2 `/ a+ Q0 F% Fecho "192.168.10.11:/data /opt/jumpserver/core/data nfs defaults 0 0" >> /etc/fstab0 [$ I4 }. M+ }7 D$ f! P3 P
3 安装 JumpServer⚓︎1 h% I) x& }6 P* J0 d8 j& y$ U
3.1 下载 jumpserver-install 软件包⚓︎
* r% [5 o0 V- @1 Y+ S8 d4 S
5 n! K- x/ }* @/ fcd /opt* d0 I1 b3 @! j0 u
yum -y install wget) y: c# }/ }1 \( h2 |
wget https://github.com/jumpserver/in ... aller-v3.0.3.tar.gz, n' |! H% q7 \/ u
tar -xf jumpserver-installer-v3.0.3.tar.gz1 Z$ P& C& p  y; j8 L6 Q$ T
cd jumpserver-installer-v3.0.36 }& s. [3 `/ r. M
3.2 修改临时配置文件⚓︎
2 R& g/ V# o$ X3 o% G( j4 k, ]/ f0 o2 S1 v  T4 e
vi config-example.txt; \# ?$ g5 R) W1 R- D3 `

6 v. h) P1 G& ^4 W9 m# 修改下面选项, 其他保持默认, 请勿直接复制此处内容
: t4 O6 K+ l4 M9 C. g; d### 注意: SECRET_KEY 和要其他 JumpServer 服务器一致, 加密的数据将无法解密
" L, n6 J4 }' r
1 M& @2 j/ N+ r, J6 d7 ?7 P# 安装配置, Z6 F) U7 E4 F4 B1 n6 c
### 注意持久化目录 VOLUME_DIR, 如果上面 NFS 挂载其他目录, 此处也要修改. 如: NFS 挂载到 /data/jumpserver/core/data, 则 VOLUME_DIR=/data/jumpserver
" x( q' t! v' F9 ~+ t9 @VOLUME_DIR=/opt/jumpserver
8 N! l2 ^: n+ d- g6 j
* a9 ^- K- p: ~' h; N' r
3 F5 ?- t# f3 Z, d# Core 配置' m2 I: b" J4 K6 Y9 C% _
### 启动后不能再修改,否则密码等等信息无法解密, 请勿直接复制下面的字符串
: _3 l4 }8 o9 ?$ l5 }( pSECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW    # 要其他 JumpServer 服务器一致 (*)
' \; g6 A. M4 r* J8 c. t! L. F, X$ TBOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q                                 # 要其他 JumpServer 服务器一致 (*)8 V, i5 o: n+ Z$ G9 }
LOG_LEVEL=ERROR                                                  # 日志等级" i4 i$ b1 k+ M# r
# SESSION_COOKIE_AGE=86400
6 }( [- e; y. \$ n+ ^SESSION_EXPIRE_AT_BROWSER_CLOSE=True                             # 关闭浏览器 session 过期" j. o( W5 s% }  |4 u9 d# n

4 D8 Q( M5 ]1 j% K9 e# MySQL 配置  q& d' ^4 n% {2 Y- D0 P

6 w0 b* G3 ^7 L3 kDB_HOST=192.168.10.117 E1 c, z2 \% e8 a; [
DB_PORT=3306
; Q. d. H5 b+ R# s  @6 I# ?" WDB_USER=jumpserver
, W4 d8 P) B, V: |0 tDB_PASSWORD=KXOeyNgDeTdpeu9q
7 V6 g1 W5 z2 X5 f& g6 q; y. kDB_NAME=jumpserver$ p! x' X$ K* ~7 q4 A: i

: p) {) ^3 ?5 P) W  ]- `/ Z# Redis 配置( e% z+ D9 l0 A; M+ |' a; w0 [
3 u0 J0 p3 @" N7 T- @
REDIS_HOST=192.168.10.11
1 Q2 R0 n1 F1 ]5 ?: \# oREDIS_PORT=6379
5 j9 ?5 g3 L5 l+ w( }) cREDIS_PASSWORD=KXOeyNgDeTdpeu9q
  x% D, h# K0 U* F" r' `( d- O& n' M3 p! T- Y" D/ e) Q
# KoKo Lion 配置4 D: A7 w2 L. C
SHARE_ROOM_TYPE=redis                                            # KoKo Lion 使用 redis 共享' O" x% S, m/ q
REUSE_CONNECTION=False                                           # Koko 禁用连接复用
  q7 y8 d' g2 `: h  E3.3 执行脚本安装 JumpServer 服务⚓︎
% k8 D- W! N7 p* ^+ e8 R
* f2 ~; z) V9 b% B./jmsctl.sh install
9 S0 x( Q) @5 U1 I" t  g3 P% A; I3.4 启动 JumpServer 服务⚓︎
" h" \0 z2 ^2 }% }- g: |$ Q, I/ z0 j
./jmsctl.sh start
9 g& S% _0 M  m! _" `& w0 M7 P8 a
Creating network "jms_net" with driver "bridge"
# O1 r  `& j6 \% E' VCreating jms_core      ... done2 I8 B3 x' f' j- K
Creating jms_celery    ... done
" a' j- E& ^) s- N. ~Creating jms_lion      ... done
4 L; w2 ~: d3 O. K1 RCreating jms_koko      ... done1 y2 t  |9 T+ p# w. z
Creating jms_magnus    ... done1 x- L! L) T. k5 A
Creating jms_web       ... done! M$ B; @# U' U7 u3 j3 ]2 y  k' \) r

: ]* o  }; Y& I

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:09 | 显示全部楼层
部署 HAProxy 服务⚓︎
( k$ h( c: U( n6 T2 q2 V* O1 准备工作⚓︎
( W# G% Q, X( y) L$ _: \1 O1.1 环境信息⚓︎
6 x# y; x( M( ~4 xHAProxy 服务器信息如下:% \8 F6 [0 G, c1 w5 t: N; i
; ~7 k# [" ]& B2 D& w
192.168.10.1009 ?& N3 @) ^, X5 c: m: [
1.2 安装依赖⚓︎
2 h) v& [; W8 g8 F* n5 y
0 R; X( `4 y3 Wyum -y install epel-release1 n! d$ J) p; {% A/ r9 O) A
2 安装配置 HAProxy⚓︎) j6 d. o8 ^2 P* ~
2.1 安装 HAProxy⚓︎
' I1 C+ y- p* n4 K3 S( m# n/ E
1 W" _: |$ h" V/ fyum install -y haproxy
. B) x' z# Y0 I& o: y2.2 配置 HAProxy⚓︎, Z3 ]& A: ?  x

. [) ?, }- F& e0 Q( M$ F1 k- i# 打开 HAProxy 的配置文件; y3 L; u- M, `- Y# D: K
vi /etc/haproxy/haproxy.cfg
0 A# S* h% h+ e, o. h8 L7 A! X  q/ M! b& ]# V
global$ R- [' C6 u+ h& e% B2 a
    # to have these messages end up in /var/log/haproxy.log you will
. c2 O7 K- o, b    # need to:
9 Q: e: T. E7 O4 W6 W5 [0 f    #: a; t7 |9 \! C9 D1 |
    # 1) configure syslog to accept network log events.  This is done
4 N+ T: X; }$ m% g8 ^0 D, v    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
8 p1 u+ H9 R- A. H$ K2 \. \  R    #    /etc/sysconfig/syslog
+ O' q, M% R9 t2 F+ M/ G! U    #2 i; N6 I4 N, r$ r1 x
    # 2) configure local2 events to go to the /var/log/haproxy.log, o4 d# d/ F% t# c
    #   file. A line like the following can be added to: V% A# H9 U  X( P( o! Q4 r, M- q: h
    #   /etc/sysconfig/syslog
. _. c" P6 R/ x- ~+ U    #
) P; b3 l  v' }    #    local2.*                       /var/log/haproxy.log( o: J# q) E( }7 A4 ]5 d. d0 J
    #
5 q/ ^/ F( M( K1 F& z+ p7 {    log         127.0.0.1 local23 L8 F" j" a, p1 C
! {  T, L( S8 h- D
    chroot      /var/lib/haproxy- ~& F6 d3 r) @1 ~
    pidfile     /var/run/haproxy.pid/ O# A2 L1 _. z# \" ]5 l. b
    maxconn     4000
- C% v" D. f* V" L7 B" f    user        haproxy
9 C# j+ Y2 i, w& ~9 F8 W/ ^    group       haproxy8 o+ N" Z$ k* ~
    daemon
/ G' o* H9 u9 u* H$ V; O# j3 Y% I+ E6 a, x. y1 U
    # turn on stats unix socket
6 p( @& f! `% A$ W/ U    stats socket /var/lib/haproxy/stats& `6 X8 Y" M4 j$ q  x

& A+ {- |& d$ y* M& Z9 L- l#---------------------------------------------------------------------% {2 D: G4 ?6 X% {/ V. k
# common defaults that all the 'listen' and 'backend' sections will8 k6 t) o. d) j$ I9 }; e& e& F
# use if not designated in their block
3 F, k" w: G! N: J7 l* I6 X#---------------------------------------------------------------------
1 R3 J+ ]2 T" ^/ f0 ~defaults8 C0 k$ M" W  I" g
    log                     global
: b1 C, N, l" e/ Q5 b6 m* O    option                  dontlognull) ]/ w  Y' l# Y' t+ I
    option                  redispatch* p7 k3 q% J5 J! |- i3 q/ E
    retries                 39 N9 j) x% d+ {9 e
    timeout http-request    10s8 I4 ~* ]1 L' C  Y& l
    timeout queue           1m: M. T# K' g0 x3 u: d8 X& `
    timeout connect         10s1 x2 t; A, V4 l# w# s7 j9 _) T
    timeout client          1m% e4 z9 ]& y# o( _' t
    timeout server          1m
+ f6 _1 |4 M* A; S  C1 s. c/ p: m: R    timeout http-keep-alive 10s
5 [0 r+ }* d$ `    timeout check           10s
' J" d% [! d) e. s7 l, l, r    maxconn                 3000# ~' s% {1 o, f5 N8 {

: E, Y9 J/ m* S. Hlisten stats
0 o! m( K0 u7 [1 F: V    bind *:8080
) W/ ^. }, m$ b; `/ P; Z    mode http9 v5 @6 j; [" X; M5 i% ]4 {
    stats enable( q# w1 s$ R% e! b
    stats uri /haproxy                      # 监控页面, 请自行修改. 访问地址为 http://192.168.10.100:8080/haproxy* m% b9 h0 C1 [! W. a! u$ M
    stats refresh 5s6 O8 O( M* Y# Q- t; g" \
    stats realm haproxy-status
6 ~7 D' h: G/ r2 q( e* r% z: l% m    stats auth admin:KXOeyNgDeTdpeu9q       # 账户密码, 请自行修改. 访问 http://192.168.10.100:8080/haproxy 会要求输入3 K: Y* T  V8 s  e
: C8 O+ b# z2 @+ j# A( i
#---------------------------------------------------------------------
* H  c' t+ t8 u# ^# check  检活参数说明: ]" A# K0 N- U* f+ A4 B# D7 o  l1 \, o
# inter  间隔时间, 单位: 毫秒* Y2 Z, E7 ~) d" ]* r4 \1 Q) G  ^# P
# rise   连续成功的次数, 单位: 次, s: X! L9 a2 M9 u+ ^* t+ N
# fall   连续失败的次数, 单位: 次$ c! B2 m1 v" Q% l5 t5 E
# 例: inter 2s rise 2 fall 3' i# A8 F1 }& |; I: t. A2 @
# 表示 2 秒检查一次状态, 连续成功 2 次服务正常, 连续失败 3 次服务异常/ v$ o% n! B3 g( ~( y4 R3 ^
#+ O; [) U9 C  D5 b7 r* J
# server 服务参数说明
2 t( C4 T9 k9 p0 ?# server 192.168.10.21 192.168.10.21:80 weight 1 cookie web01
0 }* z* X  e& h5 P# 第一个 192.168.10.21 做为页面展示的标识, 可以修改为其他任意字符串
' j& W# Z5 {! M$ m) ]# 第二个 192.168.10.21:80 是实际的后端服务端口
% V4 c# u/ n8 d: N1 o! y5 B& B5 @# weight 为权重, 多节点时安装权重进行负载均衡
. C( G* O% d. @  X5 N# cookie 用户侧的 cookie 会包含此标识, 便于区分当前访问的后端节点
1 b* I& ^' S' c/ J4 H" d, I! H# 例: server db01 192.168.10.21:3306 weight 1 cookie db_01
+ N; U9 W: S  Y' B, |% N7 g#---------------------------------------------------------------------. l6 }: d3 ]5 T2 @

6 ^( K+ M# N. n$ |. T- Plisten jms-web
' C9 O% p, P' I& F& a- d- Z% i9 S    bind *:80                               # 监听 80 端口
$ J9 _/ t: M% H2 `8 r  u) b. O$ H- t    mode http2 \6 |: k# q  g8 m9 V+ R* E' R/ \
* K' p6 q' V' ?
    # redirect scheme https if !{ ssl_fc }  # 重定向到 https9 x* j8 |& P+ |' F3 v( z
    # bind *:443 ssl crt /opt/ssl.pem       # https 设置
% v! j/ a. `. p1 T2 n3 r; @5 v# q2 [% R' F1 x8 c7 x( o
    option httpclose
; ]1 P; ^: ~/ u' G- ?& N/ w6 n  Y1 T    option forwardfor+ L3 H2 r4 k6 m
    option httpchk GET /api/health/         # Core 检活接口; j% U5 M5 X) I  ]8 n

( w9 i* `9 l6 _9 H- p3 z8 ?7 U    cookie SERVERID insert indirect3 `( B5 ^+ I5 [" t; z
    hash-type consistent0 u/ v  c& Y* N2 K+ }
    fullconn 500. a0 Y8 b) Q7 X2 l' X. P
    balance leastconn
, T' l% P+ O% \( _- v    server 192.168.10.21 192.168.10.21:80 weight 1 cookie web01 check inter 2s rise 2 fall 3  # JumpServer 服务器
, }5 Y' t/ n0 V, R    server 192.168.10.22 192.168.10.22:80 weight 1 cookie web02 check inter 2s rise 2 fall 38 X5 i3 O: N' o8 q, {! t1 o/ Q/ K
    server 192.168.10.23 192.168.10.23:80 weight 1 cookie web03 check inter 2s rise 2 fall 3  R8 B  ^" t" ?8 j' X% l, J
    server 192.168.10.24 192.168.10.24:80 weight 1 cookie web03 check inter 2s rise 2 fall 35 Q4 a" }; J1 K+ E9 P
6 p/ i; K! q: N
listen jms-ssh
7 u* B. C0 I* n    bind *:22221 T0 P2 Q! b5 V+ p4 ^, }& X
    mode tcp
% M& }4 |7 R/ u1 B5 I; f+ z9 U& i' Z
3 c9 E/ S9 `) |    option tcp-check
8 N- s5 h& H1 Y/ j/ ]4 N8 t
) r  I9 O8 k2 ^  ~, l- @8 k8 Y    fullconn 500
& ?6 t9 W0 C4 O. i' H0 Y    balance source
: c5 J7 i3 [0 m* d1 }. e& O4 v    server 192.168.10.21 192.168.10.21:2222 weight 1 check inter 2s rise 2 fall 3 send-proxy& ^# u4 x8 W" V3 K- C9 Q. V
    server 192.168.10.22 192.168.10.22:2222 weight 1 check inter 2s rise 2 fall 3 send-proxy
) C: Y+ B- q$ R    server 192.168.10.23 192.168.10.23:2222 weight 1 check inter 2s rise 2 fall 3 send-proxy# F# H0 j$ G+ g: B' {* D+ \
    server 192.168.10.24 192.168.10.24:2222 weight 1 check inter 2s rise 2 fall 3 send-proxy! V1 C; N) z- l. ~

8 B# R6 v7 W1 y: ^listen jms-koko5 E/ H2 A2 F/ K
    mode http3 ?0 l, A2 `, d2 W% `( U6 ]/ G
0 q" T* |) P8 H- `
    option httpclose3 U( S% Y4 q. {4 z
    option forwardfor
/ \- h9 n" N; S    option httpchk GET /koko/health/ HTTP/1.1\r\nHost:\ 192.168.100.100  # KoKo 检活接口, host 填写 HAProxy 的 ip 地址
! a1 \. X% M. R7 l* m  _4 W3 e) m/ ^
    cookie SERVERID insert indirect
$ G3 @9 `9 K( m# |& `2 Z" x. m    hash-type consistent
  q% X) t( e, g, R8 i. Y6 l8 p    fullconn 500( X5 r* K! a* ]0 X3 x8 c
    balance leastconn
# }- u( ]0 v" T7 D- N# z- P    server 192.168.10.21 192.168.10.21:80 weight 1 cookie web01 check inter 2s rise 2 fall 3, D) r. i) f* a7 B2 p
    server 192.168.10.22 192.168.10.22:80 weight 1 cookie web02 check inter 2s rise 2 fall 39 T) e8 \3 R! X# ?- |! [9 {) Q6 M2 s% `
    server 192.168.10.23 192.168.10.23:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
) c0 K: D/ q! r& g% w, V* X    server 192.168.10.24 192.168.10.24:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
4 Q3 S6 p6 W  D; @
, o& b; g+ X- u% hlisten jms-lion0 L9 P7 B5 z2 w5 X6 \  o/ d
    mode http
7 B* U2 n3 N: a8 Y: D0 m
) y3 [# S1 `* \) d6 Z7 t# U    option httpclose
- Y& i4 y" Z! W    option forwardfor4 l# F0 C8 L/ ]
    option httpchk GET /lion/health/ HTTP/1.1\r\nHost:\ 192.168.10.100  # Lion 检活接口, host 填写 HAProxy 的 ip 地址
) W: ?7 h4 u0 K. ~9 K# `1 x0 C2 p: H' `0 |2 N: ~
    cookie SERVERID insert indirect1 B9 z0 ~+ _, B- X, l* ]6 E* l
    hash-type consistent' ]2 _9 {' _$ J; m4 r$ _5 `8 Y
    fullconn 500
, w- t3 Y+ D3 K/ r! `( F- v4 E    balance leastconn
. ^2 f* S: Q- {7 ~* b3 O& g4 C7 I    server 192.168.10.21 192.168.10.21:80 weight 1 cookie web01 check inter 2s rise 2 fall 3
2 w- N, {% C5 ~6 @9 ]9 I# ]    server 192.168.10.22 192.168.10.22:80 weight 1 cookie web02 check inter 2s rise 2 fall 3
- K5 t4 q# S/ S" a* I    server 192.168.10.23 192.168.10.23:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
7 X' T& Y, l+ V/ a/ P; H4 @    server 192.168.10.24 192.168.10.24:80 weight 1 cookie web03 check inter 2s rise 2 fall 3* o" [2 j8 u" @: x9 [0 p8 Y

" f! r; q1 R: E4 Zlisten jms-magnus
; q7 i2 Y- ]8 n! K- U6 G7 S2 O    bind *:30000
$ I& J* x9 V! H9 H- y4 W. w: g+ S    mode tcp* \  H9 F7 Z# a) |6 c. `4 Q
/ R6 c! F$ x, g% x6 d0 D
    option tcp-check2 d7 e5 `  ^  q0 E8 g: c; S
, R- x. c% l. b5 ], {; s
    fullconn 500
: c* {, ~" l, r7 @5 W3 F6 Z    balance source
9 |# @2 P/ w3 O* k6 x% X4 ^    server 192.168.10.21 192.168.10.21:30000 weight 1 check inter 2s rise 2 fall 3 send-proxy
) d- m" H3 i; |! W5 D6 }: ~5 `$ L% ?    server 192.168.10.22 192.168.10.22:30000 weight 1 check inter 2s rise 2 fall 3 send-proxy- L2 k% O4 O. ^$ o
    server 192.168.10.23 192.168.10.23:30000 weight 1 check inter 2s rise 2 fall 3 send-proxy
3 U' F& Z6 o2 k3 f. E    server 192.168.10.24 192.168.10.24:30000 weight 1 check inter 2s rise 2 fall 3 send-proxy  G5 A$ F! E3 I' `: t6 }2 \
2.3 配置 SELinux⚓︎
2 Z8 \. Z" u# n: o" h# n% X; m4 m7 q* u8 E' R
setsebool -P haproxy_connect_any 14 l: d( m) U8 Y' a! ~
2.4 启动 HAProxy⚓︎6 u+ J% Q$ Z7 c/ @
- L8 @' W: G* S9 Q7 `
systemctl enable haproxy; _. F9 |9 G0 o! x
systemctl start haproxy
0 ?" f+ A% q$ ?& D0 o3 配置防火墙⚓︎" I; r; n9 r& V) _3 K" r5 c0 [
4 ^- P  M3 n3 a* Y
firewall-cmd --permanent --zone=public --add-port=80/tcp
. o( P) e, F( K  b( x" K( rfirewall-cmd --permanent --zone=public --add-port=443/tcp
( A  ]* ?1 S" Lfirewall-cmd --permanent --zone=public --add-port=2222/tcp. V8 i- X: k/ f# r6 U) `
firewall-cmd --permanent --zone=public --add-port=33060/tcp
2 A8 z8 p$ I- ^$ S5 gfirewall-cmd --permanent --zone=public --add-port=33061/tcp8 P" p: M" E, m* x# E9 O
firewall-cmd --reload4 O  e# ~+ P* v% A) @% _, i: ]7 x/ o
( q" }& Q8 L6 z* O9 r2 i

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:10 | 显示全部楼层
部署 MinIO 服务⚓︎0 Q' x2 |# X" T% M
提示" T- {$ S7 |1 Y
& d6 \- f% S8 g# a- o
集群部署请参考 (http://docs.minio.org.cn/docs/ma ... de-quickstart-guide)
: V6 G  p' h. O& F2 X5 {1 准备工作⚓︎, _/ i6 A4 U" M
1.1 环境信息⚓︎
1 }6 _: `  x8 uMinIO 服务器信息如下:6 P5 ~7 a& f0 P. k) y1 |

- V/ Y0 ^, o; D. x3 u$ s- x192.168.10.418 W" L6 K& v1 u: }* u: i+ P( t
2 安装配置 Docker 环境⚓︎
7 w7 G0 ]4 N4 L2.1 安装 Docker⚓︎' H# K! o) i  Q' D

0 f+ u* w8 O& cyum install -y yum-utils device-mapper-persistent-data lvm2# H; l$ h9 t( B3 B+ V
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
% i3 f1 i6 \' @1 S/ [sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
. K# z$ R( D5 R2 [yum makecache fast7 {7 w2 g+ P5 N6 c5 I, A
yum -y install docker-ce
7 q, q4 U3 }6 D& w2.2 配置 Docker⚓︎5 Z$ i( e: a, y$ \1 P& d2 q

! u0 N3 r, [2 m* `9 \; Kmkdir /etc/docker/
  ^) v* L2 E+ U) {4 Tvi /etc/docker/daemon.json  _' M; L+ i* h6 s% {' o. E

5 l2 A" ?9 [5 d# X( j" q{2 I8 J/ ]0 n& T
  "live-restore": true,
! z0 r: w8 e6 k7 ~$ ^  "registry-mirrors": ["https://hub-mirror.c.163.com", "https://bmtrgdvx.mirror.aliyuncs.com", "http://f1361db2.m.daocloud.io"],3 v8 Q# z$ T: {/ m) D1 y
  "log-driver": "json-file",
" S; h5 K0 D& h5 `4 w, A  "log-opts": {"max-file": "3", "max-size": "10m"}3 i& d& O0 Z9 X" Z. J6 N& l
}
1 E4 }! f, |4 g3 B3 v6 f) x2.3 启动 Docker⚓︎8 }6 ^9 S2 _8 j+ i/ M; g8 ?
, k6 r! G4 _9 i; E3 u* F
systemctl enable docker. t8 A( V7 v1 Z  |9 T+ D
systemctl start docker
! C3 U  S$ {# v; I6 u, v3 安装配置 MinIO⚓︎- S( n5 m4 d. U0 a6 n
3.1 下载 MinIO 镜像⚓︎
1 [: S* K$ g% E1 ~0 ?# t
- K/ Z$ E, ^1 Pdocker pull minio/minio:latest
3 G5 ^6 {8 T1 x( l9 r8 w; ]8 b0 J4 r1 w) j) R
latest: Pulling from minio/minio8 o) \  ~: m, T
a591faa84ab0: Pull complete
6 ]) U3 J* ^) @! B- {76b9354adec6: Pull complete
/ |8 B! x0 H  N$ jf9d8746550a4: Pull complete' x9 E9 j3 X# O6 p5 |. l
890b1dd95baa: Pull complete" d* A* ~: M5 e4 w$ r
3a8518c890dc: Pull complete7 I5 {  W) t4 }/ C/ u' U
8053f0501aed: Pull complete
6 M6 z3 G& Y) P7 @# \506c41cb8532: Pull complete1 h5 G7 N; w" E8 d5 P
Digest: sha256:e7a725edb521dd2af07879dad88ee1dfebd359e57ad8d98104359ccfbdb92024+ @3 w) [: L5 Q$ w7 t
Status: Downloaded newer image for minio/minio:latest
& B2 Z+ v4 L) j1 A% }4 Sdocker.io/minio/minio:latest) h2 f7 M: f* o8 w
3.2 MinIO 持久化数据目录创建⚓︎( o% }5 R  r) |% x" r2 U4 R- n' K! Y- U
6 t# \2 E7 M' n3 h3 A& p6 }5 e
mkdir -p /opt/jumpserver/minio/data /opt/jumpserver/minio/config
( g! j) t5 H5 S2 E0 x# j. {; W3.3 启动 MinIO 服务⚓︎+ u7 r( h7 N% @+ q4 I

+ `8 h% {! p% j# s: O## 请自行修改账号密码并牢记,丢失后可以删掉容器后重新用新密码创建,数据不会丢失
: e) e5 ]' U% c! W8 m  }4 L2 `& n# 9000                                  # api     访问端口
& I( ~: ]5 x, c# 9001                                  # console 访问端口
: l" |" O+ o, ~' z4 f, c# MINIO_ROOT_USER=minio                 # minio 账号- g5 w# t6 m+ J0 ^6 ]9 B3 n
# MINIO_ROOT_PASSWORD=KXOeyNgDeTdpeu9q  # minio 密码  [  m. }( V, t
$ a1 s5 u0 V$ u
docker run --name jms_minio -d -p 9000:9000 -p 9001:9001 -e MINIO_ROOT_USER=minio -e MINIO_ROOT_PASSWORD=KXOeyNgDeTdpeu9q -v /opt/jumpserver/minio/data:/data -v /opt/jumpserver/minio/config:/root/.minio --restart=always minio/minio:latest server /data --console-address ":9001"
3 |$ i$ q" \( N3 P3.5 在 MinIO 中创建 Buckets⚓︎
) P, w! b# I  y7 A访问 http://192.168.10.41:9000,输入刚才设置的 MinIO 账号密码登录。
# p: W3 o  M/ d+ A点击左侧菜单的 Buckets,选择 Create Bucket 创建桶,Bucket Name 输入 jumpserver,然后点击 Save 保存。
: b" x$ E5 l, ]- s3.6 在 JumpServer 中配置 MinIO⚓︎" F7 d+ e/ g& T1 e& W
访问 JumpServer Web 页面并使用管理员账号进行登录。
6 ~; d2 ^. q1 X4 a: d; u5 r点击左侧菜单栏的 [终端管理],在页面的上方选择 [存储配置],在 [录像存储] 下方选择 [创建] 选择 [Ceph]
! C- w/ s4 }- w9 \4 d( [根据下方的说明进行填写,保存后在 [终端管理] 页面对所有组件进行 [更新],录像存储选择 [jms-mino],提交。3 p& q5 f2 T( I* ]1 d  _6 J3 u
选项        参考值        说明
/ r5 ~  W4 M9 ]" f名称 (Name)        jms-minio        标识, 不可重复
% a) \" d! p2 f7 D; b类型 (Type)        Ceph        固定, 不可更改$ S& V( N! U2 B9 A
桶名称 (Bucket)        jumpserver        Bucket Name
* ?0 g  w. Q) i: l+ F4 q1 gAccess key        minio        MINIO_ROOT_USER& v+ O3 W8 D6 ]3 c% B" t4 ~
Secret key        KXOeyNgDeTdpeu9q        MINIO_ROOT_PASSWORD
3 Z, q8 ~' S* c# d- M, P端点 (Endpoint)        http://192.168.10.41:9000        minio 服务访问地址  _! S' v: C7 m4 C8 C4 }- y
默认存储                新组件将自动使用该存储8 T1 i/ e. g/ ^; [& N. f5 ]
3 k6 F5 x9 r& E5 @  Z4 `
您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回首页|Archiver|手机版|小黑屋|易陆发现技术论坛 ( 蜀ICP备2026014127号-1 )

GMT+8, 2026-6-12 00:42 , Processed in 0.028219 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表