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