zoukankan      html  css  js  c++  java
  • Linux-部署Jumpserver跳板机

    实验环境:

    vampire01.cn IP : 192.168.1.63   jumpserver服务端

    vampire02.cn IP:192.168.1.64   资源,被管理的服务器

    上传依赖的软件jumpserver-package.zip到Linux系统上(因为在线安装下载太慢了)

    关闭 selinux 和防火墙

    [root@vampire01 ~]# setenforce 0  # 可以设置配置文件永久关闭

    [root@vampire01 ~]# systemctl stop firewalld.service ; systemctl disable firewalld.service

    # 修改字符集,否则可能报 input/output error的问题,因为日志里打印了中文

    [root@vampire01 ~]# localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8

    [root@vampire01 ~]# export LC_ALL=zh_CN.UTF-8

    [root@vampire01 ~]# echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf

    [root@vampire01 ~]# exit

    再重新连接, 这样语言环境就改变了。

    准备 Python3 和 Python 虚拟环境

    1、安装依赖包

    注:安装前,可以开启yum缓存功能,把软件包下载下来,方便后期使用。

    [root@vampire01 ~]# vim /etc/yum.conf

    改:keepcache=0

    为:keepcache=1

    [root@vampire01 ~]# yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git

    2、编译安装python3.6.1

    [root@vampire01 ~]# cd /opt

    [root@vampire01 ~]# tar xvf Python-3.6.1.tar.xz  && cd Python-3.6.1

    [root@vampire01 ~]# ./configure  &&  make  -j 4 && make install

    # 这里必须执行编译安装,否则在安装 Python 库依赖时会有麻烦...

    注:在线下载 wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz

    3、建立 Python 虚拟环境

    因为 CentOS 6/7 自带的是 Python2,而 Yum 等工具依赖原来的 Python,为了不扰乱原来的环境我们来使用 Python 虚拟环境

    [root@vampire01 ~]# cd /opt

    [root@vampire01 ~]# python3 -m venv py3

    [root@vampire01 ~]# source /opt/py3/bin/activate

    (py3) [root@vampire01 ~]#        #切换成功的,前面有一个py3 标识

    # 看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行

    安装 Jumpserver 1.0.0

    1、下载或 Clone 项目

    项目提交较多 git clone 时较大,你可以选择去 Github 项目页面直接下载zip包。

    (py3) [root@vampire01 ~]#  cd /opt/jumpserver/   #我们已经提前下载

    注:在线下载方法:

    git clone --depth=1 https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout master

    注:depth用于指定克隆深度,为1即表示只克隆最近一次commit

     

    2、 安装依赖 RPM 包

    [root@vampire01 ~]# cd /opt/jumpserver/requirements

    [root@vampire01 ~]# yum -y install $(cat rpm_requirements.txt)

    3、 安装 Python 库依赖

    [root@vampire01 ~]# cd /opt/jumpserver/requirements

    [root@vampire01 ~]# source /opt/py3/bin/activate

    (py3) [root@vampire01 ~]# pip -V

    pip 9.0.1 from /opt/py3/lib/python3.6/site-packages (python 3.6)

    方法1:离线安装:

    (py3) [root@vampire01 python-package]# cd /opt/python-package

    (py3) [root@vampire01 ~]# pip install  ./*

    方法2:在线安装:(py3) [root@vampire01 ~]#  pip install -r requirements.txt 

    pip 是一个安装和管理 Python 包的工具,相当于yum命令

     

    4、安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke

    [root@vampire01 ~]# yum  -y install redis

    [root@vampire01 ~]# systemctl enable redis  ;  systemctl start redis

    5、安装 MySQL

    本教程使用 Mysql 作为数据库,如果不使用 Mysql 可以跳过相关 Mysql 安装和配置

    [root@vampire01 ~]# yum  install mariadb mariadb-devel mariadb-server   -y

    [root@vampire01 ~]# systemctl enable mariadb  ;  systemctl start mariadb

    6、建数据库 Jumpserver 并授权

    [root@vampire01 ~]# mysql

    MariaDB [(none)]> create database jumpserver default charset 'utf8';

    MariaDB [(none)]> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by '123456';

    MariaDB [(none)]> exit;

    7、改 Jumpserver 配置文件

    [root@vampire01 ~]# cd /opt/jumpserver

    [root@vampire01 ~]# cp config_example.py config.py

    [root@vampire01 ~]# vim config.py

     

    # 我们计划修改 DevelopmentConfig 中的配置,因为默认 Jumpserver 使用该配置,它继承自 Config

    注意: 配置文件是 Python 格式,不要用 TAB,而要用空格

    class DevelopmentConfig(Config):

        DEBUG = True

        DB_ENGINE = 'mysql'

        DB_HOST = '127.0.0.1'

        DB_PORT = 3306

        DB_USER = 'jumpserver'

        DB_PASSWORD = '123456'

        DB_NAME = 'jumpserver'

    如下:一定要注意前面空格的对齐。

     

     

    8、成数据库表结构和初始化数据

    (py3) [root@vampire01 jumpserver]# cd /opt/jumpserver/utils

    (py3) [root@vampire01 jumpserver]# bash make_migrations.sh  #注,在执行这一条命令之前,必续保障之前的pip install ./* 命令已经执行完了,不然后导入不了Django等软件包。

    9、运行 Jumpserver

    (py3) [root@vampire01 jumpserver]# cd /opt/jumpserver

    (py3) [root@vampire01 jumpserver]# chmod +x jms

    (py3) [root@vampire01 jumpserver]# ./jms start all -d # 后台运行使用 -d 参数

    注: ./jms start all #前台运行

    如果运行失败了,重新启动一下。

    #启动服务的脚本,使用方式./jms start|stop|status|restart all  后台运行请添加 -d 参数

    测试:

    访问 http://192.168.1.63:8080/   用户 : admin 密码: admin

     

     

    这里需要使用8080端口来访问页面。后期搭建 nginx 代理,就可以直接使用80端口正常访问了

    附上重启的方法

    (py3) [root@vampire01 jumpserver]# ./jms restart -d

    安装 Coco组件

    34.2.1  安装coco组件

    1、默认点击web终端,弹出:

     

     

     

    所以接下来,我们安装luna和coco:

    coco概述:coco实现了 SSH Server 和 Web Terminal Server 的组件,提供 SSH 和 WebSocket 接口, 使用 Paramiko 和 Flask 开发。

    (py3) [root@vampire01 jumpserver]# cd /opt/coco  #直接使用离线代码

    (py3) [root@vampire01 jumpserver]# source /opt/py3/bin/activate 

    附:在线下载代码:# git clone https://github.com/jumpserver/coco.git && cd coco && git checkout master

    2、 安装coco的依赖包,主要有rpm和python包

    (py3) [root@vampire01 jumpserver]# cd /opt/coco/requirements

    (py3) [root@vampire01 jumpserver]# yum -y  install $(cat rpm_requirements.txt) 

    (py3) [root@vampire01 jumpserver]# pip install -r requirements.txt   #前面已经离线安装过python的包,这里就很快安装成功了,或提示已经安装成功。

    注:扩展: pip download -r requirements.txt  #使用download可以下载python包到本地

     

    3、查看配置文件并运行

    (py3) [root@vampire01 jumpserver]# cd /opt/coco

    (py3) [root@vampire01 jumpserver]# cp conf_example.py conf.py  # 如果 coco 与 jumpserver 分开部署,请手动修改 conf.py

    (py3) [root@vampire01 coco]# chmod +x cocod

    (py3) [root@vampire01 jumpserver]# ./cocod start -d   #后台运行使用 -d 参数

    # 新版本更新了运行脚本,使用方式./cocod start|stop|status|restart  后台运行请添加 -d 参数

    安装Web-Terminal前端-Luna组件-配置Nginx整合各组件

    34.3.1  安装luna组件

    Luna概述:Luna现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等。

    访问(https://github.com/jumpserver/luna/releases)下载对应版本的 release 包,直接解压,不需要编译

     解压 Luna

    (py3) [root@vampire01 jumpserver]# cd /opt

    (py3) [root@vampire01 jumpserver]# tar xvf luna.tar.gz

    (py3) [root@vampire01 jumpserver]# ls /opt/luna

    注:在线下载

    #wget https://github.com/jumpserver/luna/releases/download/v1.0.0/luna.tar.gz

     

    34.3.2  配置 Nginx 整合各组件

    安装 Nginx 根据喜好选择安装方式和版本

    (py3) [root@vampire01 jumpserver]# yum -y install nginx

    5.2 准备配置文件 修改 /etc/nginx/conf.d/jumpserver.conf

    内容如下:

    (py3) [root@vampire01 opt]#  vim /etc/nginx/nginx.conf

    删除第38行到 57行中server {。。。}相关的内容,在vim命令模式,输入38gg,快速跳到38行,然后输入20dd,就可以删除。

    删除后,在38行插入以一下内容:

     

    server {
        listen 80;
     
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     
        location /luna/ {
            try_files $uri / /index.html;
            alias /opt/luna/;
        }
     
        location /media/ {
            add_header Content-Encoding gzip;
            root /opt/jumpserver/data/;
        }
     
        location /static/ {
            root /opt/jumpserver/data/;
        }
     
        location /socket.io/ {
            proxy_pass       http://localhost:5000/socket.io/;  # 如果coco安装在别的服务器,请填写它的ip
            proxy_buffering off;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
     
        location / {
            proxy_pass http://localhost:8080;  # 如果jumpserver安装在别的服务器,请填写它的ip
        }
    }

     

    34.3.3  运行 Nginx

    (py3) [root@vampire01 opt]# nginx -t   # 检测配置文件

    (py3) [root@vampire01 jumpserver]# systemctl start nginx  ;  systemctl enable nginx

     

    34.3.4  接受coco注册

    到会话管理-终端管理 接受 Coco的注册。点接受。

     

     

    再刷新页面:

     

    ** 测试连接**

    (py3) [root@vampire01 jumpserver]# ssh -p2222 admin@192.168.1.63   #密码: admin

     

    到此安装成功。

  • 相关阅读:
    JQuery的ajax函数执行失败,alert函数弹框一闪而过
    ThinkPHP5.1中数据查询使用field方法数组参数起别名时遇到的问题
    Linux Web服务器集群搭建
    三层架构之UI层
    Aircoinst 三层架构ASP.NET开源
    [教程]KALI LINUX 2.0 2019 更新国内源
    工厂模式
    Java 实现序列化和反序列化
    Java实现缓冲流 编码 & 解码
    Java使用IO流读取文件显示到控制台2
  • 原文地址:https://www.cnblogs.com/Vampire-MIn/p/13050003.html
Copyright © 2011-2022 走看看