|
|
楼主 |
发表于 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' }
|
|