部署jumpserver服务核心组件Core

一、前期准备

一个后台程序,基本上都是需要依赖于数据库才能运行,后台程序在启动的时候,代码就回去连接数据库,保证数据库,正确启动,且可以正确连接,否则后台程序是起不来的。

因此需要检查数据库、redis、环境变量等情况

1、netstat -tunlp命令  检查3306:mysql数据库  检查6379:redis数据库

  1. root@jumpserver-app-t01.novalocal:/opt#netstat -tunlp
  2. Active Internet connections (only servers)
  3. Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
  4. tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2408/sshd: /usr/sbi
  5. tcp 0 0 127.0.0.1:6379 0.0.0.0:* LISTEN 8607/redis-server 1
  6. tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 875/rpcbind
  7. tcp 0 0 0.0.0.0:10032 0.0.0.0:* LISTEN 1578/java
  8. tcp6 0 0 :::22 :::* LISTEN 2408/sshd: /usr/sbi
  9. tcp6 0 0 :::3306 :::* LISTEN 89110/mysqld
  10. tcp6 0 0 :::111 :::* LISTEN 875/rpcbind
  11. udp 0 0 0.0.0.0:68 0.0.0.0:* 23060/dhclient
  12. udp 0 0 0.0.0.0:111 0.0.0.0:* 875/rpcbind
  13. udp 0 0 10.22.2.160:123 0.0.0.0:* 879/ntpd
  14. udp 0 0 127.0.0.1:123 0.0.0.0:* 879/ntpd
  15. udp 0 0 0.0.0.0:123 0.0.0.0:* 879/ntpd
  16. udp 0 0 0.0.0.0:613 0.0.0.0:* 875/rpcbind
  17. udp6 0 0 :::111 :::* 875/rpcbind
  18. udp6 0 0 :::123 :::* 879/ntpd
  19. udp6 0 0 :::613 :::* 875/rpcbind
  20. root@jumpserver-app-t01.novalocal:/opt#

2、连接mysql数据库,查看数据库jumpserver是否建立完成

  1. root@jumpserver-app-t01.novalocal:/opt#mysql -uroot -p
  2. Enter password:
  3. Welcome to the MySQL monitor. Commands end with ; or \g.
  4. Your MySQL connection id is 6
  5. Server version: 5.6.49 MySQL Community Server (GPL)
  6. Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
  7. Oracle is a registered trademark of Oracle Corporation and/or its
  8. affiliates. Other names may be trademarks of their respective
  9. owners.
  10. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
  11. mysql> show databases;
  12. +--------------------+
  13. | Database |
  14. +--------------------+
  15. | information_schema |
  16. | jumpserver |
  17. | mysql |
  18. | performance_schema |
  19. | test |
  20. +--------------------+
  21. 5 rows in set (0.00 sec)
  22. mysql> exit
  23. Bye
  24. root@jumpserver-app-t01.novalocal:/opt#

3、检查redis运行情况,用ping——pong命令

  1. root@jumpserver-app-t01:/opt#redis-cli
  2. 127.0.0.1:6379> ping
  3. (error) NOAUTH Authentication required.
  4. 127.0.0.1:6379> auth default www.chaoge666.com
  5. OK
  6. 127.0.0.1:6379> ping
  7. PONG
  8. 127.0.0.1:6379> exit
  9. root@jumpserver-app-t01:/opt#

二、安装Jumpserver

1、获取jumpserver程序的代码,github有公共仓库,所有人都可以下载,私有仓库,只有企业内部人员,用账号密码登录后下载

  1. cd /opt
  2. wget -O /opt/jumpserver-2.28.7.tar.gz https://github.com/jumpserver/jumpserver/archive/refs/tags/v2.28.7.tar.gz
  3. tar -xf jumpserver-2.28.7.tar.gz
  4. cd jumpserver-2.28.7

我使用wget无法正常下载到文件,于是去了官网,下载的离线包,然后xftp上传到/opt的目录下,官网路径

https://github.com/jumpserver/installer/releases/download/v2.28.7/jumpserver-installer-v2.28.7.tar.gz

或者

https://community.fit2cloud.com/#/products/jumpserver/downloads

2、解压缩,修改文件夹名称为jumpserver-2.28.7

  1. root@jumpserver-app-t01:/root#cd /opt
  2. root@jumpserver-app-t01:/opt#ls
  3. cloudinit dbackup3-common-8.0.32567-1.f6b1c35.dbg.x86_64.rpm python3-6-10 scutech
  4. dbackup3-agent-8.0.32567-1.f6b1c35.dbg.x86_64.rpm jumpserver-offline-installer-v2.28.7-amd64-2.tar.gz Python-3.6.10
  5. dbackup3-agent-file-8.0.32567-1.f6b1c35.dbg.x86_64.rpm jum_venv1 Python-3.6.10.tgz
  6. root@jumpserver-app-t01:/opt#tar xf jumpserver-offline-installer-v2.28.7-amd64-2.tar.gz
  7. root@jumpserver-app-t01:/opt#ls
  8. cloudinit dbackup3-common-8.0.32567-1.f6b1c35.dbg.x86_64.rpm jum_venv1 Python-3.6.10.tgz
  9. dbackup3-agent-8.0.32567-1.f6b1c35.dbg.x86_64.rpm jumpserver-offline-installer-v2.28.7-amd64-2 python3-6-10 scutech
  10. dbackup3-agent-file-8.0.32567-1.f6b1c35.dbg.x86_64.rpm jumpserver-offline-installer-v2.28.7-amd64-2.tar.gz Python-3.6.10
  11. root@jumpserver-app-t01:/opt#mv jumpserver-offline-installer-v2.28.7-amd64-2 jumpserver-2.28.7
  12. root@jumpserver-app-t01:/opt#ls
  13. cloudinit dbackup3-common-8.0.32567-1.f6b1c35.dbg.x86_64.rpm jum_venv1 Python-3.6.10.tgz
  14. dbackup3-agent-8.0.32567-1.f6b1c35.dbg.x86_64.rpm jumpserver-offline-installer-v2.28.7-amd64-2.tar.gz python3-6-10 scutech
  15. dbackup3-agent-file-8.0.32567-1.f6b1c35.dbg.x86_64.rpm jumpserver-2.28.7 Python-3.6.10
  16. root@jumpserver-app-t01:/opt#

可选步骤#设置软连接jumpserver为jumpserver-2.28.7

  1. root@jumpserver-app-t01:/opt#ln -s /opt/jumpserver-2.28.7 /opt/jumpserver
  2. root@jumpserver-app-t01:/opt#ll
  3. total 1646964
  4. drwxr-xr-x 5 root root 56 Dec 14 2021 cloudinit
  5. -rw-r--r--. 1 root root 5603341 Dec 8 2021 dbackup3-agent-8.0.32567-1.f6b1c35.dbg.x86_64.rpm
  6. -rw-r--r--. 1 root root 730515 Dec 8 2021 dbackup3-agent-file-8.0.32567-1.f6b1c35.dbg.x86_64.rpm
  7. -rw-r--r--. 1 root root 54865881 Dec 8 2021 dbackup3-common-8.0.32567-1.f6b1c35.dbg.x86_64.rpm
  8. lrwxrwxrwx 1 root root 23 Feb 21 13:57 jumpserver -> /opt/jumpserver-2.28.7
  9. -rw-r--r-- 1 root root 1602259773 Feb 21 12:25 jumpserver-offline-installer-v2.28.7-amd64-2.tar.gz
  10. drwxr-xr-x 7 root root 215 Feb 8 16:29 jumpserver-2.28.7
  11. drwxr-xr-x 4 root root 64 Feb 21 10:34 jum_venv1
  12. drwxr-xr-x 6 root root 56 Feb 20 22:18 python3-6-10
  13. drwxr-xr-x 18 501 501 4096 Feb 20 22:18 Python-3.6.10
  14. -rw-r--r-- 1 root root 23019480 Dec 19 2019 Python-3.6.10.tgz
  15. drwxr-xr-x. 3 root root 22 Dec 8 2021 scutech
  16. root@jumpserver-app-t01:/opt#

执行rpm包安装脚本

  1. rm -f apps/common/utils/ip/geoip/GeoLite2-City.mmdb apps/common/utils/ip/ipip/ipipfree.ipdb
  2. wget https://download.jumpserver.org/files/ip/GeoLite2-City.mmdb -O apps/common/utils/ip/geoip/GeoLite2-City.mmdb
  3. wget https://download.jumpserver.org/files/ip/ipipfree.ipdb -O apps/common/utils/ip/ipip/ipipfree.ipdb
  4. source requirements/rpm_pkg.sh

可选步骤#3、安装运行jumpserver所需要的模块(由python开发的程序,必须安装该程序使用到的一些模块,才能正确运行)

  1. yum install bash-completion vim lrzsz wget expect net-tools tree nmap nc dos2unix htop iftop itop unzip telnet sl psmisc nethogs glances bc ntpdate openldap-devel
  2. pip3 install --upgrade pip
  1. yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc ntpdate openldap-devel
  2. yum -y install git python-pip gcc automake autoconf python-devel vim sshpass lrzsz readline-devel zlib zlib-devel openssl openssl-devel
  3. yum install xmlsec1-openssl xmlsec1-openssl-devel
  4. yum install pkg-config xmlsec1-openssl xmlsec1 libxml2 libxml2-devel xmlsec1-devel xmlsec1-openssl-devel libtool-ltdl-devel

4、在虚拟环境中安装greenlet包:

  1. # 进入虚拟环境
  2. source /opt/py3/bin/activate
  3. # 虚拟环境下安装
  4. pip3 install -U pip setuptools wheel
  5. yum install libffi-devel
  6. pip3 install pyopenssl xmlsec
  7. pip3 install greenlet #可选,若未报错可以不安装greenlet

5、安装Jumpserver自带的环境列表清单

  1. (py3) root@jumpserver-app-t01:/opt/jumpserver-2.28.7#cd /opt/jumpserver-2.28.7
  2. (py3) root@jumpserver-app-t01:/opt/jumpserver-2.28.7#pip3 install -r requirements/requirements.txt
  3. #也可以选用不缓存 --no-cache模式
  4. (py3) root@jumpserver-app-t01:/opt/jumpserver-2.28.7#pip3 install --no-cache -r requirements/requirements.txt

6、查看验证

  1. (py3)[root@server01 /opt/jumpserver-2.28.7]#pip3 list|wc -l
  2. 257

复制这个案例config_example.yml文件,成为正式config.yml文件,

  1. cp config_example.yml config.yml

这里先设置一个随机密匙:大家肯定都不一样

下面这段代码,生成服务运行需要的随机密钥,自动创建即可

  1. #内部组件通信,都得加密的随机密钥,为了安全通信。
  2. if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi
  3. if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi
  4. #生成后添加到配置文件里,检查2个随机密钥的值
  5. (py3) [root@jumpserver-t01:/opt/jumpserver#]#tail -2 ~/.bashrc
  6. SECRET_KEY=WRqzELX3kmZ7IYtQllNuSAECWJgNY2iB687EgvWiX4RmEJdYcZ
  7. BOOTSTRAP_TOKEN=JAd0p9VKrz4Y7sJT

拿到随机密匙后,编辑这个配置文件

  1. vim config.yml

把上面的SECRET_KEY和BOOTSTRAP_TOKEN都写入进去,

1、可以调用上面的函数

  1. SECRET_KEY: "$SECRET_KEY"
  2. BOOTSTRAP_TOKEN: "$BOOTSTRAP_TOKEN"
  3. DEBUG: true # 开发建议打开 DEBUG, 生产环境应该关闭
  4. LOG_LEVEL: DEBUG # 开发建议设置 DEBUG, 生产环境推荐使用 ERROR
  5. SESSION_EXPIRE_AT_BROWSER_CLOSE: true # 浏览器关闭 session 过期
  6. DB_ENGINE: mysql
  7. DB_HOST: 10.0.0.80 # 自行配置 数据库相关
  8. DB_PORT: 3306
  9. DB_USER: jumpserver
  10. DB_PASSWORD: ********** #冒号后门要加一个空格,格式才正确
  11. DB_NAME: jumpserver
  12. HTTP_BIND_HOST: 0.0.0.0
  13. HTTP_LISTEN_PORT: 8080
  14. WS_LISTEN_PORT: 8070
  15. REDIS_HOST: 10.0.0.80 # 自行配置 Redis 相关
  16. REDIS_PORT: 6379
  17. REDIS_PASSWORD: ******** #冒号后门要加一个空格,格式才正确

2、也可以直接复制密码。记得冒号后门加个空格,格式才正确

把密码也输入上去,记得冒号后门加个空格,格式才正确

数据库迁移,生成数据表

  1. #处理国际化
  2. rm -f apps/locale/zh/LC_MESSAGES/django.mo apps/locale/zh/LC_MESSAGES/djangojs.mo
  3. python apps/manage.py compilemessages
  4. #数据库迁移
  5. python /opt/jumpserver/apps/manage.py makemigrations
  6. python /opt/jumpserver/apps/manage.py migrate

后台启动Core 加-d

确保是在虚拟环境下启动的

  1. # 后台启动 加-d
  2. cd /opt/jumpserver-2.28.7
  3. ./jms start -d
  4. # 检查状态
  5. (py3)[root@server01 /opt/jumpserver-2.28.7]#./jms status
  6. 2023-02-10 00:58:32 [common DEBUG] Start subscribe for expire orgs mapping from memory
  7. 2023-02-10 00:58:32 [node_assets_mapping DEBUG] Start subscribe for expire node assets id mapping from memory
  8. 2023-02-10 00:58:32 [signal_handlers DEBUG] Start subscribe setting change
  9. 2023-02-10 00:58:32 [signal_handlers INFO] Init db port mapper
  10. beat is running: 32592.
  11. flower is running: 32613.
  12. daphne is running: 32663.
  13. celery_ansible is running: 32646.
  14. gunicorn is running: 32597.
  15. celery_default is running: 32635.

至此后端部署结束

部署堡垒机5——安装Core的更多相关文章

  1. jumpserver跳板机(堡垒机)安装

     jumpserver跳板机(堡垒机) Jumpserver 是一款由Python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能,基于ssh协议来管理,客户端无需安装agent,助力互联网企业 ...

  2. 开源堡垒机Gateone 安装过程记录及报错处理

    1.下载git源码或者zip包都可以,下载到我们制定部署目录. git地址:https://github.com/liftoff/GateOne.git 2.检查tornado 版本,安装tornad ...

  3. Jumpserver(堡垒机)的安装与应用

    官网:http://docs.jumpserver.org/zh/docs/introduce.html 作者:邓聪聪 环境 系统: CentOS 7.6 IP: 172.16.16.2 关闭 sel ...

  4. Python 13 简单项目-堡垒机

    本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功 ...

  5. Python之路-python(堡垒机)

    运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒机所具备的 ...

  6. day11 堡垒机

    项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒 ...

  7. python【第十三篇】可以写一个堡垒机了

    前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多人觉得,堡垒机就是跳板机,其实这个认识是不全面的,跳板功能只是堡垒机所具备的功能属性中的其中 ...

  8. Python之路,Day12 - 那就做个堡垒机吧

    Python之路,Day12 - 那就做个堡垒机吧   本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多 ...

  9. Day12 - 堡垒机开发

    Python之路,Day12 - 那就做个堡垒机吧   本节内容 项目实战:运维堡垒机开发 前景介绍 到目前为止,很多公司对堡垒机依然不太感冒,其实是没有充分认识到堡垒机在IT管理中的重要作用的,很多 ...

  10. day13--开发堡垒机

    本节内容 项目实战:运维堡垒机开发      商业:<齐治--堡垒机>     前景介绍        https://www.cnblogs.com/alex3714/articles/ ...

随机推荐

  1. LeetCode 周赛上分之旅 #46 经典二分答案与质因数分解

    ️ 本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 和 BaguTree Pro 知识星球提问. 学习数据结构与算法的关键在于掌握问题背后的算法思维框架,你的思考越 ...

  2. ndk开发之native层访问java层

    一.native层访问java层的成员变量 java层的成员变量可以分为实例变量和静态变量,不过他们的访问方法比较类似,可以分为以下三步: 获取java类对应的jclass对象 获取需要访问的成员变量 ...

  3. redis主从同步及redis哨兵机制

    1.主从和哨兵的作用: 角色 作用 主从 1.(提供)数据副本:多一份数据副本,保证redis高可用 2.  扩展(读)性能:如容量.QPS等 哨兵 1.监控: 监控redis主库及从库运行状态: 2 ...

  4. 简述location规则优先级-实现域名跳转-不同语言-终端跳转-错误页面返回首页-腾讯公益首页

    1.简述location的常见规则优先级,并且逐个验证: = :精确匹配(必须全部相等) #精准匹配优先级最高 ~ :大小写敏感(正则表达式) #一般使用~*忽略大小写匹配 (正则表达式 有上下区分, ...

  5. FFT & NTT 及其简单优化

    FFT FFT 是一种高效实现 DFT 和 IDFT 的方式,可以在 \(O(n \log n)\) 的时间内求多项式的乘法. 多项式的点值表示 不同于用每项的系数来表示一个多项式,我们知道对于给定的 ...

  6. CSP 2022 游寄

    Day -2147483648 官网有了通知,但选手注册不知为何坏掉了: 先开坑: Day -大概两个月 注册了,但老师还没给我审核呜呜呜 第一轮 早上 早上起床就直接来机房了,不用跑操欸嘿. 上午 ...

  7. helm仓库harbor搭建及上传helm

    1.仓库搭建(harbor) 注意: 基础环境为docker 使用docker-compose安装 1.1.docker安装 # 安装需要的软件包 # yum-util 提供yum-config-ma ...

  8. SpringBoot数据响应、分层解耦、三层架构

    响应数据 @ResponseBody 类型:方法注解.类注解 位置:Controller方法.类上 作用:将方法返回值直接响应,如果返回值类型是 实体对象/集合 ,将会转换为json格式响应 说明:@ ...

  9. MVC开发

    我们通过前面的章节可以看到:https://www.liaoxuefeng.com/wiki/1252599548343744/1266264917931808 Servlet适合编写Java代码,实 ...

  10. AB32VG1系列之手把手入门与RTC简单评测

    说是评测, 时间仓库仅仅是玩了一下例程而已. 后面有时间打算移植 CoreMark 看看与Cortex-M3的对比. AB32VG1系列之手把手入门与RTC简单评测