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

jumpserver集群模式部署

[复制链接]

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
发表于 2023-3-8 10:00:01 | 显示全部楼层 |阅读模式
准备工作⚓︎" z. b" }/ E- a8 j7 C
1 整体部署说明⚓︎
. f8 j# B, D# o% N环境说明# R* K0 g2 A- n

" z$ j$ C) s' Z/ ?" p4 t" l除 JumpServer 自身组件外,其他组件的高可用请参考对应的官方文档进行部署。
( ^+ B; R/ M% u! f* o- g按照此方式部署后,后续只需要根据需要扩容 JumpServer 节点然后添加节点到 HAProxy 即可。* o2 i0 H' s& e
如果已经有 HLB 或者 SLB 可以跳过 HAProxy 部署,第三方 LB 要注意 session 和 websocket 问题。$ a# R/ ^( U" j1 \
如果已经有 云存储 (S3/Ceph/Swift/OSS/Azure) 可以跳过 MinIO 部署,MySQL、Redis 也一样。5 A& {# T, c/ U) N0 _$ }
生产环境中,应该使用 Ceph 等替代 NFS,或者部署高可用的 NFS 防止单点故障。
; q; x& u3 U2 X* w: l9 b5 r- R3 Z: d1.1 数据库要求⚓︎6 g7 @0 z0 s" o" l5 h/ Q
名称        版本        默认字符集        默认字符编码        TLS/SSL! w( n' B. F$ C; _% v4 t- [
MySQL        >= 5.7        utf8        utf8_general_ci       
- F) z9 H8 T1 b" RMariaDB        >= 10.2        utf8mb3        utf8mb3_general_ci       
3 w/ }6 d( G' q" G; O5 c( GName        Version        Sentinel        Cluster        TLS/SSL
, S0 T4 J; q' ^5 R  l3 vRedis        >= 6.0                        0 U* N8 d1 s9 S/ g
1.2 服务器要求⚓︎9 m- D: r* G4 m+ f# u+ ]- ^" [: Y
服务名称        IP 地址        端口        使用涉及组件/服务        最小化硬件配置        标准化硬件配置0 ?8 U2 D5 T3 F, Q. E
NFS        192.168.10.11        -        Core        2Core/8GB RAM/100G HDD        4Core/16GB RAM/1T SSD
! q( C/ D4 Q5 I0 w  XMySQL        192.168.10.11        3306        Core        2Core/8GB RAM/90G HDD        4Core/16GB RAM/1T SSD- S2 x- X# j6 Z
Redis        192.168.10.11        6379        Core, Koko, Lion        2Core/8GB RAM/90G HDD        4Core/16GB RAM/1T SSD: E# Z# x) R2 n! b% m3 x9 v
HAProxy        192.168.10.100        80,443,2222,33060,33061        All        2Core/4GB RAM/60G HDD        4Core/8GB RAM/60G SSD  Q) C$ u+ q' T/ g
JumpServer 01        192.168.10.21        80,2222,33060,33061        HAProxy        2Core/8GB RAM/60G HDD        4Core/8GB RAM/90G SSD
! @) b/ S* F7 ]" t1 x- H" Y3 g1 MJumpServer 02        192.168.10.22        80,2222,33060,33061        HAProxy        2Core/8GB RAM/60G HDD        4Core/8GB RAM/90G SSD
+ x. k) y9 Y- }3 _; T7 Q" A* G) NJumpServer 03        192.168.10.23        80,2222,33060,33061        HAProxy        2Core/8GB RAM/60G HDD        4Core/8GB RAM/90G SSD
  U! t7 K( P+ Y* Q4 [JumpServer 04        192.168.10.24        80,2222,33060,33061        HAProxy        2Core/8GB RAM/60G HDD        4Core/8GB RAM/90G SSD& S; I8 k' d4 x* h
MinIO        192.168.10.41        9000,9001        Core, KoKo, Lion        2Core/4GB RAM/100G HDD        4Core/8GB RAM/1T SSD
# Q8 }  J" K: ~3 b# HElasticsearch        192.168.10.51        9200,9300        Core, KoKo        2Core/4GB RAM/100G HDD        4Core/8GB RAM/1T SSD" L' P' m9 c) t8 L2 |
1.3 组件容器健康检查⚓︎1 H+ D  i4 N$ m5 E0 o8 E
服务名称        健康检查        实例; {3 Q1 S! j- O' D$ @6 Y. l7 s
Core        http://core:8080/api/health/        https://demo.jumpserver.org/api/health/. n5 G" W( @9 @$ u( k" _- {
KoKo        http://koko:5000/koko/health/        https://demo.jumpserver.org/koko/health/2 \3 r" k3 Q% N& k6 _- E; f
Lion        http://lion:8081/lion/health/        https://demo.jumpserver.org/lion/health/8 H5 s1 T* e( W" ]  c
2 部署顺序⚓︎5 x- A6 \7 v1 G- x% {
1.部署 NFS 服务3 U" }& ^: U- L& t( a" U
$ c. `; l% G6 B2 @2 k
2.部署 MySQL 服务
9 f# C+ G& x3 e# R/ ]; \! j4 J
- O; _3 M0 a& A6 u5 ~3.部署 Redis 服务( v1 J% K. W! m
4 ^" O  B5 E9 D* A8 J0 J  D9 F; H
4.部署 JumpServer 01 节点% J8 j: L; C& F. ~$ O

; m. r! l% ^0 ^2 Y2 ]! Y) l# D5.部署 JumpServer 02 节点' L7 l- Y) p& K* C1 u; l

6 V- N: l$ Q# B; _- [/ Z( W% K6.部署 JumpServer 03 节点
3 C! u; b5 {+ M! w  C4 H1 l7 ^$ q3 K: x& l
7.部署 JumpServer 04 节点
9 L4 l# ^8 \$ y$ c
. O! c2 d6 P5 P7 W- b. j8.部署 HAProxy 服务7 w* r; q+ q) G

: r5 e1 q" j0 g% c9.部署 MinIO 服务6 `+ M. _0 ^" J+ D* J2 P5 e

- Q* k5 a4 c7 w2 g10.部署 Elasticsearch 服务* D( Z3 H# U2 H9 m  s2 x3 q8 d9 y

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:02 | 显示全部楼层
部署 NFS 服务⚓︎
' |* E$ B, q# L- S1 NFS 服务器端安装与配置⚓︎( h0 m+ _9 H0 m! e/ J5 R
1.1 环境信息⚓︎3 c$ i# X1 `2 r
NFS 服务器信息如下:
. f7 ~# ~- ^5 }4 c! j1 x  o# \5 L
; ^+ x; j' U3 K0 o) C192.168.10.11+ N2 c9 K  U4 {) U, E7 g" {: F, [
1.2 安装依赖⚓︎
/ j# W- V- O! O6 F  B
! E$ y  }% z$ w0 F! U  ^! tyum -y install epel-release' z: M% V/ N: ], b, P# F, ?  i7 q9 F
1.3 安装 NFS 依赖包⚓︎5 V& `- [6 {! y2 O2 E9 |& J( n
8 R7 f; _+ E# K4 G
yum -y install nfs-utils rpcbind# @8 j& ~1 L' g: j" a
1.4 启动 NFS⚓︎( @( n  Q- c' M8 N/ C

$ F, C. w/ C0 k* \2 z0 w* ]$ O+ psystemctl enable rpcbind nfs-server nfs-lock nfs-idmap% o5 z/ R4 w& q
systemctl start rpcbind nfs-server nfs-lock nfs-idmap
/ K3 h0 b! W/ a( X% M+ w; ?4 [1.5 配置防火墙⚓︎
% X8 ~2 ?2 _, _  r0 S, a2 g8 R6 X$ i  L6 _( K8 n6 {' `: e
firewall-cmd --add-service=nfs --permanent --zone=public
6 |; J9 M2 ]; M+ A. efirewall-cmd --add-service=mountd --permanent --zone=public
6 d# }( U3 j, r' m% pfirewall-cmd --add-service=rpc-bind --permanent --zone=public
& \$ A  X- Z- Q1 nfirewall-cmd --reload
1 ]& f0 ^* y& r1.6 配置 NFS⚓︎
9 u5 ^* t2 Q. d( b
8 [, c' r3 H0 v& Kmkdir /data
8 c0 K6 f0 Z: C/ Pchmod 755 -R /data
" P9 m8 K% z3 q, @9 [5 Z( [% V
* h4 N  G3 |* Q1 c: [8 W, Mvi /etc/exports& ]! D& Z/ x7 ?) ^
8 Y6 n! c3 j9 x* M# z' J
# 设置 NFS 访问权限, /data 是刚才创建的将被共享的目录, 192.168.10.* 表示整个 192.168.10.* 的资产都有括号里面的权限
+ v& M$ }& g6 n& m/ L# 也可以写具体的授权对象 /data 192.168.10.30(rw,sync,no_root_squash) 192.168.10.31(rw,sync,no_root_squash)
5 t, Q) X9 r! I, Z' f6 u+ y; W2 ~$ A4 I' ?" c/ d
/data 192.168.10.*(rw,sync,all_squash,anonuid=0,anongid=0)+ n  \) J0 Y% [0 Q6 M  O* {
7 J( X8 a* D! F2 K: O2 o* N
5 j0 L5 n1 r; U, g
1.7 让 exports 配置生效⚓︎! M8 L# s" L( s$ O5 I5 Y1 g0 y
' U( R7 Q# B$ B5 ~3 D+ s% M0 q# D
exportfs -a
# W1 S& U" f; o+ f! F9 i

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:03 | 显示全部楼层
部署 MySQL 服务⚓︎
1 k- }& p+ l, D+ T- u  E1 准备工作⚓︎9 G! H1 h5 C. `, v/ w7 B
1.1 环境信息⚓︎
7 Y2 {7 l. I. a' uMySQL 服务器信息如下:; H& j9 R( g2 h9 S0 F, D& c) i

- |* p9 M; h+ f# ^192.168.10.11  b6 G4 F1 _9 ?) e
1.2 设置 Repo⚓︎
- V6 S+ |, Q( s& Y  a. W% o- |4 q2 Z: _7 h$ j- S
yum -y localinstall http://mirrors.ustc.edu.cn/mysql ... ity-release-el7.rpm
$ E" G: ~) d" {" _  _" r; p2 安装配置 MySQL⚓︎& S9 W! ^& s9 e: \
2.1 Yum 方式安装 MySQL⚓︎4 M4 u8 r1 C6 `5 e6 Z& y9 I0 V
7 ~1 Y4 u* p# @/ V) a! D5 t
yum install -y mysql-community-server5 D1 _' K+ |( z; P% p
2.1 配置 MySQL⚓︎: G, Y" N) h& @! N
- x" A% f" [: H8 x* s; f
if [ ! "$(cat /usr/bin/mysqld_systemd | grep -v ^\# | grep initialize-insecure )" ]; then* F% |  Y# k% w. R- u$ Y
    sed -i "s@--initialize @--initialize-insecure @g" /usr/bin/mysqld_systemd6 b* k) q- Y$ H0 X! ?
fi& U! F3 Q# h* y
2.2 启动 MySQL⚓︎( o* d" j) i- v0 k! f
4 G" p; i1 f1 `8 z4 E1 r& m
systemctl enable mysqld) Y+ F& }! P1 U# x! b! ^
systemctl start mysqld% H! ?# s0 P5 u' ~3 N
2.3 配置数据库授权⚓︎# s& F/ A  f& m; V/ S: e+ b

- l5 r: C6 Y) O' p* Z* a$ Smysql -uroot$ T# W+ d- _+ c

6 `! T* ~2 d" o2 H+ Q$ P* SWelcome to the MySQL monitor.  Commands end with ; or \g.
$ V8 M& w* F$ A+ |) z" o/ {Your MySQL connection id is 2& m( M. f% `. U. D+ ]( _# j
Server version: 5.7.32 MySQL Community Server (GPL)0 R* l) u8 \+ u9 h' k( q

, O' F+ E" G, a( E% N4 f1 f- uCopyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
, y! w' U8 u# v, Q/ q  t+ j* O+ A
/ h) p& N( r. L0 T2 XOracle is a registered trademark of Oracle Corporation and/or its
! z3 \8 P+ |$ u5 T* k+ d  r5 I4 K# Maffiliates. Other names may be trademarks of their respective% T8 B8 J2 e3 L
owners.! r; u2 ^9 n/ a& i# X3 ~

  ^; x( w/ H; z. j3 FType 'help;' or '\h' for help. Type '\c' to clear the current input statement.6 w% H5 H7 S' `

+ |2 i$ O: Y6 @2 Omysql> create database jumpserver default charset 'utf8';# G+ D" a8 Y+ F: P
Query OK, 1 row affected (0.00 sec)
1 p$ ^6 t: m9 m' {2 C0 z- p% e
" D3 Y* Q; N$ @2 jmysql> set global validate_password_policy=LOW;. S. J4 s6 _) e9 J  ~! H4 H
Query OK, 0 rows affected (0.00 sec)" k  {+ q- `1 A0 [' V

  C9 n9 g* R1 r) e; k( nmysql> create user 'jumpserver'@'%' identified by 'KXOeyNgDeTdpeu9q';
0 ~( z; H9 D& H4 G0 u# N, M, AQuery OK, 0 rows affected (0.00 sec): [" e1 S" P. e8 Z6 ~

* J; r3 i& u! d$ j# U; lmysql> grant all on jumpserver.* to 'jumpserver'@'%';& g2 ]7 a1 f" K" ?8 ?
Query OK, 0 rows affected, 1 warning (0.00 sec)
0 k1 K; @6 l2 h( w6 j( u6 P" `0 x
+ ]5 a1 [. W$ e2 V, U4 G" cmysql> flush privileges;
8 s; D; [7 I/ O8 xQuery OK, 0 rows affected (0.00 sec)
8 ~: x( W  D# t, x( B% N, I% A# C* ]1 e" q; L; i1 o
mysql> exit& t) r- e+ @' }# D
Bye7 \! I& M6 P- @9 B: q' X
3 配置防火墙⚓︎8 P* Q  O( d: U% D+ H
6 o8 _3 S8 H* c- X
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" port protocol="tcp" port="3306" accept"
) M* s$ O. N3 ]" C2 b' lfirewall-cmd --reload* c9 ~! s( a& |( H/ H, a

& h7 C. M6 _+ m$ u, a

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:04 | 显示全部楼层
部署 Redis 服务⚓︎5 `6 l7 s5 G$ h8 k
1 准备工作⚓︎* O& U' T" i4 N9 d6 m
1.1 环境信息⚓︎0 ^# w( Y$ b% c9 B: Y
Redis 服务器信息如下:
. P* R8 J# P6 s
/ j  M. U7 |  l192.168.10.11
7 V, d! O4 w; S% A- y- x1.2 设置 Repo⚓︎8 U7 S" Y: h1 W" D7 r" b
( y) G  e8 W( u- I! v" C$ J! ^5 Z
yum -y install epel-release https://repo.ius.io/ius-release-el7.rpm: q: R: b. E6 B+ d- d
2 安装配置 Redis⚓︎' Z. r3 g, i% l$ v; z& O6 A
2.1 Yum 方式安装 Redis⚓︎2 N7 f" @/ v: F, e4 ^) G

0 V' r3 `0 b# l7 x4 \7 Ayum install -y redis6: e* i0 S1 @' J' C' T
2.2 配置 Redis⚓︎
+ y, N$ x( M' F/ m5 c8 b/ L$ F* @0 X2 I$ A( r. T& W: H: M
sed -i "s/bind 127.0.0.1/bind 0.0.0.0/g" /etc/redis.conf
9 r' ^$ Y2 w+ h0 S* ised -i "561i maxmemory-policy allkeys-lru" /etc/redis.conf9 \/ V: P3 Q$ S% m; ?& g
sed -i "481i requirepass KXOeyNgDeTdpeu9q" /etc/redis.conf
5 H8 s5 o$ W, x5 s# \/ k9 d2.3 启动 Redis⚓︎' s1 I+ a. ]& W( d" L& e& [& w
/ \+ y) t$ A; }7 H
systemctl enable redis5 z& q8 e+ @7 I3 W% Z; w, G
systemctl start redis' E; }: i3 a) K) Z( r) e: n* A
3 配置防火墙⚓︎$ }1 p; ]7 f" H, E) j/ R( K9 m
2 {7 B/ O# p9 ~" M$ b. r
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" port protocol="tcp" port="6379" accept"
: ?3 t% [. k+ c" l# ~8 Rfirewall-cmd --reload

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:05 | 显示全部楼层
部署 JumpServer 01 节点⚓︎
* b- \: C4 a. }3 ^, ~1 准备工作⚓︎# [6 O$ L( c& v, M7 l$ q
1.1 环境信息⚓︎1 ^% k9 C* F( Q8 w
JumpServer_Node_01 服务器信息如下:5 X! L; c2 {2 N' \

' I$ y- R; L% l, {3 I% b' V/ l9 C7 S192.168.10.218 Q* y, @. h# a5 p% d, Y. M
2 配置 NFS⚓︎3 ?+ X7 T3 v( e
2.1 安装 NFS 依赖包⚓︎. B2 m+ k! Z( g& a2 v, n9 \

- J5 X1 X6 V6 i! Oyum -y install nfs-utils
- Q8 R9 |; X$ A8 _+ [; X. _showmount -e 192.168.10.118 U/ H0 M0 @+ k9 P6 z. Q
2.2 挂载 NFS 目录⚓︎3 \, z( Q5 v8 X/ ~3 L" ]1 q3 m8 ~: d

. ?- u' c; I7 e7 r# 将 Core 持久化目录挂载到 NFS, 默认 /opt/jumpserver/core/data, 请根据实际情况修改
8 u1 G5 |$ a; P9 p, N  S. A( f* j# JumpServer 持久化目录定义相关参数为 VOLUME_DIR, 在安装 JumpServer 过程中会提示
+ u# P) h$ F) T8 cmkdir /opt/jumpserver/core/data
0 e6 u- v/ K6 `- k& p/ U! L# Umount -t nfs 192.168.10.11:/data /opt/jumpserver/core/data
$ E: n& Z7 Z3 L) M$ O3 u, }2.3 配置 NFS 共享目录开机自动挂载⚓︎  _! y& g/ i; r( I3 K  d7 t4 Y
+ ^+ W- x3 |' d  S
# 可以写入到 /etc/fstab, 重启自动挂载. 注意: 设置后如果 nfs 损坏或者无法连接该服务器将无法启动
) ^9 L/ M5 a" @1 Mecho "192.168.10.11:/data /opt/jumpserver/core/data nfs defaults 0 0" >> /etc/fstab
' }# `1 @, i) i9 {$ y5 R3 安装 JumpServer⚓︎1 |1 l; x3 p# b# x& |
3.1 下载 jumpserver-install 软件包⚓︎5 |. o8 e/ K8 U. ]7 \1 [

" t# F* a9 U! ycd /opt  ^3 c2 \) O( b6 Z0 y
yum -y install wget
/ {; ], J. _$ k- z7 l5 v+ L1 hwget https://github.com/jumpserver/in ... aller-v3.0.3.tar.gz5 E# m' d' ?! h7 T: T4 U
tar -xf jumpserver-installer-v3.0.3.tar.gz
. b+ \- z* O0 s3 ?cd jumpserver-installer-v3.0.34 w5 u8 S4 P0 x! m& }* O- Z
3.2 修改临时配置文件⚓︎
- C! S  R" H9 M' t% q: b) r* z1 T2 g
: J( ?# [0 w8 `7 @, \vi config-example.txt
0 a  `2 g# {6 q3 W- W: _0 C$ {
$ L$ S: e: {3 e1 i7 l$ t  R# 修改下面选项, 其他保持默认, 请勿直接复制此处内容1 I" z1 J- m) Y. |
### 注意: SECRET_KEY 和要其他 JumpServer 服务器一致, 加密的数据将无法解密
# B( Q: M1 u, h* Y' L- F) [; j# H2 u/ T1 G+ }! C
# 安装配置
, x& k5 P# b$ U) |2 d' Z### 注意持久化目录 VOLUME_DIR, 如果上面 NFS 挂载其他目录, 此处也要修改. 如: NFS 挂载到 /data/jumpserver/core/data, 则 VOLUME_DIR=/data/jumpserver8 R  q! {5 a( b1 a3 }5 q
VOLUME_DIR=/opt/jumpserver8 G/ b9 {6 x: f, B

7 [8 `- F5 u* x
0 Z! o% i7 A7 T" m# w) k5 T5 ]# Core 配置) u( z& X) V9 Q9 R
### 启动后不能再修改,否则密码等等信息无法解密, 请勿直接复制下面的字符串3 o( N1 e' s6 O' i" e( Z6 V. b" H
SECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW    # 要其他 JumpServer 服务器一致 (*). v0 n/ J8 G9 r3 l2 s. S5 u
BOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q                                 # 要其他 JumpServer 服务器一致 (*)$ v& E8 k/ a# @% _  D; D
LOG_LEVEL=ERROR                                                  # 日志等级8 f1 Y& @% t+ k# u0 S
# SESSION_COOKIE_AGE=86400
  C; l$ f3 ]6 w- bSESSION_EXPIRE_AT_BROWSER_CLOSE=True                             # 关闭浏览器 session 过期
" T: G$ q& Y& Z5 v% M  f3 ^( }! G- U: p: Q. |9 c3 y" l
# MySQL 配置) a/ A; e3 x8 x# |& b  l
$ r8 N4 W) X  k. s
DB_HOST=192.168.10.11
* I8 Q# ]+ {' Z' G2 r: R# IDB_PORT=33062 U6 ~6 Q5 q! l0 `" B) m  S* \7 u
DB_USER=jumpserver
/ [( s( O) G7 h' QDB_PASSWORD=KXOeyNgDeTdpeu9q0 w7 k1 C/ I* x8 O  y  [
DB_NAME=jumpserver' k6 A8 \# l% X7 M# x
( [) s: V! s7 A* c  x! t
# Redis 配置7 M+ I' ?* z+ p, U- Y- _0 o

( J2 P! ~- s7 Z; V: `( y* s2 XREDIS_HOST=192.168.10.112 [+ Y3 n* v7 f+ b8 S
REDIS_PORT=6379
1 T' U* t3 E, z# [& I* I) nREDIS_PASSWORD=KXOeyNgDeTdpeu9q8 t# g. M/ r: C! I' o

$ Q/ j+ L! h: w' Q5 }1 l# KoKo Lion 配置6 k6 m5 u& M7 `, Z
SHARE_ROOM_TYPE=redis                                            # KoKo Lion 使用 redis 共享& g9 X# @. b3 `; \/ N
REUSE_CONNECTION=False                                           # Koko 禁用连接复用  A% T9 f) r+ ?4 S3 }
3.3 执行脚本安装 JumpServer 服务⚓︎
1 F7 Z7 [5 Q& ~0 ~. `' ~* q+ k
! I% M) A$ ^. M! c% n% U3 b: T3 x./jmsctl.sh install
/ i. m  U, K" d% C, H/ v
% ~  A3 z" X, a, T  Y       ██╗██╗   ██╗███╗   ███╗██████╗ ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗9 C! g1 e5 X+ p$ O' d
       ██║██║   ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗6 f0 e  y2 R/ r8 |* S4 d% Z. q. i
       ██║██║   ██║██╔████╔██║██████╔╝███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝4 o) g5 A; m# B, \3 i
  ██   ██║██║   ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗; ~& U! @" G) b0 {7 F1 [, Q
  ╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║     ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║$ q! l6 X2 K6 e0 A; A" f
   ╚════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝1 T% p& W( f3 m* D7 ?

" q$ m6 V% D$ t7 z5 g                                                                     Version:  v3.0.3! u6 s7 z* [2 R' E& t0 ^) Z% t

' H$ O9 f) f! c: T, E/ L  Q! ]* O4 G1 H! `
1. 检查配置文件
2 F+ ^" M( q7 f: s+ \% ~$ s配置文件位置: /opt/jumpserver/config9 T) j2 L- e! W( b" u7 \
/opt/jumpserver/config/config.txt  [ √ ]9 N: G3 O' L  x% P
/opt/jumpserver/config/nginx/lb_rdp_server.conf  [ √ ]8 _7 h, S  G  ]+ s% r  @* N% N
/opt/jumpserver/config/nginx/lb_ssh_server.conf  [ √ ]
6 p# H2 X+ E% x* H9 S3 x! M1 `6 Y0 G/opt/jumpserver/config/nginx/cert/server.crt  [ √ ]# T  l$ V6 }7 u0 f  }, I
/opt/jumpserver/config/nginx/cert/server.key  [ √ ]9 L" ?/ y2 Y5 h6 s9 X8 }; c
完成2 B# w6 J' `3 W7 {' ?; v) \
2 D1 R* r3 i; Y$ p# f1 k0 B
2. 备份配置文件
& t( K$ X, u' y- S+ C# N备份至 /opt/jumpserver/config/backup/config.txt.2021-07-15_22-26-13. N1 \' ^% K% Y4 r& k
完成5 X( J2 p2 j8 D1 \* u/ D) I; Y

7 G* O3 p  v3 l+ b; |& `6 K1 F>>> 安装配置 Docker
% k9 X8 E5 I0 M& F1. 安装 Docker0 p5 d$ K9 ~: s' o  [, w3 d
开始下载 Docker 程序 .... _* r) T: [! Y, N$ `6 u! K7 D
开始下载 Docker Compose 程序 ...
1 E6 o+ ~. _7 f) l完成2 \' `7 |% D& l/ w3 h
1 B4 h+ t  L. p
2. 配置 Docker
2 X' d+ P3 `) K) b- y是否需要自定义 docker 存储目录, 默认将使用目录 /var/lib/docker? (y/n)  (默认为 n): n
6 B8 |7 S$ {3 {, O/ e/ \: @完成
# i* p, x5 i6 W+ h- f/ @6 V$ H& C) V3 R+ S
3. 启动 Docker) ^  n5 m7 z* e9 _( C3 ?/ _
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /etc/systemd/system/docker.service.
- y9 v' X( m6 g5 g# ^9 x( J完成6 e: X) f3 |" \# u

; c/ @; |9 N. C/ ^5 G>>> 加载 Docker 镜像
* Z8 E9 x. @+ }# L% a& |Docker: Pulling from jumpserver/core:v3.0.3         [ OK ]/ t" U  z8 a+ d' b. q
Docker: Pulling from jumpserver/koko:v3.0.3         [ OK ]) Z! X/ a7 [9 c" g/ e' Y" Z
Docker: Pulling from jumpserver/web:v3.0.3      [ OK ]1 E1 G9 N7 a1 ^7 w
Docker: Pulling from jumpserver/redis:6-alpine      [ OK ]! T  ^5 \5 B. j0 o3 _! j! ~; a" ^
Docker: Pulling from jumpserver/mysql:5             [ OK ]* c( D+ b( U; u
Docker: Pulling from jumpserver/lion:v3.0.3         [ OK ]; w) G* Z1 X$ F2 X& m
7 u) M8 Q" |3 J' V, T
>>> 安装配置 JumpServer$ n; {! K# l/ H6 F
1. 配置网络
4 V0 l* i6 q/ w. A2 M/ X是否需要支持 IPv6? (y/n)  (默认为 n): n8 H$ ?( a+ l- W+ r
完成
" {! j  L1 H4 d3 n$ o
! I9 S+ e" M7 S2. 配置加密密钥
' y/ d3 [/ C% f" bSECRETE_KEY:     YTE2YTVkMTMtMGE3MS00YzI5LWFlOWEtMTc2OWJlMmIyMDE2
% h4 K3 t6 X5 d4 BBOOTSTRAP_TOKEN: YTE2YTVkMTMtMGE3
- x( H, P7 Q0 ]: C& k完成
6 U- w/ R  v" J8 i3 E( }  a* p! \0 L1 l9 T4 K9 t
3. 配置持久化目录
$ O: {' }$ ~* Q5 x/ T3 W/ g是否需要自定义持久化存储, 默认将使用目录 /opt/jumpserver? (y/n)  (默认为 n): n+ z+ x: R! r1 z: q  F8 J
完成
) e' y9 o' }, c
, C, T5 O* o" q4. 配置 MySQL
4 {( m" b# V/ r) `; Y是否使用外部 MySQL? (y/n)  (默认为 n): y
! D( i: t: {3 J# M) ?; @9 n/ E& X请输入 MySQL 的主机地址 (无默认值): 192.168.10.11" J! A, b9 }* Y$ h) [# k
请输入 MySQL 的端口 (默认为3306): 3306, @3 Q! r! z4 z+ p& {( Z( f$ u  I
请输入 MySQL 的数据库(事先做好授权) (默认为jumpserver): jumpserver- G, Z1 A# ^* y2 p
请输入 MySQL 的用户名 (无默认值): jumpserver6 G% d( @7 j6 O& j& y2 V
请输入 MySQL 的密码 (无默认值): KXOeyNgDeTdpeu9q; m1 L  \* U( ~% X3 t
完成7 I8 Z3 S8 D7 u5 q- O* O- z
$ y# P2 U# p0 M' G" T% G
5. 配置 Redis
, \: Z9 W, @* r# H是否使用外部 Redis? (y/n)  (默认为 n): y" P0 S5 W/ a6 G  X" M
请输入 Redis 的主机地址 (无默认值): 192.168.10.11" K& X% P& ^# \! j
请输入 Redis 的端口 (默认为6379): 6379
: ^1 ~. z+ B! V, K: v* x4 N% D请输入 Redis 的密码 (无默认值): KXOeyNgDeTdpeu9q
1 c+ Y4 {' o* y完成
' S5 h. h/ m5 ^( G
' @% @& g# [3 P6 [4 H" d7 n- I$ ]6. 配置对外端口: i' Y0 F. U0 K3 P/ t' `/ ]
是否需要配置 JumpServer 对外访问端口? (y/n)  (默认为 n): n
" q9 P/ S/ U: d! I" y( }' c. I完成
: \  N" Y& P2 i; X- O# {. e/ E! T4 ]$ V/ F; _: M. g7 ~* C; d
7. 初始化数据库
( `9 q# A4 U& W- p& C5 eCreating network "jms_net" with driver "bridge"
/ T7 |! e3 ]; TCreating jms_redis ... done
3 a7 t& F4 y4 X2021-07-15 22:39:52 Collect static files
4 f& {: {& X& W2 x4 ~6 j& t2021-07-15 22:39:52 Collect static files done
0 _: I( f; u' v4 T5 Z* l" a2 \2021-07-15 22:39:52 Check database structure change ...1 J" I* l! f+ r  [. q$ Q  k' W
2021-07-15 22:39:52 Migrate model change to database ...% ^. \1 t7 J9 V) p. ?: p; d! s
% T  i7 }. }' b
475 static files copied to '/opt/jumpserver/data/static'.
$ J9 R% y2 z' i9 k& TOperations to perform:
$ P; j: r0 D2 B$ I  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
0 A6 |* K' _, B4 \3 l; ^2 tRunning migrations:
: P4 t+ z1 M- z9 A. F; {$ \1 @8 p  Applying contenttypes.0001_initial... OK& z1 j; j; O; b% d) `: {
  Applying contenttypes.0002_remove_content_type_name... OK
" }( x3 }% H- o+ Q; i: M: k+ S  Applying auth.0001_initial... OK- P- [2 D5 h9 |, h0 ]
  Applying auth.0002_alter_permission_name_max_length... OK$ b* o$ `, e+ `6 W& X" _% Y7 n# ^
  Applying auth.0003_alter_user_email_max_length... OK* J9 P' }6 J' z
  Applying auth.0004_alter_user_username_opts... OK
! L# M9 z4 Y9 ^/ W' J3 A7 L7 Z  Applying auth.0005_alter_user_last_login_null... OK
1 D4 U0 \+ C6 g4 @. r  Applying auth.0006_require_contenttypes_0002... OK
1 \3 I' @! L, p5 i4 G; {% b7 |$ g  Applying auth.0007_alter_validators_add_error_messages... OK  f4 U/ `% M. ~  j8 I( {3 o: \
  Applying auth.0008_alter_user_username_max_length... OK
" M  n2 r. e% R. l4 U" J  ...& J* E9 c: i9 w1 K8 W, H( V- z
  Applying sessions.0001_initial... OK
# ?! P! U5 W! W9 k1 ^1 B' N  Applying terminal.0032_auto_20210302_1853... OK
: l# w* }+ Z1 J  Applying terminal.0033_auto_20210324_1008... OK. M8 k& `+ }3 A
  Applying terminal.0034_auto_20210406_1434... OK! P+ ^. U# ^" W+ W/ @2 U8 P: w! ^4 r% `
  Applying terminal.0035_auto_20210517_1448... OK
" l7 Y* F: z& Y- V. E: q5 S* q  Applying terminal.0036_auto_20210604_1124... OK  O3 A! S) ?& R& K7 N
  Applying terminal.0037_auto_20210623_1748... OK9 |1 q9 d, F: h4 j5 k
  Applying tickets.0008_auto_20210311_1113... OK
: F: A& E: o, b$ `* H& T  Applying tickets.0009_auto_20210426_1720... OK) b! N) h* l' M% p; V9 @, G& j+ y

* |9 u, m& T9 G7 q3 N, Y>>> 安装完成了( o# A4 h- v: l$ A1 }' r: J, W1 D
1. 可以使用如下命令启动, 然后访问/ s' n# t% ]  I
cd /root/jumpserver-installer-v3.0.3$ ?" u& c0 k0 J
./jmsctl.sh start
8 ]/ T, j* F3 C! z
& a* j# {5 s4 w2. 其它一些管理命令* X. n( @2 g/ I2 |8 `3 l
./jmsctl.sh stop. [5 f- ^6 W0 s
./jmsctl.sh restart9 J5 I6 }, x" {( x: o6 b& E
./jmsctl.sh backup- r$ f6 I2 B" i1 r0 D5 i5 U+ S$ k
./jmsctl.sh upgrade; W' i% B0 w: t5 _3 J6 j+ q
更多还有一些命令, 你可以 ./jmsctl.sh --help 来了解
, S; H3 o& \0 O" g+ [' P( S
+ R/ D! F) w, O% U3. Web 访问
1 j+ ^( i2 \1 d& h5 D3 `http://192.168.10.212:80
% D) v! {0 T1 Y; X  d( t默认用户: admin  默认密码: admin
& M5 v& t- i' @. U* I/ U/ F
& w9 Y6 v7 \. J3 H$ B# {4. SSH/SFTP 访问/ e; L) t( y  @- B3 s
ssh -p2222 admin@192.168.10.212+ |+ ?% A+ c5 ?7 ~$ f
sftp -P2222 admin@192.168.10.212
9 R4 B2 e9 U! t5 `3 j
- x3 P  P! A4 x  W6 h7 g5. 更多信息
% ?- v- ~- C7 Y- e我们的官网: https://www.jumpserver.org/' g% ^; l# L5 v% K! E
我们的文档: https://docs.jumpserver.org/4 k, W& e9 w. C, p$ L' O3 F
3.4 启动 JumpServer 服务⚓︎- D9 o  |0 f- j( c1 r
0 A( {2 `3 X6 R1 O, w7 y: r
./jmsctl.sh start( b0 L% G" T$ E0 r4 y* H" o+ D
  J+ l" \$ {6 I/ G) u1 R
Creating network "jms_net" with driver "bridge"! Z" ^5 C; V7 m3 o/ ^+ t
Creating jms_core      ... done' L9 Y2 f* w7 }, r1 a, S
Creating jms_celery    ... done) T9 y3 N. v7 E' J$ r. f  }( I( @8 g
Creating jms_lion      ... done+ B  G* X5 \! {8 x$ D- ^
Creating jms_koko      ... done* t2 K5 W9 I6 ^8 m2 L. W
Creating jms_magnus    ... done
) v8 R  x$ J7 p( p3 b0 _7 f6 VCreating jms_web       ... done8 ?" ?5 k1 U' R
2 m: f3 [1 j9 J9 J

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:06 | 显示全部楼层
部署 JumpServer 02 节点⚓︎! A9 b3 y+ ]# b# S
1 准备工作⚓︎5 A& }" d, s2 x( a; P
1.1 环境信息⚓︎
$ F" g. A) t" Y* y6 xJumpServer_Node_02 服务器信息如下:
9 I2 }' b' i* s( r, l; b7 Q- |  H7 v( K& t0 j4 o  i
192.168.10.22  M& x4 h2 H7 r! s
2 配置 NFS⚓︎
/ a9 X+ E* \9 e) F. v  D' Q6 r+ N; l2.1 安装 NFS 依赖包⚓︎  L; g4 q5 b4 v7 G6 t4 a

$ @) G" d: m' i8 S4 R. J0 zyum -y install nfs-utils2 F* l, B  e/ Q$ o/ [2 \' t% l
showmount -e 192.168.10.11
; o4 z; `9 L. v; ~3 l& r# m2.2 挂载 NFS 目录⚓︎3 |. s3 X' }) g4 p
) T  `: Z; B8 i$ `$ g$ h- X
# 将 Core 持久化目录挂载到 NFS, 默认 /opt/jumpserver/core/data, 请根据实际情况修改
* R1 x* ]+ Q5 z& \% c2 d# JumpServer 持久化目录定义相关参数为 VOLUME_DIR, 在安装 JumpServer 过程中会提示
# Q, {, L1 X5 d' tmkdir /opt/jumpserver/core/data: z2 f* c1 Y1 f& o# E
mount -t nfs 192.168.10.11:/data /opt/jumpserver/core/data7 A; a& T- {. z; j8 }0 b. q; h8 Z
2.3 配置 NFS 共享目录开机自动挂载⚓︎1 g) t3 s$ x: w* E! Q- O

9 H5 i9 z  }- h% K+ I# 可以写入到 /etc/fstab, 重启自动挂载. 注意: 设置后如果 nfs 损坏或者无法连接该服务器将无法启动! u: G0 l! s  w& @6 L; i
echo "192.168.10.11:/data /opt/jumpserver/core/data nfs defaults 0 0" >> /etc/fstab& m6 ~$ J+ H& O2 d- j: _
3 安装 JumpServer⚓︎7 a% W% @% y( s; b! U
3.1 下载 jumpserver-install 软件包⚓︎
4 D# w, o8 E$ ~. ~" s# ?+ J) S; Q
cd /opt
9 E( k  E- [& Q$ X" n* u  p' ]yum -y install wget
" I( {, ]5 j1 o- z5 G2 d$ X9 c' cwget https://github.com/jumpserver/in ... aller-v3.0.3.tar.gz
* {9 l' q/ y) p7 N* [; L; etar -xf jumpserver-installer-v3.0.3.tar.gz. g& |+ S+ m! h9 j  v
cd jumpserver-installer-v3.0.3
$ i/ [& K0 @3 [  D6 u! b/ S9 c3.2 修改临时配置文件⚓︎4 n/ @, x! p- L  M% d
5 p1 D0 D6 }3 `8 m- n
vi config-example.txt
$ ^! R7 E7 K4 V$ |) z! k) l3 a! U7 K) ^8 Y
# 修改下面选项, 其他保持默认, 请勿直接复制此处内容0 I/ {+ K, K! w" f- W3 a& q
### 注意: SECRET_KEY 和要其他 JumpServer 服务器一致, 加密的数据将无法解密
% Z- K- x- Z2 ^2 T/ j& a4 n; `1 e4 ?' v7 w) Z3 G
# 安装配置0 Q/ U3 c2 w& f
### 注意持久化目录 VOLUME_DIR, 如果上面 NFS 挂载其他目录, 此处也要修改. 如: NFS 挂载到 /data/jumpserver/core/data, 则 VOLUME_DIR=/data/jumpserver' P; y0 Q6 \# l! A- o; h  V
VOLUME_DIR=/opt/jumpserver1 w, p% L) e$ F1 ]+ E

( |! G  r; e0 }- A/ ~0 \  z4 m
8 n4 m  ]- Z7 j% v9 ]7 _# Core 配置
8 {8 O% @* k6 ?  q  N### 启动后不能再修改,否则密码等等信息无法解密, 请勿直接复制下面的字符串6 T7 @& s- i# h$ ~, Z% E7 I4 S
SECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW    # 要其他 JumpServer 服务器一致 (*)
" A' g9 L( c9 W5 `$ R) NBOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q                                 # 要其他 JumpServer 服务器一致 (*). m( j) E, q; r6 ^. r4 ?& S
LOG_LEVEL=ERROR                                                  # 日志等级
  r& n! _. F. P; J- v- I" K4 u0 l+ a& w# SESSION_COOKIE_AGE=86400
. F/ P2 H# h% {' {: O2 `& F- QSESSION_EXPIRE_AT_BROWSER_CLOSE=True                             # 关闭浏览器 session 过期* Y# ]; y2 L4 ~" V- y
9 W* h! x( c, f0 D1 T6 @2 z
# MySQL 配置
/ N0 r5 |! W' }7 U3 m2 |1 @4 M  P+ ^/ C5 P4 i2 K
DB_HOST=192.168.10.11
. l8 p9 {( ]& B' ~& KDB_PORT=3306
. i7 w+ C: E3 s9 A$ r0 x; ~% FDB_USER=jumpserver9 E( M0 n, n( P: P! K% {* K3 m8 W' Y
DB_PASSWORD=KXOeyNgDeTdpeu9q
2 e9 t( f" t; p9 u. E+ RDB_NAME=jumpserver
! \# t4 u: W- `6 x$ n5 v" S' r/ W
  \) e- Z/ G) k1 y# Redis 配置) C7 j/ D$ v, u6 U! |# w
) \% d) E$ O. J) X9 \
REDIS_HOST=192.168.10.11
" R( \. e- E  a& ~& Y  k9 g. H4 LREDIS_PORT=6379
: G( W% k7 @3 U( o% B/ PREDIS_PASSWORD=KXOeyNgDeTdpeu9q) C) T5 A5 T; [; a5 Q$ ]4 @* b2 [

3 e+ a9 l. O1 ?% `9 d# KoKo Lion 配置4 V$ m7 y) H: b3 w, ^. E7 U* K
SHARE_ROOM_TYPE=redis                                            # KoKo Lion 使用 redis 共享
; J. {/ J' C: a4 \( Y1 Z$ @4 q& _REUSE_CONNECTION=False                                           # Koko 禁用连接复用
& I5 w3 L0 u3 H$ }( K3.3 执行脚本安装 JumpServer 服务⚓︎- Y1 a' ]- u! o! ~/ b) Y# B
* t5 V) a  Q" G
./jmsctl.sh install
4 W0 O+ ]% ]" c! p& W; D3.4 启动 JumpServer 服务⚓︎1 x. T! N  j8 g% o3 h3 s$ T
# r9 A9 }/ c: \) N8 S5 \
./jmsctl.sh start
) B* Y7 o% m# U- ^9 d  w
/ K! m$ y1 E$ I; u- g& _Creating network "jms_net" with driver "bridge"5 t% `; t5 T5 J. K9 _* c
Creating jms_core      ... done
- _$ e- ~+ S9 S/ y; Z! SCreating jms_celery    ... done* P7 ?  f5 u* R; ]
Creating jms_lion      ... done0 F+ e9 w- j# z. T* e; |2 z
Creating jms_koko      ... done
/ _; F6 Q* E) ]6 y; N! }Creating jms_magnus    ... done! O- ~% D+ i+ s! V. W
Creating jms_web       ... done
2 K9 `% h1 X7 e8 c0 X
8 C) i; @! F( Z* r

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:07 | 显示全部楼层
部署 JumpServer 03 节点⚓︎
# n+ z4 l; m8 @1 A$ I0 N1 准备工作⚓︎
/ v* J2 v7 A' L! L$ |1.1 环境信息⚓︎
7 _. f9 W) g7 G- m) x# i1 g3 x& YJumpServer_Node_03 服务器信息如下:. s2 c* j0 x( a7 C5 S* z8 a
, V  @4 g/ T. c
192.168.10.23
6 F: \1 z! u: r" G2 配置 NFS⚓︎
5 z  Z0 g: d8 ?2.1 安装 NFS 依赖包⚓︎- I' C' K. @' r! _

: @# v% x- [6 N7 \; {7 {. }" ryum -y install nfs-utils! m* e1 G, l4 w
showmount -e 192.168.10.11
" q8 k# V7 t4 `3 w2.2 挂载 NFS 目录⚓︎5 ?/ c/ F, Z2 d  F( j. b
( b: V& \$ n( x& G! f( `
# 将 Core 持久化目录挂载到 NFS, 默认 /opt/jumpserver/core/data, 请根据实际情况修改
; o) W* @0 m  {. b8 y$ k- }% l# JumpServer 持久化目录定义相关参数为 VOLUME_DIR, 在安装 JumpServer 过程中会提示
: G, y& B. d  J9 a' s3 g2 U: Lmkdir /opt/jumpserver/core/data: T3 ]- O  L' p! y& f
mount -t nfs 192.168.10.11:/data /opt/jumpserver/core/data
: ]+ I$ z8 Q. h/ R2.3 配置 NFS 共享目录开机自动挂载⚓︎
, x2 ^& q% i3 C5 B4 C8 M9 I- i# T, I
- Z7 X: s. y: r! a) c8 c: |  p/ G# 可以写入到 /etc/fstab, 重启自动挂载. 注意: 设置后如果 nfs 损坏或者无法连接该服务器将无法启动
% a( ^: b- a; ]" Z, z+ Secho "192.168.10.11:/data /opt/jumpserver/core/data nfs defaults 0 0" >> /etc/fstab1 A2 E/ H( ~9 c/ |" ^5 ]3 U( t
3 安装 JumpServer⚓︎
+ T; t/ l" Z! P1 m8 G3.1 下载 jumpserver-install 软件包⚓︎( G4 Q' N. I4 y" B  r5 }+ u: {/ N
+ F0 @9 i0 b/ Y0 a
cd /opt3 ^$ ^, g/ R1 f. Z: N" Z
yum -y install wget
* a% A6 f, q1 l6 cwget https://github.com/jumpserver/in ... aller-v3.0.3.tar.gz
/ \; q; L* c' W" \& ^tar -xf jumpserver-installer-v3.0.3.tar.gz
1 L' Q* W6 h3 p# s  fcd jumpserver-installer-v3.0.3+ D4 s- E  R' c" H+ |! Y5 e7 h
3.2 修改临时配置文件⚓︎5 j0 F4 L/ ]% J2 r4 a& g
& m  q; Q; g( e5 I9 c# F
vi config-example.txt
$ T' t- o9 Y$ _8 o
" [5 _4 e# G2 R# 修改下面选项, 其他保持默认, 请勿直接复制此处内容
7 z0 ?( f3 |) y5 `+ \6 {% Z: ]### 注意: SECRET_KEY 和要其他 JumpServer 服务器一致, 加密的数据将无法解密
: k6 f; d+ w$ ?, D$ O4 t( `  M0 x5 X, S9 U* n! j6 I* I8 x
# 安装配置# ~( j/ j- c$ i
### 注意持久化目录 VOLUME_DIR, 如果上面 NFS 挂载其他目录, 此处也要修改. 如: NFS 挂载到 /data/jumpserver/core/data, 则 VOLUME_DIR=/data/jumpserver/ n0 {" q) w3 H+ t
VOLUME_DIR=/opt/jumpserver
# N3 [. K+ W& ^& ~; W' ?4 B" I2 D6 D: c- c# r, d
% V# z) u8 u  W5 G2 b  [7 E
# Core 配置- B, C/ h. M# P2 C! B$ i6 }* w: @
### 启动后不能再修改,否则密码等等信息无法解密, 请勿直接复制下面的字符串4 G% J5 u; n  k+ |  K5 Z' X' H
SECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW    # 要其他 JumpServer 服务器一致 (*), V( f/ X$ i: E: u" u* g( O
BOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q                                 # 要其他 JumpServer 服务器一致 (*)# [  z, M' T2 e
LOG_LEVEL=ERROR                                                  # 日志等级
8 h( Q. G8 b* G# SESSION_COOKIE_AGE=86400
6 Z' }% n# g% M$ v! D$ q1 P# SSESSION_EXPIRE_AT_BROWSER_CLOSE=True                             # 关闭浏览器 session 过期
, l2 h, |8 R  q$ p3 F3 U" }" w( j1 R2 Q4 M: L
# MySQL 配置% G( U# S3 K; Z( f
: b/ x4 s0 ~8 ]: W2 {% B5 y$ O
DB_HOST=192.168.10.11
8 n9 Y3 q0 K! W) ]" O2 N6 YDB_PORT=3306* b7 u3 b2 L. u! l% b0 H
DB_USER=jumpserver$ G- Q' n! r0 q# G
DB_PASSWORD=KXOeyNgDeTdpeu9q1 A  b: q1 f: {0 D, O4 }& W6 k7 E8 T
DB_NAME=jumpserver
# A1 ?6 }1 s+ j* ^) r; T% u5 E" j7 N# V# c! [
# Redis 配置
' ?; e  M( N/ q* n
; J0 p, s7 g& E/ L4 h* b5 aREDIS_HOST=192.168.10.11
7 v+ n& O1 M! b  jREDIS_PORT=6379
( o3 _& L* j8 N) Y/ f2 uREDIS_PASSWORD=KXOeyNgDeTdpeu9q
8 h" {3 q0 P1 L4 Q" f2 i! u- q/ x" z( Q" n- l. j
# KoKo Lion 配置3 V5 \" z: S7 ^" W" Z+ C2 o* k
SHARE_ROOM_TYPE=redis                                            # KoKo Lion 使用 redis 共享! z$ r  I1 D) z- v0 n& }
REUSE_CONNECTION=False                                           # Koko 禁用连接复用
+ T( |' [5 K" j- ~* |; C: T: z+ p3.3 执行脚本安装 JumpServer 服务⚓︎9 I( s  \7 A# ?

, ?8 \4 x. C' y: t./jmsctl.sh install
& o5 b0 J) b( R; T4 J) V$ F+ r3.4 启动 JumpServer 服务⚓︎
; Y/ P: L2 q1 w! J/ Y7 d9 T' j8 v8 U" z. A/ |- g
./jmsctl.sh start
( V" E# v5 m3 H6 g
- @2 V) a$ g$ Y: q. D5 Z) NCreating network "jms_net" with driver "bridge": ^0 f* r1 |' A" {
Creating jms_core      ... done" s+ G1 C0 _, z; ]
Creating jms_celery    ... done
- Y% c9 l" F' W( ^8 DCreating jms_lion      ... done% M: _, E& d! Z- y! K
Creating jms_koko      ... done$ l$ e- R! z- q$ ~& P3 o& b
Creating jms_magnus    ... done
0 Z) V; V$ n* |2 xCreating jms_web       ... done
0 J5 P  b5 u8 B) p
( Q2 i+ z- e, r5 t: O/ Y

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:08 | 显示全部楼层
部署 JumpServer 04 节点⚓︎- J. ~% \" ?4 Z/ s
1 准备工作⚓︎
( J. K0 i$ T# f" G3 M* n. j1.1 环境信息⚓︎1 i1 C8 ~# F$ X
JumpServer_Node_04 服务器信息如下:0 x! {: X6 C! i5 @0 ]* I" ^# t
$ `. q, ]- N3 ~" A) ]* i
192.168.10.24* r( [1 E  t* r' p
2 配置 NFS⚓︎$ D+ V, `' ^" Q; ~; X2 x0 W6 k+ `
2.1 安装 NFS 依赖包⚓︎
. n( L$ T4 b2 [# }3 b2 s- K3 ^6 k1 J2 h* ]6 ~
yum -y install nfs-utils
- }8 I* ?* z! X) F) `showmount -e 192.168.10.11
. k0 S6 R8 _4 w! z4 x+ D8 R  M+ L, h2.2 挂载 NFS 目录⚓︎4 A$ X- p/ W2 s1 N

$ p5 n0 N6 y7 e' f# 将 Core 持久化目录挂载到 NFS, 默认 /opt/jumpserver/core/data, 请根据实际情况修改/ i* Q( p2 |2 g' }/ i
# JumpServer 持久化目录定义相关参数为 VOLUME_DIR, 在安装 JumpServer 过程中会提示
! G1 D% K$ b. J! R4 u* Zmkdir /opt/jumpserver/core/data4 F) {) o! \! c) g+ `
mount -t nfs 192.168.10.11:/data /opt/jumpserver/core/data5 H+ t: I5 i2 x& v1 |( k/ K7 y% w; V: w
2.3 配置 NFS 共享目录开机自动挂载⚓︎
8 h0 S  M( Z, D9 A1 {% L: f  z- e
. k! `# i0 n) f6 j# 可以写入到 /etc/fstab, 重启自动挂载. 注意: 设置后如果 nfs 损坏或者无法连接该服务器将无法启动9 t0 f% K( ]/ U
echo "192.168.10.11:/data /opt/jumpserver/core/data nfs defaults 0 0" >> /etc/fstab
2 f/ m9 d% K/ f2 z  r# U3 安装 JumpServer⚓︎6 A" d  y' |& l. w" N; f- K
3.1 下载 jumpserver-install 软件包⚓︎
* S7 o" y( X0 ^* i
& u+ K& ^* v! }4 Ecd /opt- i6 k4 Z" ~2 ^4 }, ?+ a
yum -y install wget0 z; E# X, K$ b
wget https://github.com/jumpserver/in ... aller-v3.0.3.tar.gz
# W$ g7 j  z$ N5 Ztar -xf jumpserver-installer-v3.0.3.tar.gz
9 }7 o' }1 \3 I- [* F) ^cd jumpserver-installer-v3.0.3
+ Z$ w1 V8 w4 ~0 ^3.2 修改临时配置文件⚓︎
- q, z( ?1 {) s, I5 f; b: x, Q6 u
vi config-example.txt& ?9 I1 i( P9 Y* r

" J! X0 p0 L& ?$ ?6 ~# w# 修改下面选项, 其他保持默认, 请勿直接复制此处内容
6 W4 c  d( W1 ?" W. L1 M### 注意: SECRET_KEY 和要其他 JumpServer 服务器一致, 加密的数据将无法解密
7 o* I! l& R( S7 d2 z/ A& X4 \  O5 n& q+ v
# 安装配置
" k1 H  g+ A9 H# {### 注意持久化目录 VOLUME_DIR, 如果上面 NFS 挂载其他目录, 此处也要修改. 如: NFS 挂载到 /data/jumpserver/core/data, 则 VOLUME_DIR=/data/jumpserver
8 p) l: w8 L7 m6 W$ o, AVOLUME_DIR=/opt/jumpserver
. V; {# |% Q( e2 B0 T% `
1 B# r. I0 R' u! g$ \0 I, r
. {6 U. u1 w  W, {# Core 配置
7 S+ M0 p5 G! C4 @9 G- g2 o. h### 启动后不能再修改,否则密码等等信息无法解密, 请勿直接复制下面的字符串/ F9 X& U+ P5 a1 _9 j7 @8 w6 c4 p4 X
SECRET_KEY=kWQdmdCQKjaWlHYpPhkNQDkfaRulM6YnHctsHLlSPs8287o2kW    # 要其他 JumpServer 服务器一致 (*)
/ j+ P( ?4 C/ l: G0 MBOOTSTRAP_TOKEN=KXOeyNgDeTdpeu9q                                 # 要其他 JumpServer 服务器一致 (*)- H/ e9 {  D6 I
LOG_LEVEL=ERROR                                                  # 日志等级. t( a2 D" Q5 G" ~, Z9 y3 C) L& r# x
# SESSION_COOKIE_AGE=86400
2 Z7 [8 S! ^" M2 C% CSESSION_EXPIRE_AT_BROWSER_CLOSE=True                             # 关闭浏览器 session 过期1 k3 p4 e/ h; s3 V( }$ |! ]. P' f# ~
2 `% ?3 {8 U) d% Z+ x
# MySQL 配置
: ~" s+ g- N: ~, F! f
  w" H+ o" h+ V$ H, @1 ]DB_HOST=192.168.10.11* X! \- s; w$ |
DB_PORT=3306% P& v' X* G* R* K8 I
DB_USER=jumpserver
6 c, ~4 h* ^. q3 f- X1 I! d; BDB_PASSWORD=KXOeyNgDeTdpeu9q4 i# b) c/ \, U6 m, s3 O
DB_NAME=jumpserver# w; ?' w4 _# U, B3 M( t  [* d- n
0 g) X. A* y# b: o  o8 `9 W; B
# Redis 配置/ Y8 ~: {9 |( ]+ d; F

! n' A4 k6 l6 Q$ p  R- }REDIS_HOST=192.168.10.11- V' s) e" a1 D
REDIS_PORT=6379+ y& z% \. v' K
REDIS_PASSWORD=KXOeyNgDeTdpeu9q$ I, Y9 J0 v) h" P
3 f4 V) j/ `  K; R
# KoKo Lion 配置: n# b$ B! C+ _
SHARE_ROOM_TYPE=redis                                            # KoKo Lion 使用 redis 共享; b, S$ X3 e& _1 J; L9 S
REUSE_CONNECTION=False                                           # Koko 禁用连接复用
1 x7 Y+ m7 G4 U; B$ Z3.3 执行脚本安装 JumpServer 服务⚓︎" D6 S" r8 P& }; _5 u

: }3 U6 |- ]* l3 V./jmsctl.sh install
8 f( X3 u7 S) |/ A: G3.4 启动 JumpServer 服务⚓︎2 v. g0 C1 e( b2 n5 u; @" h! y

& V# ~+ @8 e  z/ i  h./jmsctl.sh start
+ K& S* l5 F1 o4 Z3 m, E$ n; r7 A( G1 h8 O3 K7 {* O
Creating network "jms_net" with driver "bridge"2 [. O) v5 C* f- {- B/ j7 r
Creating jms_core      ... done
7 @8 c: G' D8 W# m! h, @9 ~Creating jms_celery    ... done) t8 X2 \. |; b2 o
Creating jms_lion      ... done
  j- N. E; }5 B* ~  l6 C% _2 nCreating jms_koko      ... done1 h# C+ E9 h& q
Creating jms_magnus    ... done
" W' h! n, T* f- JCreating jms_web       ... done
' p$ I) G# T% |$ w! e* |
& W$ k& k( t. ^# g6 W

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:09 | 显示全部楼层
部署 HAProxy 服务⚓︎, M- E4 n* @" _' R0 h
1 准备工作⚓︎
7 f5 p  @1 c% R' j- M+ o1.1 环境信息⚓︎5 e! ]# t6 g- y% v; d7 r
HAProxy 服务器信息如下:
' [4 w, @! K1 Y3 ^5 j* R# d$ D) b1 J7 t- ?! I8 }  Y
192.168.10.100
' H0 C% W8 K# B1 i0 O+ h1.2 安装依赖⚓︎0 ]8 |5 j. V: y

% q$ I% \0 [( uyum -y install epel-release! O! H* r1 d8 J! U6 e+ c7 v
2 安装配置 HAProxy⚓︎
" r( U2 z4 Y/ \. m2.1 安装 HAProxy⚓︎8 v/ _  H& D! v7 Z

1 R# X3 V8 o( J: e" D8 J/ C3 Lyum install -y haproxy/ ^& `5 U' W% S) V* J' e' z% D
2.2 配置 HAProxy⚓︎
; y, \, a' E% c! p+ y: e6 V0 V9 n7 T1 k% I3 V- y  w( D5 e
# 打开 HAProxy 的配置文件
( r: M7 k  ?9 u" U2 D- D9 @vi /etc/haproxy/haproxy.cfg% i9 U% b& g' s" G
5 X6 P; V) U3 \- q: K) V2 j
global7 a; C0 B: W; c' W1 V2 ?
    # to have these messages end up in /var/log/haproxy.log you will
+ ~7 m3 f* p2 y3 w5 @    # need to:: }; `  d8 `: n. V5 e9 j* l! @) p
    #
, {4 W" A6 |2 z& w$ K) a! v    # 1) configure syslog to accept network log events.  This is done
' M1 d- X9 h" K: x" g    #    by adding the '-r' option to the SYSLOGD_OPTIONS in
  a" G3 z% ]* d* m) l    #    /etc/sysconfig/syslog
$ g9 }  b' Y  t" U    #" i3 ?2 l6 D+ F# h
    # 2) configure local2 events to go to the /var/log/haproxy.log- b0 C. P9 a  M% @
    #   file. A line like the following can be added to' @+ ?8 M0 h+ k+ w7 [/ W
    #   /etc/sysconfig/syslog- b/ f6 }% |1 J+ b; e' H8 E& D
    #
1 x" _; N) i# @  [5 X$ w    #    local2.*                       /var/log/haproxy.log, v" k2 h: V& N; F% ~: B4 ]
    #
* D! j% `% g* W; `    log         127.0.0.1 local2$ k+ j( ?+ F0 J6 V& T) W' l

4 [0 _7 X7 ~0 q8 `3 K- p6 y    chroot      /var/lib/haproxy( S: R* ~( Y$ _, e3 d- s  C5 Z
    pidfile     /var/run/haproxy.pid
# ^( p. K, @$ r    maxconn     4000
3 ?& a  S+ ~' y    user        haproxy
/ G# d, e) W, x, f6 d1 a* F    group       haproxy
% \+ D/ J$ z7 [2 R    daemon7 V& m- k% l, J( R; o2 M+ D9 }
# e. H4 e) H, n0 q2 E9 ?
    # turn on stats unix socket+ H" U1 B( N7 S
    stats socket /var/lib/haproxy/stats
( J2 E, g6 `( O* J7 E, i
2 M& H2 Z3 r: Z4 G#---------------------------------------------------------------------2 J" D& E3 R8 p/ f" g  M- l* h
# common defaults that all the 'listen' and 'backend' sections will; M/ }. h  x' r# O9 R) S
# use if not designated in their block
! v4 \+ k9 a3 @#---------------------------------------------------------------------7 _6 V" m& g, c5 [
defaults
) P6 {& j$ @9 b3 }" S    log                     global
! \9 H/ L0 ]$ O' `9 C    option                  dontlognull
' l$ v2 T" ]7 m0 J    option                  redispatch: v# S5 x2 `: F* z0 _- d: _0 c, ~$ m3 \
    retries                 3
9 S: q5 b3 S2 _/ u/ {1 s; t    timeout http-request    10s. O$ g. E5 E% v. q5 c
    timeout queue           1m
8 m7 z6 `  i8 G" B* G    timeout connect         10s
1 e# g. X- Q; i3 _5 N    timeout client          1m
$ r  [0 P) [4 K    timeout server          1m- `4 w# }% {( r+ g1 H* c: W
    timeout http-keep-alive 10s, l" X$ o( ~; x# l
    timeout check           10s( Q& |* Z" L$ z2 `* U1 r  H, F: K
    maxconn                 3000/ ~9 ~( b4 s% I8 [. ^

( j# I6 I0 D4 ]( v' elisten stats9 k2 f; S+ f8 M4 T* ]9 n; W
    bind *:80800 c" c& ~. W) X8 T$ I( I
    mode http
" H' |3 f: ^/ ^4 ?/ J/ X6 Z: K    stats enable
4 g3 W7 A5 Q  N1 J, M  [/ V6 y    stats uri /haproxy                      # 监控页面, 请自行修改. 访问地址为 http://192.168.10.100:8080/haproxy
# g. B& O, z' w6 {( [    stats refresh 5s
" U6 t+ r+ S: a9 ]    stats realm haproxy-status, W4 s* m/ w$ R. ~1 T: u- ?+ U
    stats auth admin:KXOeyNgDeTdpeu9q       # 账户密码, 请自行修改. 访问 http://192.168.10.100:8080/haproxy 会要求输入
0 Y& d' x+ r5 r5 X. Y7 x: g) }
+ p9 y7 ~* Y% o: J2 l#---------------------------------------------------------------------  s7 Q& y' X5 s- [" l
# check  检活参数说明
7 }# |+ j& Q  R/ \0 z5 s+ K# R0 c3 A3 R# inter  间隔时间, 单位: 毫秒
' y+ S, G5 s5 H# rise   连续成功的次数, 单位: 次3 M6 o: S6 ?1 w
# fall   连续失败的次数, 单位: 次
3 S& a" s1 w4 B% m' `# 例: inter 2s rise 2 fall 3
" z/ t% K* b) Q5 g  R# 表示 2 秒检查一次状态, 连续成功 2 次服务正常, 连续失败 3 次服务异常- K8 ^* g# I+ V/ ?# {
#3 }' S& `8 r( U7 ?- y2 D( c& u
# server 服务参数说明
! ^7 w5 O) F* c# server 192.168.10.21 192.168.10.21:80 weight 1 cookie web01( l2 }1 O/ l5 w
# 第一个 192.168.10.21 做为页面展示的标识, 可以修改为其他任意字符串9 l. T9 t* o, l1 I
# 第二个 192.168.10.21:80 是实际的后端服务端口
8 x! T9 c# C' y- e# weight 为权重, 多节点时安装权重进行负载均衡9 c% ^3 ?; ?7 o/ e
# cookie 用户侧的 cookie 会包含此标识, 便于区分当前访问的后端节点  P( e2 l; j. w8 V0 k
# 例: server db01 192.168.10.21:3306 weight 1 cookie db_01
1 d9 n3 a0 h3 \#---------------------------------------------------------------------
6 q; n8 @1 S8 m: h
/ B+ Q: u4 u; j0 {0 c. t0 C% k2 olisten jms-web  T/ m( H1 B0 |5 f
    bind *:80                               # 监听 80 端口
/ O2 ?$ I, Z3 M, S    mode http% y+ @! d: u! G& ^: B7 v2 ~
4 I) w' c+ Q' f) S" `% u& _  V
    # redirect scheme https if !{ ssl_fc }  # 重定向到 https
% k2 U" h* {, q    # bind *:443 ssl crt /opt/ssl.pem       # https 设置
5 H5 [* L  i/ ]  }9 x' H# a8 J1 l( [0 n8 u- T; F
    option httpclose
# M" X& \7 L) \# Q, Z5 s7 u4 T    option forwardfor
4 D% z( a2 O  T1 G2 P    option httpchk GET /api/health/         # Core 检活接口
6 U8 K. f9 I& C2 d
+ X; K! Q3 m  h1 l4 ~, H    cookie SERVERID insert indirect+ f5 }; ^6 H$ Z/ }2 a- g
    hash-type consistent5 `% v3 v: T. G. b0 y
    fullconn 500  H$ h+ Z: Z+ y1 h$ Y
    balance leastconn
$ J; _8 t4 y6 I  h+ n) K    server 192.168.10.21 192.168.10.21:80 weight 1 cookie web01 check inter 2s rise 2 fall 3  # JumpServer 服务器
- a) x% J8 n: z) q! C% s  C# p# Z    server 192.168.10.22 192.168.10.22:80 weight 1 cookie web02 check inter 2s rise 2 fall 33 s% I  i: u8 u- ~3 D# ]
    server 192.168.10.23 192.168.10.23:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
- v! B- i5 z- w. C8 Z    server 192.168.10.24 192.168.10.24:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
# g, Y: f& F" K5 n$ |' D" P" y; ]6 [0 Y: W- W5 T  _
listen jms-ssh
: Q: J; L% t. Y    bind *:2222
9 I# n3 q1 Y5 l# A* ?    mode tcp3 \% e$ ]* ^) \. g0 W

" v0 j9 b. H" `- x% S, M) m    option tcp-check
1 P! G! }8 |8 g. l5 @
) [) a7 Z) B0 K: p& `    fullconn 500
: j2 a- H9 _3 N6 U7 Q, [7 q    balance source
4 G8 c0 v8 y; Y# X9 o( x* \    server 192.168.10.21 192.168.10.21:2222 weight 1 check inter 2s rise 2 fall 3 send-proxy, L# i0 w. F. k- b" o. E5 V; x8 b- e
    server 192.168.10.22 192.168.10.22:2222 weight 1 check inter 2s rise 2 fall 3 send-proxy
9 }3 @$ }3 j# ]; D0 |$ Z: P: f    server 192.168.10.23 192.168.10.23:2222 weight 1 check inter 2s rise 2 fall 3 send-proxy
1 ~1 Z7 a! C/ l& s2 h  o    server 192.168.10.24 192.168.10.24:2222 weight 1 check inter 2s rise 2 fall 3 send-proxy$ ?( |7 r2 |8 A; j& }1 ^9 X! Z( [' @

3 n+ _* m9 q0 v5 m5 slisten jms-koko  d$ X; }% {- u# ~, P0 S
    mode http
/ _1 Y3 }- B& J" }  K( w( L3 u6 ]" ^: P' Q
    option httpclose
, b! X# [9 b* E+ K% E0 ]0 u    option forwardfor
7 A7 }. l4 y/ n8 m* Y1 k    option httpchk GET /koko/health/ HTTP/1.1\r\nHost:\ 192.168.100.100  # KoKo 检活接口, host 填写 HAProxy 的 ip 地址
( X7 W9 k/ _& A2 v. k" g8 t
# q- m% b% |( |+ t! w8 \2 m) g8 W    cookie SERVERID insert indirect
7 W  T* i- a5 Q9 J- L; n/ Y    hash-type consistent
! E/ H/ c& N/ p7 [3 m( }    fullconn 5009 F; o5 z: b5 y6 u8 h
    balance leastconn
& B$ {* J. h( f    server 192.168.10.21 192.168.10.21:80 weight 1 cookie web01 check inter 2s rise 2 fall 3
3 m1 n$ [4 v3 p0 r# n- e5 Y/ r    server 192.168.10.22 192.168.10.22:80 weight 1 cookie web02 check inter 2s rise 2 fall 3- T6 l. V; K2 y1 G% W( z% F
    server 192.168.10.23 192.168.10.23:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
/ y8 ]& ?" P6 n% j, O    server 192.168.10.24 192.168.10.24:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
  w. J; j  D% u* T
. |/ X# o) z6 z! i: flisten jms-lion) p- u& x" s1 w4 }
    mode http
0 r6 u- z8 T) U" m: Y% C3 N8 \1 n2 k7 n2 P, e) Y
    option httpclose
& x9 _8 O2 M) @7 v    option forwardfor/ L; W4 C: `7 ?4 u6 [0 U% m$ v, L# V
    option httpchk GET /lion/health/ HTTP/1.1\r\nHost:\ 192.168.10.100  # Lion 检活接口, host 填写 HAProxy 的 ip 地址
* g* @: H0 ?( }' z3 K- m5 o/ H2 n  V; s# j; B0 A
    cookie SERVERID insert indirect" |1 }) e+ F6 h9 [
    hash-type consistent' C+ M- {1 C" C
    fullconn 500! Q! S' P6 W3 Q2 k2 R( B
    balance leastconn* x2 K3 i/ L0 P
    server 192.168.10.21 192.168.10.21:80 weight 1 cookie web01 check inter 2s rise 2 fall 3
( a3 @1 s( m  m6 U) `    server 192.168.10.22 192.168.10.22:80 weight 1 cookie web02 check inter 2s rise 2 fall 39 R$ ?" R! s- y* ^; ^+ F
    server 192.168.10.23 192.168.10.23:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
8 T8 b0 r; p5 c( g3 t9 e" L    server 192.168.10.24 192.168.10.24:80 weight 1 cookie web03 check inter 2s rise 2 fall 3
  o) H" j( W. y# Z1 V# z  ^3 Z2 i9 J
listen jms-magnus# M: x9 l- e3 n. v# u' T
    bind *:300009 d' T/ u, S  h5 \! J2 N0 g
    mode tcp
( j( b6 \% J2 ^1 ]! |' B, `- O
    option tcp-check/ W6 y2 X. |, T5 E2 ^/ |) s# p

6 f8 R: s) S$ y" }0 t5 G6 _: h4 @    fullconn 5002 T3 P2 Q( P9 y' Z% i/ D
    balance source4 X2 n1 i0 Z8 e- o* n' G# D
    server 192.168.10.21 192.168.10.21:30000 weight 1 check inter 2s rise 2 fall 3 send-proxy
8 b# f( D0 I8 S" B7 G    server 192.168.10.22 192.168.10.22:30000 weight 1 check inter 2s rise 2 fall 3 send-proxy7 x, U/ ~0 D7 ^! [6 f/ M
    server 192.168.10.23 192.168.10.23:30000 weight 1 check inter 2s rise 2 fall 3 send-proxy3 c& s+ i) R5 V' |  [7 Y8 U) `7 m" k
    server 192.168.10.24 192.168.10.24:30000 weight 1 check inter 2s rise 2 fall 3 send-proxy% p4 z7 ?& U; s7 b1 a( s
2.3 配置 SELinux⚓︎
0 r8 ^3 @+ Q6 x* u6 d- t9 b
* c' e1 O! }. |/ }# {setsebool -P haproxy_connect_any 1% S- y. |% w5 ~) V
2.4 启动 HAProxy⚓︎$ X( |6 J1 G; h  a# t
, H2 _  y  Y1 k3 a) B, N# ^. o# R
systemctl enable haproxy
( Y, R1 H9 f5 Vsystemctl start haproxy
9 P7 x6 k' a3 Z, b9 y$ P. U0 \3 配置防火墙⚓︎
: u: X  I) c7 _. x! [7 D4 q- \) j2 F# Y" Y. s6 Y5 F) i
firewall-cmd --permanent --zone=public --add-port=80/tcp3 O/ K, o0 h4 Z
firewall-cmd --permanent --zone=public --add-port=443/tcp. ~; |( Y" \+ [: K5 C
firewall-cmd --permanent --zone=public --add-port=2222/tcp: u3 r" o1 M3 j5 v. T8 |4 q2 z( L
firewall-cmd --permanent --zone=public --add-port=33060/tcp6 O: G  z1 Y5 ^4 u
firewall-cmd --permanent --zone=public --add-port=33061/tcp
+ ~1 C) F8 y/ h* u! ^' hfirewall-cmd --reload- e9 ^% G/ e: B( v
% p* c, e/ S) A( `# a

1

主题

0

回帖

12

积分

管理员

积分
12
QQ
 楼主| 发表于 2023-3-8 10:00:10 | 显示全部楼层
部署 MinIO 服务⚓︎: y) d/ S7 \; ?2 t& U1 d  T0 p
提示
: [4 D8 ]2 j  C
* D1 x( S, C  G集群部署请参考 (http://docs.minio.org.cn/docs/ma ... de-quickstart-guide)
- v! o8 W& d: ~0 C1 准备工作⚓︎) c! ?. D" t9 [7 r
1.1 环境信息⚓︎% a* M9 ]) Z. G% S7 F
MinIO 服务器信息如下:. q# Y6 V* P/ I

5 p8 J" _6 K1 v! Z192.168.10.41
; U: v; \- S% w2 T2 安装配置 Docker 环境⚓︎
( B% M- S! m) i& V/ k( T2.1 安装 Docker⚓︎) F3 s/ {3 @7 H8 {# P2 W
4 I+ m8 L% G" z8 L& b3 n) Z7 R
yum install -y yum-utils device-mapper-persistent-data lvm2, Q/ Q) v2 `+ a$ g% i
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
: o+ H* D  [5 R1 ^' Msed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo2 b( Q" m, s/ m
yum makecache fast. a, `! B" b/ I; w: ~: U' E
yum -y install docker-ce- U! q1 S- m4 P! i% s5 q/ N( ]
2.2 配置 Docker⚓︎
/ L% N8 G1 P7 U
! m* Z9 ^3 u5 }; U+ tmkdir /etc/docker/
9 E) A/ s* M3 W. \. A/ Yvi /etc/docker/daemon.json
2 L% z9 Q% k* z( j( e5 u# z# ~9 |6 N
{
: e9 O+ b  O  _  "live-restore": true,9 g, {" U) D+ _7 p) _2 _
  "registry-mirrors": ["https://hub-mirror.c.163.com", "https://bmtrgdvx.mirror.aliyuncs.com", "http://f1361db2.m.daocloud.io"],
/ @* _% \5 i% x6 A6 e6 B  "log-driver": "json-file",& Y* |0 ~, e. ]% v) w& [
  "log-opts": {"max-file": "3", "max-size": "10m"}
0 W/ H1 `' m1 I- o) |% [}
1 B# Q& q$ f) v$ W- X3 p! I2.3 启动 Docker⚓︎% w* u5 h+ p4 J+ f6 @

2 g3 ?0 ^. j* R0 c- ?* H  H/ ]systemctl enable docker( ?7 I1 x' v# u: u
systemctl start docker, D- f, S# {6 D
3 安装配置 MinIO⚓︎' {! i. U4 g8 i7 L$ i+ ]! H
3.1 下载 MinIO 镜像⚓︎
  l$ ]* x9 K$ {3 k3 @! x; Y5 f  R0 v9 ?4 d: a4 q7 y6 B
docker pull minio/minio:latest. l5 v# Z7 D7 N/ M/ |: {/ n
1 T  x( S5 p1 C; w# a
latest: Pulling from minio/minio( E. H# y% G7 h4 A0 _% Q
a591faa84ab0: Pull complete
# X4 x% s: y5 v7 u! L+ H) Y/ t7 i76b9354adec6: Pull complete# ?$ Z( V1 j2 o
f9d8746550a4: Pull complete4 S, Q: c3 u$ L
890b1dd95baa: Pull complete  z- H" u% F6 R- c& o$ y
3a8518c890dc: Pull complete/ G  A- `1 q3 ^5 C# r3 @2 K  r
8053f0501aed: Pull complete, c& [0 g  Z9 c$ s7 k* n" S
506c41cb8532: Pull complete  C1 I; m, o) i
Digest: sha256:e7a725edb521dd2af07879dad88ee1dfebd359e57ad8d98104359ccfbdb92024
" x5 ~( S2 K4 _- r' NStatus: Downloaded newer image for minio/minio:latest+ g1 D% g7 _2 W, j) g( a5 q
docker.io/minio/minio:latest, |5 d9 M% v& p3 |  y7 B' x; N3 j
3.2 MinIO 持久化数据目录创建⚓︎
( y% ^" w: S$ y. [' u: [' k# K
- H( S. ^( m2 b% ]9 ]4 ?: Vmkdir -p /opt/jumpserver/minio/data /opt/jumpserver/minio/config
2 R7 h. Q9 }- H1 e" ?3.3 启动 MinIO 服务⚓︎
; w( k0 J( H1 E9 i5 e% @0 L  }! g
## 请自行修改账号密码并牢记,丢失后可以删掉容器后重新用新密码创建,数据不会丢失
+ l+ }' V1 Q: b6 C1 L3 q# 9000                                  # api     访问端口7 [$ }, ?# P% B1 ~: S3 z7 B
# 9001                                  # console 访问端口# H8 m6 K8 {, t! V$ S5 s! S
# MINIO_ROOT_USER=minio                 # minio 账号
+ ~$ e* y5 @& A! }# MINIO_ROOT_PASSWORD=KXOeyNgDeTdpeu9q  # minio 密码+ R* F# n, _% ?( x

4 l# ]( p, C; C1 Mdocker 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"* r2 H1 t9 _1 N( r" E, D
3.5 在 MinIO 中创建 Buckets⚓︎
4 ^. q# ?! J: o7 D3 p- M访问 http://192.168.10.41:9000,输入刚才设置的 MinIO 账号密码登录。" N4 g' G' @) b2 e9 y) C
点击左侧菜单的 Buckets,选择 Create Bucket 创建桶,Bucket Name 输入 jumpserver,然后点击 Save 保存。# C4 f3 F8 W+ D2 u6 F
3.6 在 JumpServer 中配置 MinIO⚓︎
3 ]& o  u7 H7 h. }访问 JumpServer Web 页面并使用管理员账号进行登录。
6 x3 F- c4 c/ |点击左侧菜单栏的 [终端管理],在页面的上方选择 [存储配置],在 [录像存储] 下方选择 [创建] 选择 [Ceph]
. R" q7 `" G8 r: a  E( A( c根据下方的说明进行填写,保存后在 [终端管理] 页面对所有组件进行 [更新],录像存储选择 [jms-mino],提交。4 C0 ?+ X3 h2 z" C
选项        参考值        说明$ l  y$ F! `$ |8 n/ Q
名称 (Name)        jms-minio        标识, 不可重复$ N6 A/ E! W, Y% p2 y
类型 (Type)        Ceph        固定, 不可更改! p( U( j9 p) D# J
桶名称 (Bucket)        jumpserver        Bucket Name0 b5 |* |) ?$ z0 a
Access key        minio        MINIO_ROOT_USER
" h" b% B( Y; e; f4 W; k0 ^Secret key        KXOeyNgDeTdpeu9q        MINIO_ROOT_PASSWORD( O/ v, k- K( f5 ]( m
端点 (Endpoint)        http://192.168.10.41:9000        minio 服务访问地址" N1 Q) w/ t& p5 P
默认存储                新组件将自动使用该存储8 N4 ]% L+ W# r9 h6 M5 e9 _) Y
( e9 f/ ]$ ]* {8 }7 c2 [/ K, S9 I
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-6-12 01:45 , Processed in 0.023654 second(s), 22 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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