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

jumpserver集群模式部署

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2023-3-8 10:00:01 | 显示全部楼层 |阅读模式
准备工作⚓︎  \- H" P* h* Z4 N; B
1 整体部署说明⚓︎
8 b! s* D9 i6 c7 m: C9 S) w环境说明
/ z! I* u& _8 y# w9 H
5 o0 @$ h  D4 A, }, V除 JumpServer 自身组件外,其他组件的高可用请参考对应的官方文档进行部署。
  \% Z& Q; h! n- w% ]按照此方式部署后,后续只需要根据需要扩容 JumpServer 节点然后添加节点到 HAProxy 即可。
9 S5 ~" L" }. H如果已经有 HLB 或者 SLB 可以跳过 HAProxy 部署,第三方 LB 要注意 session 和 websocket 问题。% E$ g) }% K2 m" ^0 d3 I/ J
如果已经有 云存储 (S3/Ceph/Swift/OSS/Azure) 可以跳过 MinIO 部署,MySQL、Redis 也一样。, I& Q- i. I5 d) F+ s
生产环境中,应该使用 Ceph 等替代 NFS,或者部署高可用的 NFS 防止单点故障。3 X! [  }/ P4 |4 L, n3 _8 t+ r* g2 `- M& A3 f
1.1 数据库要求⚓︎
$ O) N) L8 u! I+ `; w' D名称        版本        默认字符集        默认字符编码        TLS/SSL6 ]8 \, i! m7 S, v% \0 I1 u
MySQL        >= 5.7        utf8        utf8_general_ci       
! J0 Q& W) ^5 O) TMariaDB        >= 10.2        utf8mb3        utf8mb3_general_ci        : A! j1 x! O" D) J1 x2 u! m
Name        Version        Sentinel        Cluster        TLS/SSL
7 W& q' e. D5 ~Redis        >= 6.0                        2 x+ a) e4 }; }. E  A$ p
1.2 服务器要求⚓︎+ E$ O9 S- L* ?- l
服务名称        IP 地址        端口        使用涉及组件/服务        最小化硬件配置        标准化硬件配置( G4 ]1 R0 z' ]
NFS        192.168.10.11        -        Core        2Core/8GB RAM/100G HDD        4Core/16GB RAM/1T SSD% }" J# G- O  T3 x
MySQL        192.168.10.11        3306        Core        2Core/8GB RAM/90G HDD        4Core/16GB RAM/1T SSD6 A0 E7 u0 o) ]( E' b
Redis        192.168.10.11        6379        Core, Koko, Lion        2Core/8GB RAM/90G HDD        4Core/16GB RAM/1T SSD/ B: u/ e: k$ s/ M3 a7 W+ F. z
HAProxy        192.168.10.100        80,443,2222,33060,33061        All        2Core/4GB RAM/60G HDD        4Core/8GB RAM/60G SSD
( {1 x9 A& b1 H4 fJumpServer 01        192.168.10.21        80,2222,33060,33061        HAProxy        2Core/8GB RAM/60G HDD        4Core/8GB RAM/90G SSD; j: S( W* ~" x; X0 ]& T$ S
JumpServer 02        192.168.10.22        80,2222,33060,33061        HAProxy        2Core/8GB RAM/60G HDD        4Core/8GB RAM/90G SSD
, g% `+ Z/ b# c5 _" h3 r) h' [! R( ?; uJumpServer 03        192.168.10.23        80,2222,33060,33061        HAProxy        2Core/8GB RAM/60G HDD        4Core/8GB RAM/90G SSD3 k$ A* Y, E& J& S! R; k
JumpServer 04        192.168.10.24        80,2222,33060,33061        HAProxy        2Core/8GB RAM/60G HDD        4Core/8GB RAM/90G SSD
4 G2 V7 v- Y9 s" b( ZMinIO        192.168.10.41        9000,9001        Core, KoKo, Lion        2Core/4GB RAM/100G HDD        4Core/8GB RAM/1T SSD' k9 W+ t4 l* k/ k7 a" l# {
Elasticsearch        192.168.10.51        9200,9300        Core, KoKo        2Core/4GB RAM/100G HDD        4Core/8GB RAM/1T SSD
6 I; I* c/ ?; m5 X1.3 组件容器健康检查⚓︎; `% C( G& |( [: d# i" K( H
服务名称        健康检查        实例
' Q6 u  U5 A2 |  U& F" }- xCore        http://core:8080/api/health/        https://demo.jumpserver.org/api/health/" O4 ?+ s& o$ C' M4 p7 @: _4 {
KoKo        http://koko:5000/koko/health/        https://demo.jumpserver.org/koko/health/
0 l$ A7 N* G( n- S" B5 Q' \Lion        http://lion:8081/lion/health/        https://demo.jumpserver.org/lion/health/: j/ ~. l( N- V# L7 P# e
2 部署顺序⚓︎8 ^* T4 `" D5 u9 h+ n, c3 R: L
1.部署 NFS 服务- r1 A( J! d6 q( V3 I7 x6 w1 R

9 Y" E6 z5 X! I6 i  `- M) z2.部署 MySQL 服务
; A# b8 ^% p; B2 x9 M0 q
! G; Z. r9 V3 z: @& A3.部署 Redis 服务
# @: ]  p! ?& @- ~; R; v6 s2 z; ?& e& n8 m" O
4.部署 JumpServer 01 节点& C  p/ \4 S$ M, X! e, S

" J2 t1 B  O3 P, J$ b5.部署 JumpServer 02 节点
9 H' {) U  e9 }2 d% Z* C
+ {% |8 C$ B3 x# P9 w) Q6 q6.部署 JumpServer 03 节点7 o# x4 o! r; y+ S) n+ [! F

8 G: @1 p8 D& I" }: f  |- X7.部署 JumpServer 04 节点
! X, \2 \, I0 X# B9 w" ~* v. X
6 ]0 @/ n* V" V2 P; g" W; T8.部署 HAProxy 服务
! J4 t& @% G/ `' c1 H- O& p' m( }* Q5 z2 ]& |, L
9.部署 MinIO 服务
- s/ O8 Y, [- q( h
6 [  K% w; p3 h& J10.部署 Elasticsearch 服务
! W5 f) J/ T, B; a

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:02 | 显示全部楼层
部署 NFS 服务⚓︎; S* ^0 J; o$ w0 \+ b5 w% a* q
1 NFS 服务器端安装与配置⚓︎7 x2 s$ [, r7 I. C7 S) `  a! N
1.1 环境信息⚓︎3 V' h; W5 `, p9 Q1 H) R! R$ ]
NFS 服务器信息如下:
0 U# k: j" X, s* D8 c0 q3 L/ ^% M/ d  d) t" M
192.168.10.11, \5 x8 n3 Z( F! t9 D
1.2 安装依赖⚓︎  q; @+ H: n3 C# q, r8 f* M
1 c2 O& ?+ t( \6 r
yum -y install epel-release
: [5 i3 G0 o' w- }7 i$ x1.3 安装 NFS 依赖包⚓︎' w3 ]# l0 p: U

( C8 \/ T' ~2 T+ S0 I9 T( kyum -y install nfs-utils rpcbind
" |* K# u' k5 H3 I' j3 F. E  q9 _1.4 启动 NFS⚓︎
) s3 J4 _% W/ s
- A2 O# n& @  T$ T- g& Ksystemctl enable rpcbind nfs-server nfs-lock nfs-idmap7 q  h  C- J# A
systemctl start rpcbind nfs-server nfs-lock nfs-idmap1 U  f& ?7 L0 c7 V( T
1.5 配置防火墙⚓︎
4 S  Q. [# b4 C, I# x9 x  c
- e1 z& U( E! j9 t$ k' G$ E( Ffirewall-cmd --add-service=nfs --permanent --zone=public
6 t4 @% _0 S# g8 [& @* a. T8 afirewall-cmd --add-service=mountd --permanent --zone=public
2 b# u: d- z3 h; U6 Gfirewall-cmd --add-service=rpc-bind --permanent --zone=public
# l% Y: }- t+ t: ffirewall-cmd --reload& E$ F; H" g1 T9 y# j# G* W0 t
1.6 配置 NFS⚓︎$ Y/ X  ^& P- B$ S, P' |
$ [. F! ]! X% N7 g4 q' t9 \6 R" Q
mkdir /data0 B7 D# Z5 z# D5 t; w# ~- c
chmod 755 -R /data! u6 M% ^6 A& e( I0 {! s

3 h% u$ t8 g7 s6 }6 W8 w! ]vi /etc/exports
) p2 V2 Z' o* m3 M1 A3 B* ^
7 B' \7 I; e( e# 设置 NFS 访问权限, /data 是刚才创建的将被共享的目录, 192.168.10.* 表示整个 192.168.10.* 的资产都有括号里面的权限
' R+ H7 x8 O0 u& l# 也可以写具体的授权对象 /data 192.168.10.30(rw,sync,no_root_squash) 192.168.10.31(rw,sync,no_root_squash)& m3 g8 e3 M: q

) Q& C+ _* q6 n0 n) g- ~2 N/data 192.168.10.*(rw,sync,all_squash,anonuid=0,anongid=0)1 @6 U, f; a& ]
) J" U, w. O0 d, ~& h  T5 j
! U0 Z$ s; K) c+ {: A* O9 {! U
1.7 让 exports 配置生效⚓︎; U: W1 l; N; ~3 a) s
( i1 O. z, Y: f# [$ W
exportfs -a" e  G1 u* b8 w7 |7 `* n

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:03 | 显示全部楼层
部署 MySQL 服务⚓︎4 H4 j/ [: w4 s" [, R
1 准备工作⚓︎/ N8 d& o5 t) A5 E; ~6 \& n; R
1.1 环境信息⚓︎2 X. ]- p+ e& k
MySQL 服务器信息如下:8 i" L2 E7 o# T+ x
+ @: W% l4 `  D" I
192.168.10.11
- |. a6 w* ]7 S4 v( a1.2 设置 Repo⚓︎
5 y9 S7 n5 y. q  ^  S/ j' I; R
$ g; S5 Y5 }  h: i1 ]7 |. c7 fyum -y localinstall http://mirrors.ustc.edu.cn/mysql ... ity-release-el7.rpm
' t' `3 d6 r% U! B* J4 j2 安装配置 MySQL⚓︎
) W4 Y5 e0 r1 I) L2 k2.1 Yum 方式安装 MySQL⚓︎
1 L0 p3 T* L, Q) w: c8 T% Z+ y8 S7 k2 f* x+ i
yum install -y mysql-community-server
. r/ j7 \' @( b" O& J1 X7 l$ ?/ |2.1 配置 MySQL⚓︎
) P" d6 f8 x9 }; P2 V- ~! ~( s: P' r" s
if [ ! "$(cat /usr/bin/mysqld_systemd | grep -v ^\# | grep initialize-insecure )" ]; then. h. b& p: H9 e5 F0 e
    sed -i "s@--initialize @--initialize-insecure @g" /usr/bin/mysqld_systemd
4 h8 H7 t/ F' e" l  ifi
7 t2 W: ?# j+ C6 e  A$ U2.2 启动 MySQL⚓︎8 w8 G+ P6 O, A& d3 Z
" h9 P( F0 V+ ]
systemctl enable mysqld
0 D0 }- G, r0 O% h% Gsystemctl start mysqld
' w! Y$ |' K, R$ H$ H* I* ?2.3 配置数据库授权⚓︎
1 D& C" J- {% m+ s0 L$ `, Z( Q2 R
) R8 ?: K2 N7 @; k- x& e& bmysql -uroot
& b) i6 Y( R- ?* c- w7 q' D3 v- h) t
Welcome to the MySQL monitor.  Commands end with ; or \g.
; ^! f( [& }. @" aYour MySQL connection id is 2
, Y! X( g: b, i/ j$ ^Server version: 5.7.32 MySQL Community Server (GPL)
! e: _; m$ e3 [' l: q8 z$ ?+ Q7 W
- C) q2 W/ _+ K) Q+ |& u/ p# s: JCopyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.1 t$ L& {' n( Q( I6 s3 P  }
5 f, n5 A0 X3 F
Oracle is a registered trademark of Oracle Corporation and/or its# F5 l; _; }8 U$ C& G5 u  C8 H
affiliates. Other names may be trademarks of their respective' ]# Y$ y- w% `, r9 }+ n+ ^
owners.
3 k' J, J* T9 B* w- X4 c9 W# K# p: j' G+ `4 J' s( m+ M
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.: l# T0 c* O& H

( I+ B" L2 i. p9 X: c1 lmysql> create database jumpserver default charset 'utf8';
( W8 e2 e# d6 BQuery OK, 1 row affected (0.00 sec): Q0 ?- c; {0 W/ B3 m  J' j

$ s2 I5 s7 K. d: Qmysql> set global validate_password_policy=LOW;
* N  T9 j  F; \2 @! Z: {6 [Query OK, 0 rows affected (0.00 sec)* [. q( h7 K5 \. ^: F& x: f4 T

$ e5 C; f4 Z  B  Omysql> create user 'jumpserver'@'%' identified by 'KXOeyNgDeTdpeu9q';1 L6 Z( r- y) O
Query OK, 0 rows affected (0.00 sec)) [) }; U# b* x! L$ Z
  D, I7 Z5 A  b( F
mysql> grant all on jumpserver.* to 'jumpserver'@'%';( s" b: c6 p1 g. ^# p) O
Query OK, 0 rows affected, 1 warning (0.00 sec)
- e' G  B  A4 z; X% _# X2 @- G, f2 }8 G& y" D3 |* Z  F
mysql> flush privileges;, g/ I2 d6 {5 A# f8 K
Query OK, 0 rows affected (0.00 sec)
# W% C5 P( S; [: J: p& Z: a) v5 u+ z2 u% Q% e! ^- k% l
mysql> exit
# `9 V. O6 n4 H* }8 i# FBye& p% b0 Y0 H& ?: f' a8 M- @
3 配置防火墙⚓︎
0 J. m* R; T2 T! K* }
, R, L) O5 ^! t+ G" ~firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" port protocol="tcp" port="3306" accept"( X. ~3 \6 u- t2 ~' M
firewall-cmd --reload) O" ]! s5 z# v) [) L2 e
2 W# z  R9 e9 W4 Q+ K5 T: `6 i4 M

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:04 | 显示全部楼层
部署 Redis 服务⚓︎
2 `' _! T/ I' E. {8 @5 [1 b1 准备工作⚓︎8 ~% k, Z) l0 B
1.1 环境信息⚓︎6 Z6 b; ]5 ~3 j4 D: g6 ]
Redis 服务器信息如下:9 p. A% m! @0 |
. h% ?( s9 h- `: M# d
192.168.10.11
% M: j' `) d* W1.2 设置 Repo⚓︎
3 n7 b' B' S% F4 H
) Y+ A4 B7 V. F/ Syum -y install epel-release https://repo.ius.io/ius-release-el7.rpm
# Z9 g; J+ Z6 F/ D, Z" n' g/ t2 安装配置 Redis⚓︎! l8 p$ B! i7 I4 {! R7 C
2.1 Yum 方式安装 Redis⚓︎
' u, y7 N# G% Z" F# ^" v% e% O, ^& ?/ B, Q% V
yum install -y redis6  l" D: i- h* J" b5 H2 h4 M& ^
2.2 配置 Redis⚓︎# z6 @8 D& A$ h
! [/ O9 m# S4 k3 P9 b; {8 B, J
sed -i "s/bind 127.0.0.1/bind 0.0.0.0/g" /etc/redis.conf0 z3 `8 C  A+ o, Q6 o8 c& L% U; @
sed -i "561i maxmemory-policy allkeys-lru" /etc/redis.conf- J7 H5 ~4 a5 D- Y0 S
sed -i "481i requirepass KXOeyNgDeTdpeu9q" /etc/redis.conf
: v: ]/ u* m0 n5 a1 A1 g2.3 启动 Redis⚓︎
/ A  D+ p- f" ^, L8 t6 ^0 s. }$ v3 z& x4 \$ S, _3 \6 [! c9 P# _2 I
systemctl enable redis; G, {. T9 Y+ g. X/ \9 A" _
systemctl start redis
! [9 ~6 i) K. B3 配置防火墙⚓︎$ g+ ~! J' u- T- H8 K" ^

- \; j# G% L$ ^firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" port protocol="tcp" port="6379" accept"7 P. e& l* U* ~0 E, z# b9 r9 L
firewall-cmd --reload

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:05 | 显示全部楼层
部署 JumpServer 01 节点⚓︎) w( l! p2 {7 |3 Z% p9 i4 n+ ]
1 准备工作⚓︎7 I" `2 q, T9 u) a5 X
1.1 环境信息⚓︎) e7 V3 m7 P0 ^; @: x
JumpServer_Node_01 服务器信息如下:
+ \+ [% Q- T/ a$ ?! F2 K
+ ~% j; A/ M9 A+ T192.168.10.21
$ s, \( p/ C- N" }$ o' y' [2 配置 NFS⚓︎
) C0 H6 [% `; }2.1 安装 NFS 依赖包⚓︎
2 G  U. X# V0 o( d
0 K& A2 {7 B: a& ~( p, }% Gyum -y install nfs-utils$ |% |/ l* y$ J! t( d' z
showmount -e 192.168.10.11
0 n/ Q7 e" a8 s2.2 挂载 NFS 目录⚓︎+ x$ D- N& c  i2 g# V& T
8 O, N1 k" R& x- n& p9 \
# 将 Core 持久化目录挂载到 NFS, 默认 /opt/jumpserver/core/data, 请根据实际情况修改& e/ T6 Z& I* x# i2 Y
# JumpServer 持久化目录定义相关参数为 VOLUME_DIR, 在安装 JumpServer 过程中会提示4 D1 ^, j% s0 M' r% T/ _( p: y& j7 ^* Z
mkdir /opt/jumpserver/core/data
! V: w1 U* i+ q/ v$ k( ymount -t nfs 192.168.10.11:/data /opt/jumpserver/core/data
( o& ~. |/ [% l! H( P  Z7 p2.3 配置 NFS 共享目录开机自动挂载⚓︎2 Q/ u! }- G4 E% q

4 M6 O" r# r) F& U0 P+ d# 可以写入到 /etc/fstab, 重启自动挂载. 注意: 设置后如果 nfs 损坏或者无法连接该服务器将无法启动
% H4 w0 R% }: E: ^: Y$ Q9 P& O( [0 decho "192.168.10.11:/data /opt/jumpserver/core/data nfs defaults 0 0" >> /etc/fstab! D8 S5 L0 q4 n% ~
3 安装 JumpServer⚓︎0 P- q) r# F2 F7 @8 X# ^; k
3.1 下载 jumpserver-install 软件包⚓︎. Z( i$ z6 n; P: u
! Y$ p3 |; F& v+ a# q
cd /opt
3 z+ v4 i1 L8 Q; ^. J3 xyum -y install wget  D' F! ~4 d5 I
wget https://github.com/jumpserver/in ... aller-v3.0.3.tar.gz  F) x4 [7 ^0 j6 f+ o
tar -xf jumpserver-installer-v3.0.3.tar.gz8 c; T0 W1 d. E% X' i
cd jumpserver-installer-v3.0.3* O$ N' M, Y9 H* A9 U) y
3.2 修改临时配置文件⚓︎
! L2 m$ ~) q3 M) r) r  q, A6 X% V& @9 Y1 x1 S" E# v/ O
vi config-example.txt& j# [9 H3 d6 [" z3 ]7 \

4 r, w  Y0 t" E5 x! {# 修改下面选项, 其他保持默认, 请勿直接复制此处内容
1 j/ j' k5 y) ?* z" w" T! K0 J### 注意: SECRET_KEY 和要其他 JumpServer 服务器一致, 加密的数据将无法解密( c: f! w: B  ?1 u9 }- p2 p! R& w/ t& f

8 S" o* G( r0 Q' K* P# 安装配置0 ?0 s' `& r/ H
### 注意持久化目录 VOLUME_DIR, 如果上面 NFS 挂载其他目录, 此处也要修改. 如: NFS 挂载到 /data/jumpserver/core/data, 则 VOLUME_DIR=/data/jumpserver0 w. @  e4 W: A! `5 l" e
VOLUME_DIR=/opt/jumpserver
2 T; w# ]3 [  [$ H+ r! I
7 @; ^. T' B! ]& {# Z! Q6 T$ e5 _( d) \7 n; V2 O# d9 Z
# Core 配置
1 ^  a- j* l/ o  `: A% L; K" h### 启动后不能再修改,否则密码等等信息无法解密, 请勿直接复制下面的字符串
! F9 L# J: S8 [6 W5 N) t8 VSECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW    # 要其他 JumpServer 服务器一致 (*); t* A2 h/ U9 }1 _! W7 w
BOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q                                 # 要其他 JumpServer 服务器一致 (*)
# x+ ^# N4 r4 q* cLOG_LEVEL=ERROR                                                  # 日志等级3 [; J$ D4 ?2 ?: P# M) w; Y
# SESSION_COOKIE_AGE=86400. d( F! G, X* W* F  {
SESSION_EXPIRE_AT_BROWSER_CLOSE=True                             # 关闭浏览器 session 过期
' Z$ S% \' W( U' \/ J5 u( k7 f/ r
/ z8 U3 {# \. f3 }# MySQL 配置+ ~4 w7 v- ?# s6 M" g2 }. n9 h
4 E% J4 `- `9 k! h
DB_HOST=192.168.10.11
" W; ]' M2 R2 W* g- IDB_PORT=3306; l8 o+ ~5 B2 H& D2 A8 L
DB_USER=jumpserver1 N  W9 }1 v- H4 R  b2 x$ |5 A
DB_PASSWORD=KXOeyNgDeTdpeu9q
/ B+ c/ ?  N3 R7 I9 l5 Z  nDB_NAME=jumpserver
6 k7 s" @+ y( k0 x) s! v  l8 y) P* a7 a$ C
# Redis 配置: A7 v+ y3 S/ E) l1 f: K
% ?. q  @2 {; ~
REDIS_HOST=192.168.10.11
0 p( e. h) I3 u3 T. y1 MREDIS_PORT=6379
& t0 i' ~' h6 L" X$ `2 E" a# g( Z+ G, LREDIS_PASSWORD=KXOeyNgDeTdpeu9q8 V0 W9 ~4 O( l$ g# s' K4 S. n5 |

2 k( j$ d: I3 f" U# KoKo Lion 配置- ^2 b, _8 Y. _- C6 V) [0 z  _
SHARE_ROOM_TYPE=redis                                            # KoKo Lion 使用 redis 共享
5 Y, \9 t  M( rREUSE_CONNECTION=False                                           # Koko 禁用连接复用
* C; Q1 u1 j1 E# A# y4 H* {% m3.3 执行脚本安装 JumpServer 服务⚓︎
0 l2 y2 U7 X  ]  X  [- _: }/ s0 N2 H$ z; }5 U6 M: H/ z
./jmsctl.sh install) L% h$ T: D6 d! f8 G# W/ D- B

; l$ K# J' c  i( m       ██╗██╗   ██╗███╗   ███╗██████╗ ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗4 }) |, F* `9 C; d* B7 ]
       ██║██║   ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗
: A- v- H0 z  v2 j8 n2 P9 `- E       ██║██║   ██║██╔████╔██║██████╔╝███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝/ t/ i" f* j" Q
  ██   ██║██║   ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗
$ Y0 D$ v) f' D  ╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║     ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║
. S. O) a0 s4 i2 r' S! v# `   ╚════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝
5 \- ?$ j6 p2 P$ Y4 l6 w; h" i
- y$ q* _6 e; i6 D4 k                                                                     Version:  v3.0.38 `/ i. B$ l3 n. _  e6 b
* j( z( e1 e4 b! V0 l

4 B! p6 A) ~( Q6 O1. 检查配置文件
; N1 G) k" R. U' p" i配置文件位置: /opt/jumpserver/config
6 Q" ]% h- d+ [, X- s/opt/jumpserver/config/config.txt  [ √ ]8 V. r; A! S# |1 W) |
/opt/jumpserver/config/nginx/lb_rdp_server.conf  [ √ ]0 a, W% ]2 J5 V, w: }4 j) _
/opt/jumpserver/config/nginx/lb_ssh_server.conf  [ √ ]9 z9 c- i0 @8 r& e) s
/opt/jumpserver/config/nginx/cert/server.crt  [ √ ]
" T" X4 g8 ~' N, p' G/opt/jumpserver/config/nginx/cert/server.key  [ √ ]+ V$ b; k" l$ d7 D8 t
完成
- e9 t) _0 u* I' S2 q) \. I4 k. p8 }9 K0 O* w: V8 A! Z
2. 备份配置文件# u7 X# `9 ^* A; C- B! h7 p
备份至 /opt/jumpserver/config/backup/config.txt.2021-07-15_22-26-13
* y) X0 U! Y% l& e& |# G完成+ w. b1 Y0 |; k. ~7 U
/ ]+ \- O+ n" y/ _& i1 C
>>> 安装配置 Docker
2 R5 p) ~' K( E- C7 H2 T7 n1. 安装 Docker
5 L* L, R6 f. P9 E1 q" p开始下载 Docker 程序 ...! D3 ?, C: r/ w
开始下载 Docker Compose 程序 ...
# Q" A  D: |% M$ ]. f完成8 p5 }& {6 z) F9 N  z

8 T" v4 E) t' t; N2. 配置 Docker
1 ]8 F, ?2 ~" J0 L8 [+ H$ u- }是否需要自定义 docker 存储目录, 默认将使用目录 /var/lib/docker? (y/n)  (默认为 n): n
: [& p: J- w" y* s7 E完成  b; n6 W8 S6 `

8 @0 X& ?* j# J/ K5 S3. 启动 Docker
  ~- j1 X2 R! HCreated symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /etc/systemd/system/docker.service.
) f$ ?7 P3 ~! t9 S  n5 n完成" O  Y+ Q& ?4 f. p: V

* w# ~) O" G+ O/ V' r- t8 }$ t>>> 加载 Docker 镜像7 e; a: J. r) f& p6 w1 W
Docker: Pulling from jumpserver/core:v3.0.3         [ OK ]
5 a, }4 G! M/ MDocker: Pulling from jumpserver/koko:v3.0.3         [ OK ]) R" s7 o+ ~# {+ D1 i0 I
Docker: Pulling from jumpserver/web:v3.0.3      [ OK ]+ S1 j* x9 d. b: f4 u0 ~% ~
Docker: Pulling from jumpserver/redis:6-alpine      [ OK ]
. ?2 K1 C$ V! o$ L! Z, M3 \Docker: Pulling from jumpserver/mysql:5             [ OK ]
$ `7 K, A  u5 ~( u% o, ]Docker: Pulling from jumpserver/lion:v3.0.3         [ OK ]
6 J( F0 D4 y  M6 F0 I1 b
9 F* \$ x# @  H  z5 h>>> 安装配置 JumpServer
+ B3 f5 s$ h8 W8 V0 k1. 配置网络2 Z: j% l6 H* `/ B% h
是否需要支持 IPv6? (y/n)  (默认为 n): n
; e+ o. K3 ~% D9 C) f2 u* _9 I& [完成
) [4 a* [: x$ b" x/ X4 q" D- [8 A
1 C9 D! K1 c% ]4 y6 t/ S2. 配置加密密钥
# X+ d% B' l% q' f1 g# y8 P9 J$ j( I2 |SECRETE_KEY:     YTE2YTVkMTMtMGE3MS00YzI5LWFlOWEtMTc2OWJlMmIyMDE2
" y% y+ J5 c! y8 _BOOTSTRAP_TOKEN: YTE2YTVkMTMtMGE3/ Y' M' h% Z! d. p
完成
7 T, g2 L, @# {% P
$ _+ d+ _0 p. Y2 q; j3. 配置持久化目录* k2 Z, ?; h0 r4 ?" h% T
是否需要自定义持久化存储, 默认将使用目录 /opt/jumpserver? (y/n)  (默认为 n): n# S7 ]( }$ ^( s( x( J1 O2 o' u
完成
+ c# k) h7 B) O/ O0 @6 v5 J4 e0 ?# m3 Q* E* \
4. 配置 MySQL  Z* N2 ~& d' l2 _+ G
是否使用外部 MySQL? (y/n)  (默认为 n): y; `' g0 h1 U( f' L
请输入 MySQL 的主机地址 (无默认值): 192.168.10.11
6 W7 a9 I8 a( @( u2 v! @请输入 MySQL 的端口 (默认为3306): 3306
" C% [9 n& X0 |, O3 m请输入 MySQL 的数据库(事先做好授权) (默认为jumpserver): jumpserver
. ]3 P9 a6 S5 n0 u请输入 MySQL 的用户名 (无默认值): jumpserver
* E6 Y) k7 l1 E* p请输入 MySQL 的密码 (无默认值): KXOeyNgDeTdpeu9q9 h5 |, }9 V8 {  d
完成8 s7 \, T2 Y& p0 _5 ~4 ?) O* e
" Y' t" f+ C- Y/ \! `& I: q
5. 配置 Redis1 W7 }/ ^) y' M; Y
是否使用外部 Redis? (y/n)  (默认为 n): y
2 \8 R) Y- _# k$ M* P' i请输入 Redis 的主机地址 (无默认值): 192.168.10.11
9 V' H1 m5 s" ~% B/ t3 r: D4 V* c; v% _请输入 Redis 的端口 (默认为6379): 6379
: x1 j2 E9 ^3 p! M( z请输入 Redis 的密码 (无默认值): KXOeyNgDeTdpeu9q7 a* A1 p2 R+ z: J0 r
完成6 g/ d: Y# F4 w
! O( w3 g( l* p, d! M
6. 配置对外端口
& W* `. j" p+ D! N是否需要配置 JumpServer 对外访问端口? (y/n)  (默认为 n): n7 J5 r+ H0 Z0 `9 j( t  s- S% K
完成% W7 y! B) U  J  @3 [

% m( s1 A/ \" R7 _5 O2 V1 Z7. 初始化数据库
; l- q/ W! I' \8 vCreating network "jms_net" with driver "bridge"
* E; _. f/ e% [5 \( rCreating jms_redis ... done% K) _; `# @0 N" Q& N+ Q
2021-07-15 22:39:52 Collect static files, }; m3 B2 i* U5 |/ l
2021-07-15 22:39:52 Collect static files done4 @/ y5 Y; j- {$ G) }
2021-07-15 22:39:52 Check database structure change ...
; |* q2 j. s# [. E- F2021-07-15 22:39:52 Migrate model change to database ...7 }9 v8 Y; e* E: j

1 c& o  j6 E# C& r- q- j4 E# e475 static files copied to '/opt/jumpserver/data/static'." w# N' ~7 b" Z& A3 ^; h+ }8 ^
Operations to perform:
' g5 W  U$ I9 N2 t6 S' K  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
3 \, W5 ~1 r  i' [Running migrations:* v7 r" U2 F) H. m
  Applying contenttypes.0001_initial... OK4 H9 U: z3 K. u. I5 `+ j
  Applying contenttypes.0002_remove_content_type_name... OK! ^. ^0 b6 s5 b! t( Z
  Applying auth.0001_initial... OK: Z1 Z0 `' \! P1 Q0 V
  Applying auth.0002_alter_permission_name_max_length... OK
" h9 L8 \/ T: h: N6 F3 H; S# L  Applying auth.0003_alter_user_email_max_length... OK
4 i2 A3 C3 R7 ~6 z, c; N+ t  Applying auth.0004_alter_user_username_opts... OK
% S4 L0 w! h# E5 H) T) p% N/ Z  Applying auth.0005_alter_user_last_login_null... OK
. H2 e9 H5 m% R: w  Applying auth.0006_require_contenttypes_0002... OK9 c$ E$ V1 Z2 P8 W
  Applying auth.0007_alter_validators_add_error_messages... OK4 m% F+ q& W, e; m1 _0 m
  Applying auth.0008_alter_user_username_max_length... OK6 L% R+ Q; d! M
  ...: p8 K* R  @0 V! a0 ?
  Applying sessions.0001_initial... OK1 |3 }1 f+ n, G' T0 m
  Applying terminal.0032_auto_20210302_1853... OK9 W. a) P. M) C' ?* K6 Q
  Applying terminal.0033_auto_20210324_1008... OK
8 x/ |( }- Z6 I& L$ ?- T" h* n  Applying terminal.0034_auto_20210406_1434... OK
2 f% J, g" M  l  Applying terminal.0035_auto_20210517_1448... OK
5 a. K; J5 F) ]' K  Applying terminal.0036_auto_20210604_1124... OK
) x7 e; {- p' }- h$ Q  Applying terminal.0037_auto_20210623_1748... OK8 C- w! l# E# N
  Applying tickets.0008_auto_20210311_1113... OK
% }5 I# G2 K6 V  Applying tickets.0009_auto_20210426_1720... OK7 |! k  M2 P+ o* q! V- o

: S' ~$ I/ U" l5 W6 K; m" I# P>>> 安装完成了
: w4 k4 H" e) |/ Z' C1. 可以使用如下命令启动, 然后访问$ t4 ^6 W3 L" P
cd /root/jumpserver-installer-v3.0.3, U- E# Q1 a/ K6 t6 u# I: o. @3 z7 g
./jmsctl.sh start
2 m: G5 d' z, A# T# T' S
) x/ S, ~. }/ [, J/ R. Q2. 其它一些管理命令( }4 r2 Z8 F0 T0 L! O3 f/ c( l- ~! U
./jmsctl.sh stop
+ y. y: z. q8 E/ w0 @3 k0 W% x./jmsctl.sh restart
. E- Z4 R6 x% N5 M./jmsctl.sh backup
: ]- a, Y* @( q0 X# F: \/ l% P2 ^6 W./jmsctl.sh upgrade
0 s9 Y  b' {1 M+ b- v更多还有一些命令, 你可以 ./jmsctl.sh --help 来了解- [/ z9 b3 }, R/ d9 R& ~/ R3 y
+ Q* D& ?  y: ~& e) P* X
3. Web 访问
9 a4 u. f# }% H; ?http://192.168.10.212:802 K3 L+ }% Z5 ^0 i+ b) H8 p
默认用户: admin  默认密码: admin
. q- g7 `# s7 v# t6 b- o
2 A$ F- ]& A; d1 C8 K9 O" b* F4. SSH/SFTP 访问
; `9 S9 D* K7 u% K# }! H) jssh -p2222 admin@192.168.10.212
3 X) W  h% ^5 y+ x4 e1 wsftp -P2222 admin@192.168.10.212
' M# |3 E$ w- D: N! a6 ~) _# [1 o) K. k6 m
5. 更多信息
/ i9 w/ ?! R' Q我们的官网: https://www.jumpserver.org/
( Y) o( b% ~2 l, m9 ^我们的文档: https://docs.jumpserver.org/
% R' v$ F  h& w, |0 s1 d3 V& N9 F3.4 启动 JumpServer 服务⚓︎/ }+ u+ d  k0 m
  d) }" n! P9 w$ v$ f/ @
./jmsctl.sh start/ `2 E7 q, [5 d
5 F" }" u0 \# Y8 c5 l$ }, F0 ^0 [
Creating network "jms_net" with driver "bridge"* o, O( ]# I( V9 @4 \$ ~. _3 p3 v
Creating jms_core      ... done
1 d" E0 l' c) t: @. x1 ~' BCreating jms_celery    ... done
: M. Q& r1 l4 C' c: jCreating jms_lion      ... done* w3 r% S+ q9 F( i
Creating jms_koko      ... done
# i7 ?/ c6 A( wCreating jms_magnus    ... done
' g" |1 V- d2 i9 p, t2 ?1 ICreating jms_web       ... done
3 S, c5 M, R. G" Y# ?* s/ t8 u+ c' ^& K3 p' }

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:06 | 显示全部楼层
部署 JumpServer 02 节点⚓︎; P( W" l# f4 X5 J+ u$ r6 [* c6 G
1 准备工作⚓︎- z, ]1 \6 B; P8 \$ E
1.1 环境信息⚓︎3 S; u  p- @+ ]7 J+ J
JumpServer_Node_02 服务器信息如下:8 C" S" a( L2 W8 q5 l: f
2 {, [7 A2 f9 {4 r8 q2 S) d# f
192.168.10.228 |. u7 n9 r9 V5 M
2 配置 NFS⚓︎: Q' z4 |3 ]3 a7 h
2.1 安装 NFS 依赖包⚓︎) L7 p* z9 {% g: D5 L% p
3 D+ B7 P) G/ T" |4 j
yum -y install nfs-utils7 R  T, l2 k5 g. T
showmount -e 192.168.10.11
& a( Z' }4 M4 A2.2 挂载 NFS 目录⚓︎2 D- i7 E/ J; f7 W* H0 e8 ^

  Y# Z, N, v% y$ N( @# 将 Core 持久化目录挂载到 NFS, 默认 /opt/jumpserver/core/data, 请根据实际情况修改
" Y8 N- |  W: p7 Q9 G& e# n; L# JumpServer 持久化目录定义相关参数为 VOLUME_DIR, 在安装 JumpServer 过程中会提示/ Z% @% O  W# r4 U9 o
mkdir /opt/jumpserver/core/data
. _! q! ?4 N0 s( omount -t nfs 192.168.10.11:/data /opt/jumpserver/core/data5 `/ m: _' c  }
2.3 配置 NFS 共享目录开机自动挂载⚓︎( B8 d# f' k: ~' Y) w) |' v& F
2 s" \- v* Q9 r; _( h
# 可以写入到 /etc/fstab, 重启自动挂载. 注意: 设置后如果 nfs 损坏或者无法连接该服务器将无法启动" q$ A& Y& E0 g( }, ?
echo "192.168.10.11:/data /opt/jumpserver/core/data nfs defaults 0 0" >> /etc/fstab
% C1 X# k. t) @3 安装 JumpServer⚓︎7 K' j# p. I2 ?6 o9 M9 B
3.1 下载 jumpserver-install 软件包⚓︎
9 I+ z: ^8 `& y6 b# i1 c, P/ k$ |8 e* U. y: \/ L# D
cd /opt: A' M) T& H3 H) E! L, V1 n; M
yum -y install wget) g$ _* {4 {* T2 o. N. F- W: G9 d
wget https://github.com/jumpserver/in ... aller-v3.0.3.tar.gz. \) k& C5 v  S8 X, B* N  Q
tar -xf jumpserver-installer-v3.0.3.tar.gz
% d% w- \. e/ w( @/ n2 T; ecd jumpserver-installer-v3.0.3
$ B  E8 S* k, x9 M# S: J+ x" ]6 N3.2 修改临时配置文件⚓︎. K, R/ o) l9 ^  g8 R5 ~5 B
) K; J; j2 _" t5 W0 n0 e9 @
vi config-example.txt
9 n+ g, y. p( \. `3 r
3 g. c1 ~% _8 E( Z' {0 W7 a# 修改下面选项, 其他保持默认, 请勿直接复制此处内容
" u. c( U! h# d* i3 P7 }: t### 注意: SECRET_KEY 和要其他 JumpServer 服务器一致, 加密的数据将无法解密. S3 T; ?& _* f
/ A# C9 g9 x; E) u. d& [/ u
# 安装配置
$ D. w6 X# H' e5 Q) ^4 v### 注意持久化目录 VOLUME_DIR, 如果上面 NFS 挂载其他目录, 此处也要修改. 如: NFS 挂载到 /data/jumpserver/core/data, 则 VOLUME_DIR=/data/jumpserver
% c& u: d1 i5 a8 n2 b: @% Y! @) BVOLUME_DIR=/opt/jumpserver
/ |# [% Z& N0 @+ r% e, b  b. h; X9 w9 t7 B) O7 A% A' N: s+ I4 c

& ?4 \7 A9 n( A& `# Core 配置
" x* G0 E! m+ w$ r0 G1 a  g### 启动后不能再修改,否则密码等等信息无法解密, 请勿直接复制下面的字符串
7 T' [% t/ l3 mSECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW    # 要其他 JumpServer 服务器一致 (*)
2 q0 @" h3 D" }1 U. a7 EBOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q                                 # 要其他 JumpServer 服务器一致 (*), R9 U" ?2 C7 k6 E
LOG_LEVEL=ERROR                                                  # 日志等级
0 M- ^' @& |4 R/ o9 ~# SESSION_COOKIE_AGE=86400, D- S  E" J1 z5 \8 y' t# N
SESSION_EXPIRE_AT_BROWSER_CLOSE=True                             # 关闭浏览器 session 过期
, C2 l  x! p; c# ]0 t# B4 |8 g* s6 E2 x% I$ Z  U2 V
# MySQL 配置
. o1 H/ R# B" ~# R: i  I5 n
( h; d7 b) k0 A, o; f0 E4 tDB_HOST=192.168.10.11
. ^8 }' N5 M1 D  ~1 y5 ~* W. @DB_PORT=3306
" [6 A  f" w  `  n; p3 q2 g  O2 F- aDB_USER=jumpserver
  Q5 A/ C/ _& q' s/ j8 XDB_PASSWORD=KXOeyNgDeTdpeu9q9 o$ N- A5 L! N# u
DB_NAME=jumpserver# I& Z% o* i* h4 t1 x& G

% l4 {. D4 B9 J" E8 W7 P2 W, }( R0 \# Redis 配置  N# l( H% R+ J' C7 z
) E* u& f3 D2 p
REDIS_HOST=192.168.10.11
  c/ y" b( W; W0 M1 Q2 `) i* Z% ?REDIS_PORT=6379
$ A) Y1 C" b' W' EREDIS_PASSWORD=KXOeyNgDeTdpeu9q
5 s! C3 T/ [$ v2 {: E1 u* K3 y* N% i! \# [
# KoKo Lion 配置
0 h4 m6 j- u/ ?SHARE_ROOM_TYPE=redis                                            # KoKo Lion 使用 redis 共享
. _; @' Y- ?/ y/ F- |( lREUSE_CONNECTION=False                                           # Koko 禁用连接复用
3 w) m  A% d# l3.3 执行脚本安装 JumpServer 服务⚓︎9 m  a3 M3 ?2 F" q7 L

3 e5 D! ?5 g1 S- x8 w5 C./jmsctl.sh install
% l" S$ P4 G( v! _3.4 启动 JumpServer 服务⚓︎
3 K5 L/ E, x2 h5 m! p7 i5 k7 U: q) \. d
./jmsctl.sh start
( J8 d7 D. i8 H- j1 Z) m( P
7 y7 K! @5 {$ O" e) N6 _Creating network "jms_net" with driver "bridge"
6 s7 Z0 d4 P- M; \& n7 U. CCreating jms_core      ... done4 m  h+ L% r* `" U) ]
Creating jms_celery    ... done  E" E  K! g4 a! L+ T' F
Creating jms_lion      ... done
) y7 I8 {$ }4 U1 t9 b' O' mCreating jms_koko      ... done" _, v7 o& Y  D( n
Creating jms_magnus    ... done  i$ `4 x5 s# k( f. Z
Creating jms_web       ... done
: A5 b" J9 ?9 o$ A% X  A
1 w5 y6 J8 ^4 N5 C* j! ?3 y0 W

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:07 | 显示全部楼层
部署 JumpServer 03 节点⚓︎
, ]2 o# r4 J1 W" b6 \2 q. X2 `1 准备工作⚓︎* x4 E" x- l# x: \4 a) o
1.1 环境信息⚓︎
% s' }) ~- t# Z* M7 aJumpServer_Node_03 服务器信息如下:) Y8 B4 {' J7 y
1 K' Q& Y" U1 w1 E
192.168.10.23+ [" [* V/ @/ v) g5 c0 G+ E7 w& C# T* n
2 配置 NFS⚓︎  U5 O4 q; O7 N. M3 M2 [
2.1 安装 NFS 依赖包⚓︎
2 E3 Y: a7 ^" D. d4 o8 l# N9 z: U: C0 |' v4 v0 f0 g
yum -y install nfs-utils
2 O/ u8 |7 X2 L7 O" ~9 Bshowmount -e 192.168.10.11" v- ?2 q% G! Y% g: \( q2 t5 h: S
2.2 挂载 NFS 目录⚓︎+ T: e& z2 ^4 v$ a9 W

4 G  }3 I6 q( |# 将 Core 持久化目录挂载到 NFS, 默认 /opt/jumpserver/core/data, 请根据实际情况修改; ^3 ~" [+ n7 m  K2 R
# JumpServer 持久化目录定义相关参数为 VOLUME_DIR, 在安装 JumpServer 过程中会提示
* V* Y4 h9 I: Q3 y" ymkdir /opt/jumpserver/core/data& z2 y1 P: X* a2 @% J
mount -t nfs 192.168.10.11:/data /opt/jumpserver/core/data5 r0 J9 z/ p1 q* T2 N* m% L% L# D
2.3 配置 NFS 共享目录开机自动挂载⚓︎0 Z. j# x) S: V  n

0 ]/ m" U( n6 D" n5 b( h# 可以写入到 /etc/fstab, 重启自动挂载. 注意: 设置后如果 nfs 损坏或者无法连接该服务器将无法启动
$ a" ]" z6 N5 P2 F. h+ r/ P: Techo "192.168.10.11:/data /opt/jumpserver/core/data nfs defaults 0 0" >> /etc/fstab
: L4 \1 |' V7 j( c3 安装 JumpServer⚓︎" F' C% u( z1 j& t$ `8 P
3.1 下载 jumpserver-install 软件包⚓︎+ Q! u% S% R. a( N6 H5 r

7 |5 G8 k% W& e9 C! g6 H; Q. e' Pcd /opt
( p+ d7 a  m+ H+ Fyum -y install wget
$ j0 b# f1 |- D+ mwget https://github.com/jumpserver/in ... aller-v3.0.3.tar.gz
% I5 _' k. g5 e7 K" mtar -xf jumpserver-installer-v3.0.3.tar.gz
$ |) r& k) A& [5 |( I0 scd jumpserver-installer-v3.0.3
0 Z4 d) h5 B3 f  }' G% L% }3 |3.2 修改临时配置文件⚓︎9 S5 ]& N/ B# A

) ~6 e% T7 _( C, G# T" a+ }, r% lvi config-example.txt
! i6 h' B* ^+ A- ]5 R* E# I% K+ r# r0 L3 Q$ ]) M1 X! g) p
# 修改下面选项, 其他保持默认, 请勿直接复制此处内容7 p/ Q) B" O1 f5 ^) @  A
### 注意: SECRET_KEY 和要其他 JumpServer 服务器一致, 加密的数据将无法解密
  p' t5 p: w  e. _- e8 N' M
0 @/ H, y; X4 ?3 }! a& w4 m# 安装配置5 b; l4 t( S% s8 u& k* O
### 注意持久化目录 VOLUME_DIR, 如果上面 NFS 挂载其他目录, 此处也要修改. 如: NFS 挂载到 /data/jumpserver/core/data, 则 VOLUME_DIR=/data/jumpserver
" P- x' {! p  T; C& P( \, B9 `VOLUME_DIR=/opt/jumpserver
; n- S: t: C( F$ w% ]. S  H! e% B
+ c5 a6 [! V  N8 m
" c+ Q0 k9 _, U4 s" ^3 N# Core 配置* ^& d% u4 K/ h  u5 U* W8 h2 q/ Z
### 启动后不能再修改,否则密码等等信息无法解密, 请勿直接复制下面的字符串
. q. d( C- r* |SECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW    # 要其他 JumpServer 服务器一致 (*)' @5 f0 n8 P& z! Y9 E
BOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q                                 # 要其他 JumpServer 服务器一致 (*)& c% V' R" r4 ~4 T
LOG_LEVEL=ERROR                                                  # 日志等级
2 H! j. p6 o2 Q9 d  c3 h9 P# SESSION_COOKIE_AGE=86400$ [8 o. P0 p) t' H+ X7 Z6 N$ x; x' J
SESSION_EXPIRE_AT_BROWSER_CLOSE=True                             # 关闭浏览器 session 过期( w' K7 @1 ]+ E( F3 ]
. N$ E+ [, U- N3 x
# MySQL 配置
1 R. s2 L9 i6 M( _8 A# f2 K( B
& o) y3 D# ~1 u# pDB_HOST=192.168.10.11/ ?7 f5 ]( l4 G( z; D
DB_PORT=3306
' X! M! Q" P4 eDB_USER=jumpserver5 G' t, M+ n' Z+ {' I0 @
DB_PASSWORD=KXOeyNgDeTdpeu9q
3 G) [% ~: Z6 f% P) `( [* }DB_NAME=jumpserver
; w4 T# B1 D! Q3 N
# F( r: N3 G. G7 @# Redis 配置7 M7 c& U* A( A3 A3 \( f$ n

- K, l2 R) q/ N2 I. e0 q% p) H; |6 ^REDIS_HOST=192.168.10.11" j% O7 B! g1 P0 J, t/ _
REDIS_PORT=63798 |" `; X+ x9 l% g5 ]/ `5 [
REDIS_PASSWORD=KXOeyNgDeTdpeu9q
1 }& ~0 w: d  Y6 D
% L- m" ^1 m, |' l. n# KoKo Lion 配置
  M. e; L$ G& }" J/ K0 ZSHARE_ROOM_TYPE=redis                                            # KoKo Lion 使用 redis 共享
/ m- W* a9 K, AREUSE_CONNECTION=False                                           # Koko 禁用连接复用
, @# F6 K; m: B2 k1 v$ s3.3 执行脚本安装 JumpServer 服务⚓︎; r' A5 [( K% x" `+ p) B
* l2 }' Q+ N% V
./jmsctl.sh install
. ^% \0 \5 R, x  u3.4 启动 JumpServer 服务⚓︎7 t& d, A# `( @6 h

  z! `& P' j. V! Y; C./jmsctl.sh start9 Q2 y4 e' \+ ^
" h/ h" e4 ~$ R% r1 ~% O2 H
Creating network "jms_net" with driver "bridge"/ ]/ y; N% a6 h! e  `
Creating jms_core      ... done
9 k: A& v4 Y: ^: E) m3 ACreating jms_celery    ... done
5 j3 l; K! F- w8 l$ o' zCreating jms_lion      ... done& C3 j$ e. G, Y7 n! i
Creating jms_koko      ... done0 c% V2 k7 X& N3 `) ?3 `2 p
Creating jms_magnus    ... done
$ c: K  V3 F3 wCreating jms_web       ... done
4 L3 u3 ?3 {1 m: o4 `& O; k/ I6 u
2 N) ^5 A# t8 H  ^% W$ S: f9 c  v8 K

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:08 | 显示全部楼层
部署 JumpServer 04 节点⚓︎
( h' _4 K. S4 l6 p+ k1 准备工作⚓︎
( b( Z  e- C5 a: J! }1.1 环境信息⚓︎  p6 ~) W5 ~0 u0 m0 T
JumpServer_Node_04 服务器信息如下:  V2 q7 Y, P. F

  m* b7 P, L9 Z. {( u' G# J192.168.10.241 l* {1 ]0 b: e
2 配置 NFS⚓︎
5 G) f0 ?# v2 V8 q* i6 G2.1 安装 NFS 依赖包⚓︎
) |& t6 I0 N6 D; z  |' A3 [
6 N# A2 M; P9 eyum -y install nfs-utils. g- u5 S0 O0 T( X
showmount -e 192.168.10.11) i. M% p5 s) f- F
2.2 挂载 NFS 目录⚓︎
4 @6 P/ A" [/ W" \2 T6 u& m
& s; r& H3 }# ?  J# K# 将 Core 持久化目录挂载到 NFS, 默认 /opt/jumpserver/core/data, 请根据实际情况修改& M, a, l0 @) G7 C/ l& k0 _
# JumpServer 持久化目录定义相关参数为 VOLUME_DIR, 在安装 JumpServer 过程中会提示5 r7 h! F% L+ _! A1 {* E  x
mkdir /opt/jumpserver/core/data
7 z6 |2 c9 B# g" ]mount -t nfs 192.168.10.11:/data /opt/jumpserver/core/data
. G+ [) \% ]' r2.3 配置 NFS 共享目录开机自动挂载⚓︎& z4 s/ Z% q  ^$ h/ }2 p1 e0 N

: ]4 l3 b* p& |, O% P# 可以写入到 /etc/fstab, 重启自动挂载. 注意: 设置后如果 nfs 损坏或者无法连接该服务器将无法启动
, h+ k& [+ U# m4 L  M2 v  Kecho "192.168.10.11:/data /opt/jumpserver/core/data nfs defaults 0 0" >> /etc/fstab) s& s* W8 q2 J/ l& I, p
3 安装 JumpServer⚓︎
* G: h$ U* [$ ^% L, p% Z/ ?0 v3.1 下载 jumpserver-install 软件包⚓︎. X* ?* j; k4 h2 X9 J$ H
- Y, O1 t% n: c2 r; S5 T
cd /opt) g3 ^( F* w& ?, p4 l4 k# [
yum -y install wget
( x' ~+ h& p0 Q+ f5 H: Z) I8 Nwget https://github.com/jumpserver/in ... aller-v3.0.3.tar.gz
4 i/ m) N3 r. g- y) S1 etar -xf jumpserver-installer-v3.0.3.tar.gz
. k: }* D& D2 i7 _  Scd jumpserver-installer-v3.0.3
5 _" E# n. d# E3.2 修改临时配置文件⚓︎8 z! t5 u1 q! `6 b

! t/ S* b3 I# s, {vi config-example.txt
. E8 [: V0 o7 z5 E% z* _0 \5 ?  G* }8 w3 A; @: J' Y
# 修改下面选项, 其他保持默认, 请勿直接复制此处内容
; J( b: y" u# [6 c### 注意: SECRET_KEY 和要其他 JumpServer 服务器一致, 加密的数据将无法解密! x* V6 @0 b- f  r0 e6 G
- i+ [% a* G8 Y
# 安装配置
3 D0 L5 U2 ?8 {$ y7 a1 f  _6 |### 注意持久化目录 VOLUME_DIR, 如果上面 NFS 挂载其他目录, 此处也要修改. 如: NFS 挂载到 /data/jumpserver/core/data, 则 VOLUME_DIR=/data/jumpserver
& n. u) ~3 ?5 h" D. m' VVOLUME_DIR=/opt/jumpserver
2 [/ I2 Y. e+ S0 i9 W) H  R* x7 l0 a. c. F6 N8 Y# J4 {: p

/ a; q1 D9 m0 F, H# Core 配置
: e& |# X8 Y5 ?) H### 启动后不能再修改,否则密码等等信息无法解密, 请勿直接复制下面的字符串& t! C8 ^- F7 N
SECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW    # 要其他 JumpServer 服务器一致 (*)- u2 W# j4 B# l# F6 u4 d
BOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q                                 # 要其他 JumpServer 服务器一致 (*)
# j6 ~& ^3 Y" [. L0 vLOG_LEVEL=ERROR                                                  # 日志等级5 b8 A! M3 f" j% g- b; G
# SESSION_COOKIE_AGE=86400
% y  A7 o9 Y+ X8 \SESSION_EXPIRE_AT_BROWSER_CLOSE=True                             # 关闭浏览器 session 过期8 T1 s$ l# h- U7 H  |  Z
) k+ o3 t/ Z. m$ a3 w
# MySQL 配置: K, a& \3 \+ A; e+ F; t  p

7 L8 U  ~- }8 c$ j' aDB_HOST=192.168.10.11) @; X& ]( a, Y7 [
DB_PORT=33067 M4 R3 J3 R: o! Q* s! d2 ?, c
DB_USER=jumpserver' p3 B+ H( l7 D+ x# e$ z
DB_PASSWORD=KXOeyNgDeTdpeu9q8 H* B$ F% S3 P2 |
DB_NAME=jumpserver" T* A2 U% M) U/ Z3 h! b
5 l' T* v* K& A9 i
# Redis 配置$ K3 ~7 z& m3 U; v6 ?
) {: F) a2 k4 N
REDIS_HOST=192.168.10.116 I1 l; D0 W/ ]- v
REDIS_PORT=6379
! E8 v- T+ L6 V  M: w# p- ]REDIS_PASSWORD=KXOeyNgDeTdpeu9q
. i, w* t  p) D" {. Q* `/ A$ q: Z1 ^
9 u" k$ b3 e. P8 b# KoKo Lion 配置* z% Z9 C% Z' Z0 L$ [/ L
SHARE_ROOM_TYPE=redis                                            # KoKo Lion 使用 redis 共享5 k: Y& Q# V/ b+ p
REUSE_CONNECTION=False                                           # Koko 禁用连接复用
3 w- N) ]8 w% v; _3 [+ t1 b3.3 执行脚本安装 JumpServer 服务⚓︎
+ v3 i8 e6 d+ _) x& I/ x3 r+ z# w$ G
4 O4 d* r& r8 |' e* J8 \4 }/ J./jmsctl.sh install
0 R6 }; @5 ]8 q1 Q; b3.4 启动 JumpServer 服务⚓︎
$ N  e- i, z5 b) k0 C3 W) {3 M
3 t3 {( w$ W4 l$ |  I./jmsctl.sh start
2 y2 a! H" U* u# v. T
" F9 x, ~' r* ]7 ICreating network "jms_net" with driver "bridge"
7 {7 E  M( E9 T' B4 V5 zCreating jms_core      ... done9 t2 K+ V8 g9 _: I8 r1 K- W
Creating jms_celery    ... done+ N# [6 s8 D: ^: J4 T
Creating jms_lion      ... done" C, A$ T" H- n6 F
Creating jms_koko      ... done
# t: i3 @" H! s- o* M0 M6 {Creating jms_magnus    ... done
2 f1 Q) n) I7 eCreating jms_web       ... done
# y' ~* A% ^+ [/ H+ G2 ?# U7 ?, p, l* ~+ W. a$ _

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:09 | 显示全部楼层
部署 HAProxy 服务⚓︎
5 p8 z% F' B  @0 m8 s1 准备工作⚓︎
; u; v% L1 [! g+ z: W1.1 环境信息⚓︎
; L0 Y: w. ?5 \* L% @6 g0 DHAProxy 服务器信息如下:  B/ [% _; [0 I

, y, W6 ]) `0 v' k$ P192.168.10.100
: R) P$ n8 _0 Q2 w. y9 x& r1.2 安装依赖⚓︎
4 @0 R0 n3 T* j2 u1 A* o  m$ N0 W1 i$ N$ t9 ^! s
yum -y install epel-release0 H; c0 c7 ~- b) R' {2 T: Y3 v
2 安装配置 HAProxy⚓︎
/ [7 H( V; ]; Y0 K4 \6 B5 ~2.1 安装 HAProxy⚓︎9 z, T: b( t( v8 r* M

' v4 y7 l, {+ C+ j# b; h% k; Nyum install -y haproxy/ ~: F5 _, Q. M+ @6 z3 r0 C
2.2 配置 HAProxy⚓︎1 e; T) J  M) G1 V" v

/ _3 v" Z/ [7 H8 h7 F# 打开 HAProxy 的配置文件
( \# R" l8 k" v: T! evi /etc/haproxy/haproxy.cfg
( u! v! O' N8 _# E& H
9 f# t: v* ]/ X3 hglobal6 G' a1 n4 A8 i, {2 ^: F4 v. A3 w
    # to have these messages end up in /var/log/haproxy.log you will
  z! R( n+ o7 X( e    # need to:
; @) X* X! B: ?% A$ D* R    #
! R3 n2 Y( f4 K' [+ Q  @  F    # 1) configure syslog to accept network log events.  This is done8 y7 \5 z2 k& W! K4 |4 r; [
    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
$ j& ?% M' T1 g: T    #    /etc/sysconfig/syslog4 a0 x" Y0 \, O+ c
    #
# W! V7 N3 m8 r" q) d$ i, k    # 2) configure local2 events to go to the /var/log/haproxy.log
2 V  A0 q; ^4 U7 y5 {    #   file. A line like the following can be added to, z! T5 x) ]; m2 e, a
    #   /etc/sysconfig/syslog
& g$ O% W/ N% w: [* T# y+ n+ F, p    #
) W+ Y' ^% J: Y: i: v) D+ s" s    #    local2.*                       /var/log/haproxy.log
" I  f9 l/ e# x" u7 d    #
* C1 t" u* _+ D% P! r/ b# |9 m5 ?" P0 h    log         127.0.0.1 local29 O- T! M5 S: A/ v* P

6 i6 f2 E* v. b. H. v    chroot      /var/lib/haproxy
. a: F  g/ Z- A: T6 M    pidfile     /var/run/haproxy.pid
/ Z: {, c  o- d3 k2 N. S    maxconn     4000
* O- z+ y5 F2 v    user        haproxy  H4 ]  o" }; f# i" C
    group       haproxy
& R% y8 ~2 R# a& b1 q" c    daemon2 y2 L& U: ?$ I# [9 D/ o' O

( {: x( C# t0 `+ |3 O    # turn on stats unix socket
; G5 O* J! Y- T9 }) z: ]    stats socket /var/lib/haproxy/stats
3 \- E, a. f" r- Y0 W' r9 u4 {/ o! l7 j9 c8 J
#---------------------------------------------------------------------. h3 H! U# J/ X  N% M2 x# Z4 i
# common defaults that all the 'listen' and 'backend' sections will/ W" l8 ^' b  N* ~4 ~
# use if not designated in their block6 L! u0 X/ u8 t" [, D% Z3 O1 g! r
#---------------------------------------------------------------------
+ `% C0 }2 Q) q; v- L- \1 kdefaults
% C( |. n0 f. ^7 A0 q2 L    log                     global% L6 V/ t/ Z/ c" P. R
    option                  dontlognull
2 X: G4 f9 L' Q6 [) {    option                  redispatch- ]* E6 W* i! |+ N8 M
    retries                 3/ c, h% u# |# w* g
    timeout http-request    10s
9 V1 k, |2 p; a/ G    timeout queue           1m
* P; ~/ O$ Y. n$ k$ J    timeout connect         10s
2 Q: h3 Y1 H" \    timeout client          1m7 `4 }1 `, L. T$ U3 W
    timeout server          1m. O# J- ]% k+ w5 o7 ?9 Y
    timeout http-keep-alive 10s
! P5 g# B; Y% L: |% @/ _, f    timeout check           10s
( q: O6 S9 L9 k7 b    maxconn                 3000
5 Y% n+ _' L% f; @. M" U& K- @. [; y) m; n% {% W* f% Y/ R! f6 C. x
listen stats
0 k0 j$ C% W) E: v, y( p# O! h% _    bind *:8080
' i9 h# O8 L: c8 [  M    mode http
9 z6 C. _, n9 L) j% n8 R2 {$ ], b    stats enable/ A1 O; e. f/ p5 @! U. }8 k
    stats uri /haproxy                      # 监控页面, 请自行修改. 访问地址为 http://192.168.10.100:8080/haproxy
. L6 \0 k  i8 f( Z/ J    stats refresh 5s7 q. g/ n$ ~/ X4 {. g3 x4 \* ~2 K
    stats realm haproxy-status
) t- U% U) N% J+ B6 t9 x9 }/ d    stats auth admin:KXOeyNgDeTdpeu9q       # 账户密码, 请自行修改. 访问 http://192.168.10.100:8080/haproxy 会要求输入. I' S9 ~% L( M9 h$ ~( n1 ]
2 |8 i2 {! A7 ~- L5 M+ A7 [
#---------------------------------------------------------------------" Y& B9 N2 y0 d0 ~) C
# check  检活参数说明1 J0 b  [/ }- C8 z+ {  i& T
# inter  间隔时间, 单位: 毫秒! `8 `9 p) R: ]+ u$ ]9 N" {# e
# rise   连续成功的次数, 单位: 次' ?9 g+ b5 k) ?- r1 N6 N5 S
# fall   连续失败的次数, 单位: 次
, z) a$ E: q3 y# i" C% S( E# 例: inter 2s rise 2 fall 3, a% v" \7 P' V3 l; |/ }/ j$ B
# 表示 2 秒检查一次状态, 连续成功 2 次服务正常, 连续失败 3 次服务异常
: O. l- f+ T; [#1 {% P9 h* v. }& {% G7 m8 n" a6 Z5 D3 b
# server 服务参数说明* b5 s  e# Q+ N
# server 192.168.10.21 192.168.10.21:80 weight 1 cookie web01
* R: G* c# I+ I# J, R# 第一个 192.168.10.21 做为页面展示的标识, 可以修改为其他任意字符串
1 G" x- T4 \4 z# 第二个 192.168.10.21:80 是实际的后端服务端口
! K* W; G' c& @5 ]- S# weight 为权重, 多节点时安装权重进行负载均衡
8 K2 _* x2 V4 a1 B& ?# cookie 用户侧的 cookie 会包含此标识, 便于区分当前访问的后端节点
+ `' O7 o( A* z! Q  E# 例: server db01 192.168.10.21:3306 weight 1 cookie db_01
5 d* f. g& q9 j#---------------------------------------------------------------------
2 E, t* ~8 I3 l: n1 O8 }1 M
# y6 N8 W: ?" E/ a* slisten jms-web5 \; {2 z& [' j/ Y) L* y: R/ q
    bind *:80                               # 监听 80 端口0 e& U# @: x; Q
    mode http: i( [7 ]. G! G

3 Q8 b$ l3 N1 K7 p    # redirect scheme https if !{ ssl_fc }  # 重定向到 https1 b7 J8 i  p2 r7 P3 ]' u
    # bind *:443 ssl crt /opt/ssl.pem       # https 设置
2 D3 ]) S) E' B' B3 D2 K  q1 k3 [' h2 G. O$ E& h: {  H8 l
    option httpclose
( S5 p, U" B! O- m* G) ]2 A    option forwardfor3 g. h; B1 t2 D. a9 d
    option httpchk GET /api/health/         # Core 检活接口& n6 l) b; S9 A) u

, a9 O9 m* v3 S& S, w: d    cookie SERVERID insert indirect
: {. d( c- R* E7 ]# ?    hash-type consistent
  ?$ D' a: r( e9 L8 V2 Y( ^! m5 u    fullconn 500
! h6 R+ b0 N" ^    balance leastconn
  L* D/ l9 b: E    server 192.168.10.21 192.168.10.21:80 weight 1 cookie web01 check inter 2s rise 2 fall 3  # JumpServer 服务器
) \' f1 G9 q+ Y    server 192.168.10.22 192.168.10.22:80 weight 1 cookie web02 check inter 2s rise 2 fall 3  t+ N5 B6 s) ^+ W0 X( P
    server 192.168.10.23 192.168.10.23:80 weight 1 cookie web03 check inter 2s rise 2 fall 3( L2 t6 `" l, {* P* u" `3 e
    server 192.168.10.24 192.168.10.24:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
4 E  z" U/ y5 [: Q# n. e. {* k; U
listen jms-ssh
* o# I- {5 ^+ o    bind *:2222% n, A' s! I5 L% D
    mode tcp" c" f2 w' j4 r" L9 u6 w4 n/ Z( Y

, p0 e  w* d# B" ]; w    option tcp-check
( M$ ?( M, Y5 ?' f: }2 V9 b/ E6 a9 @8 v: P# y8 b
    fullconn 500
2 b3 o9 \- |* |    balance source
$ I9 Q5 Z9 b: z; D9 Q- D2 S3 I    server 192.168.10.21 192.168.10.21:2222 weight 1 check inter 2s rise 2 fall 3 send-proxy
7 A3 W, ?: g' H; t6 [/ b  L    server 192.168.10.22 192.168.10.22:2222 weight 1 check inter 2s rise 2 fall 3 send-proxy8 N" }- [* w, _- X* R/ l- V
    server 192.168.10.23 192.168.10.23:2222 weight 1 check inter 2s rise 2 fall 3 send-proxy' H. e4 {4 X- m& B" A6 g8 i$ a
    server 192.168.10.24 192.168.10.24:2222 weight 1 check inter 2s rise 2 fall 3 send-proxy$ V' `+ x" Q* q- `6 l# w
- C, r, b1 ^! I+ F4 v5 t- [
listen jms-koko5 A$ u* Y% c% U8 T) ^
    mode http
& z9 Y( s  r* T% ^
, I" T+ P1 P" L. }! [/ ]9 J    option httpclose
% G+ C; ?* ?  T  p6 b3 |    option forwardfor
$ v6 z6 N0 u6 ^: e    option httpchk GET /koko/health/ HTTP/1.1\r\nHost:\ 192.168.100.100  # KoKo 检活接口, host 填写 HAProxy 的 ip 地址' h; S, e9 G2 W* C, L. d" u
# E9 q& P- i1 B. ]# n: x  z
    cookie SERVERID insert indirect# M8 \; R1 p" A0 C
    hash-type consistent  z) D+ V$ Y/ E$ b
    fullconn 500# e2 O" K. S" Y; d
    balance leastconn
" Y' X& L( M+ |2 l  T/ K2 t0 B+ S    server 192.168.10.21 192.168.10.21:80 weight 1 cookie web01 check inter 2s rise 2 fall 3
: j' b6 S6 z# O8 j* s- E    server 192.168.10.22 192.168.10.22:80 weight 1 cookie web02 check inter 2s rise 2 fall 3) {! u# O+ |, k
    server 192.168.10.23 192.168.10.23:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
8 ^' z' L; U$ J8 B+ ~4 h' S    server 192.168.10.24 192.168.10.24:80 weight 1 cookie web03 check inter 2s rise 2 fall 3+ {- H( J3 d7 s2 X: B

) z1 _" j2 a  A) r: Blisten jms-lion
0 ]/ b* c5 ^( d# `: c! h    mode http( Q' ~7 e! v; E3 U
  W' f% u; T) C& @" J5 b3 c
    option httpclose
# N: l) {# O& d! R( u1 I6 o    option forwardfor
; Q& A* {0 ^5 @" T    option httpchk GET /lion/health/ HTTP/1.1\r\nHost:\ 192.168.10.100  # Lion 检活接口, host 填写 HAProxy 的 ip 地址
9 o! k4 A$ z4 @4 J
/ i+ J4 [, f' m    cookie SERVERID insert indirect. w7 \6 l$ g6 V1 m0 a
    hash-type consistent3 g- s1 D3 c2 t- U$ k+ `/ e; ?
    fullconn 5007 r8 L6 ?( ^, P; z( d
    balance leastconn
% h5 h. w% |' @, Y  n, n    server 192.168.10.21 192.168.10.21:80 weight 1 cookie web01 check inter 2s rise 2 fall 3
2 E/ n$ \5 c2 {* B4 Z    server 192.168.10.22 192.168.10.22:80 weight 1 cookie web02 check inter 2s rise 2 fall 3( P  {, Y7 X9 Z+ L. t
    server 192.168.10.23 192.168.10.23:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
6 @- [& d7 z& b' x( \" H$ V    server 192.168.10.24 192.168.10.24:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
6 {5 n8 h3 F0 l! ^/ D. j& g/ C7 J! I8 o& Z8 ^  v+ }
listen jms-magnus
- Z( ^: x  T( z3 G/ j9 l    bind *:30000
: {' o7 @* Q( y% C    mode tcp
' L+ A, H! |8 N$ j+ e  g% \9 s/ a
    option tcp-check+ L" p7 W- X5 _  N9 N$ o
, d4 z6 C/ g! O  T. U8 I
    fullconn 500
- G) T4 l/ Y5 F  d/ A    balance source
% c/ l' P2 F7 {: Z    server 192.168.10.21 192.168.10.21:30000 weight 1 check inter 2s rise 2 fall 3 send-proxy
, d8 h7 i% e# X+ y' W    server 192.168.10.22 192.168.10.22:30000 weight 1 check inter 2s rise 2 fall 3 send-proxy' ]+ _6 j& c2 ]: }- x
    server 192.168.10.23 192.168.10.23:30000 weight 1 check inter 2s rise 2 fall 3 send-proxy( y6 }  M/ r* h3 G: v
    server 192.168.10.24 192.168.10.24:30000 weight 1 check inter 2s rise 2 fall 3 send-proxy
- ]% [) p) T: Y" c/ [1 |" M2.3 配置 SELinux⚓︎/ T4 c" U# R5 U* n

' R. P4 S3 J& _+ ^  v( Z. Qsetsebool -P haproxy_connect_any 1
' D6 ~( \' W% f# L* S# h/ {3 @+ o2.4 启动 HAProxy⚓︎
1 S# w8 T, a* F" c  n' o: |# X6 E$ V' w4 h1 ~$ C. k
systemctl enable haproxy7 l& q$ g9 y" I+ @" a2 d" \1 `) @4 J
systemctl start haproxy  C3 M# U9 \* C- E; Y/ s8 K. P
3 配置防火墙⚓︎
- R- d, X# `  y( d+ H3 `4 W3 ~4 f# D! i2 m
firewall-cmd --permanent --zone=public --add-port=80/tcp
) d# Y+ ~9 y1 O# B( E# v! Gfirewall-cmd --permanent --zone=public --add-port=443/tcp) w* Y* O2 x" K4 m; Z4 M
firewall-cmd --permanent --zone=public --add-port=2222/tcp1 k8 v% ]1 @: Q' T/ V
firewall-cmd --permanent --zone=public --add-port=33060/tcp
# p% V: a9 f- U7 x3 X! y  F# p9 U' J' tfirewall-cmd --permanent --zone=public --add-port=33061/tcp
- s1 }2 Y6 o* m1 ^firewall-cmd --reload
, ?9 ^1 Y4 k; B) J
2 r/ p2 R4 j4 ]$ Z1 Q; J% Y% _3 h

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:10 | 显示全部楼层
部署 MinIO 服务⚓︎
# ]+ Q/ V; n7 @4 L提示/ N& t' ?! d& ^9 A8 |/ U

) |5 a4 A* @9 M$ `+ c* P, o集群部署请参考 (http://docs.minio.org.cn/docs/ma ... de-quickstart-guide)/ n) ?) F2 A% U( ?9 H$ L5 p
1 准备工作⚓︎; y9 W2 G9 b5 p7 B
1.1 环境信息⚓︎/ J- F! o9 p( n) C
MinIO 服务器信息如下:9 S# E9 g+ {  I" ?

2 C0 e' R$ _9 o4 z7 X# Y192.168.10.41+ w6 @* C4 r8 M# l' v: m2 H5 ?
2 安装配置 Docker 环境⚓︎9 _% i$ J7 C( V
2.1 安装 Docker⚓︎
# q3 A9 e5 Z" D5 ^+ |1 |* b6 T2 R' T0 ], l( o4 |6 P3 k
yum install -y yum-utils device-mapper-persistent-data lvm2
& q5 ?) i  J  q6 X. a7 a7 Syum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
, U& u2 g* m; Qsed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo3 X* K1 G2 _6 H
yum makecache fast
) V: O) E$ q! t8 j3 Xyum -y install docker-ce- x; ]& e2 U& N1 q5 I) i" J' H+ h* f
2.2 配置 Docker⚓︎' L# a! }+ A  Y
. J7 F' Y- ]0 `* Z1 h9 T. i) C
mkdir /etc/docker/  r% I; H# ]) x
vi /etc/docker/daemon.json
0 M  ?! g/ B2 n, M1 L4 m
  A8 s6 o8 o0 H8 @; C{' w$ R0 ]; X, }3 c4 J* s
  "live-restore": true,+ O! [4 r4 @+ r% K5 j- }. V
  "registry-mirrors": ["https://hub-mirror.c.163.com", "https://bmtrgdvx.mirror.aliyuncs.com", "http://f1361db2.m.daocloud.io"],
' f  L7 }$ `' V% V" ]  "log-driver": "json-file",: O' j! x( J6 S
  "log-opts": {"max-file": "3", "max-size": "10m"}
" R; A  c7 ]* u9 O! P2 a8 p}
  m9 K6 A0 q/ {/ f/ K, @' X2.3 启动 Docker⚓︎3 g+ e% z1 i; A  c% L( x

4 H' u" S' v9 ~systemctl enable docker3 p$ r4 U; g" u; z
systemctl start docker" A6 |, ]; g7 }! u- R4 S  m
3 安装配置 MinIO⚓︎
, j$ x7 O8 ]) o0 q6 t& C3.1 下载 MinIO 镜像⚓︎
* n. V  Q4 |+ R" m' R/ \( Q$ [1 ]0 {4 r# P) _/ |% L
docker pull minio/minio:latest1 p( ]+ c; [# v

& V7 s! G! z# t8 ~4 vlatest: Pulling from minio/minio/ P0 G  g( x4 a8 o6 L0 E& V
a591faa84ab0: Pull complete1 H* N1 e9 n! E& b$ o( v
76b9354adec6: Pull complete
+ Z8 a9 Q) A3 z9 j: s( Of9d8746550a4: Pull complete
; c" U5 |4 k4 ]9 H% ~4 Q1 q! S890b1dd95baa: Pull complete
  \0 s2 q# [9 L$ q5 G# ]( X2 N) X3a8518c890dc: Pull complete
# O$ k" ]3 |# [( E8053f0501aed: Pull complete
* a8 K  [) c6 r506c41cb8532: Pull complete) g; n; y1 q. ^  c) m2 a
Digest: sha256:e7a725edb521dd2af07879dad88ee1dfebd359e57ad8d98104359ccfbdb92024
, ^$ f9 k, z7 Q9 R4 [) vStatus: Downloaded newer image for minio/minio:latest
7 b4 j+ D. o$ }' R# v, p( P4 r) edocker.io/minio/minio:latest' N' S2 _& Q  _9 q; D
3.2 MinIO 持久化数据目录创建⚓︎1 m( Q0 O$ E: V7 S
0 b/ \3 ?. ^: c8 n* V/ i0 {
mkdir -p /opt/jumpserver/minio/data /opt/jumpserver/minio/config& r7 r3 U* O# Z5 h+ i$ J
3.3 启动 MinIO 服务⚓︎
, r, C3 X- p# B( h8 F. T4 _5 p  F5 r+ p
## 请自行修改账号密码并牢记,丢失后可以删掉容器后重新用新密码创建,数据不会丢失
% G$ ^* `) g8 Y' ]- B1 H# 9000                                  # api     访问端口, w; I2 U2 D5 {
# 9001                                  # console 访问端口% [2 E6 X) I" L8 ~
# MINIO_ROOT_USER=minio                 # minio 账号
: a: f# Y2 p! d; \# MINIO_ROOT_PASSWORD=KXOeyNgDeTdpeu9q  # minio 密码+ O* s, F6 H# e8 k+ \- L- i/ ^

( c) V/ l% |' H* y/ {, l" Hdocker 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"1 Y5 @+ Q  f) e- v
3.5 在 MinIO 中创建 Buckets⚓︎& l! t, h  m5 V  M; j* Z0 C; Z- n! j7 W
访问 http://192.168.10.41:9000,输入刚才设置的 MinIO 账号密码登录。" Q5 K1 E& h+ t* L* {" S/ Z
点击左侧菜单的 Buckets,选择 Create Bucket 创建桶,Bucket Name 输入 jumpserver,然后点击 Save 保存。! J2 ?9 H8 k. B* n, H4 ~' ~
3.6 在 JumpServer 中配置 MinIO⚓︎& D; N, m1 o3 i" \/ t2 m9 s
访问 JumpServer Web 页面并使用管理员账号进行登录。
3 ~& N6 {$ Z# |  _点击左侧菜单栏的 [终端管理],在页面的上方选择 [存储配置],在 [录像存储] 下方选择 [创建] 选择 [Ceph]/ R9 z4 I' O# U; ~* G9 V9 s
根据下方的说明进行填写,保存后在 [终端管理] 页面对所有组件进行 [更新],录像存储选择 [jms-mino],提交。
. @  ]2 Q! E# Q( M. J& C选项        参考值        说明# \+ W, L) S# @+ M
名称 (Name)        jms-minio        标识, 不可重复% q7 d2 U+ ~4 d: E/ n/ X
类型 (Type)        Ceph        固定, 不可更改
4 {! n9 W  l2 U: i8 I桶名称 (Bucket)        jumpserver        Bucket Name
+ w4 f! l; w* G6 @/ }4 d! {9 pAccess key        minio        MINIO_ROOT_USER3 ~7 n9 F; S- w; @, G
Secret key        KXOeyNgDeTdpeu9q        MINIO_ROOT_PASSWORD
" @# ^; E* X1 \8 C9 X1 e) o端点 (Endpoint)        http://192.168.10.41:9000        minio 服务访问地址9 v) `  H( H- h% o6 Z+ n
默认存储                新组件将自动使用该存储
. }; p7 d$ V' R, {* w" e+ q% `! ~4 l; N
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 03:05 , Processed in 0.021671 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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