本文来源jumpserver官网

一步一步安装

环境

  • 系统: CentOS 7
  • IP: 192.168.244.144
  • 关闭 selinux 和防火墙
  1. # CentOS 7
  2. $ setenforce 0 # 可以设置配置文件永久关闭
  3. $ systemctl stop iptables.service
  4. $ systemctl stop firewalld.service
  5.  
  6. # CentOS6
  7. $ setenforce 0
  8. $ service iptables stop

一. 准备 Python3 和 Python 虚拟环境

1.1 安装依赖包

  1. $ yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git

1.2 编译安装

  1. $ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
  2. $ tar xvf Python-3.6.1.tar.xz && cd Python-3.6.1
  3. $ ./configure && make && make install

1.3 建立 Python 虚拟环境

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

  1. $ cd /opt
  2. $ python3 -m venv py3
  3. $ source /opt/py3/bin/activate
  4.  
  5. # 看到下面的提示符代表成功,以后运行 Jumpserver 都要先运行以上 source 命令,以下所有命令均在该虚拟环境中运行
  6. (py3) [root@localhost py3]

二. 安装 Jumpserver 1.0.0

2.1 下载或 Clone 项目

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

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

2.2 安装依赖 RPM 包

  1. $ cd /opt/jumpserver/requirements
  2. $ yum -y install $(cat rpm_requirements.txt) # 如果没有任何报错请继续

2.3 安装 Python 库依赖

  1. $ pip install -r requirements.txt # 不要指定-i参数,因为镜像上可能没有最新的包,如果没有任何报错请继续

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

  1. $ yum -y install redis
  2. $ service redis start

2.5 安装 MySQL

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

  1. # centos7
  2. $ yum -y install mariadb mariadb-devel mariadb-server # centos7下安装的是mariadb
  3. $ service mariadb start
  4.  
  5. # centos6
  6. $ yum -y install mysql mysql-devel mysql-server
  7. $ service mysqld start

2.6 创建数据库 Jumpserver 并授权

  1. $ mysql
  2. > create database jumpserver default charset 'utf8';
  3. > grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'somepassword';

2.7 修改 Jumpserver 配置文件

  1. $ cd /opt/jumpserver
  2. $ cp config_example.py config.py
  3. $ vi config.py # 我们计划修改 DevelopmentConfig中的配置,因为默认jumpserver是使用该配置,它继承自Config

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

  1. class DevelopmentConfig(Config):
  2. DEBUG = True
  3. DB_ENGINE = 'mysql'
  4. DB_HOST = '127.0.0.1'
  5. DB_PORT = 3306
  6. DB_USER = 'jumpserver'
  7. DB_PASSWORD = 'somepassword'
  8. DB_NAME = 'jumpserver'
  9.  
  10. ...
  11.  
  12. config = DevelopmentConfig() # 确保使用的是刚才设置的配置文件

2.8 生成数据库表结构和初始化数据

  1. $ cd /opt/jumpserver/utils
  2. $ bash make_migrations.sh

2.9 运行 Jumpserver

  1. $ cd /opt/jumpserver
  2. $ python run_server.py all

运行不报错,请浏览器访问 http://192.168.244.144:8080/ (这里只是 Jumpserver, 没有 Web Terminal,所以访问 Web Terminal 会报错)

账号: admin 密码: admin

三. 安装 SSH Server 和 WebSocket Server: Coco

3.1 下载或 Clone 项目

新开一个终端,连接测试机,别忘了 source /opt/py3/bin/activate

  1. $ cd /opt
  2. $ git clone https://github.com/jumpserver/coco.git && cd coco && git checkout master

3.2 安装依赖

  1. $ cd /opt/coco/requirements
  2. $ yum -y install $(cat rpm_requirements.txt)
  3. $ pip install -r requirements.txt

3.3 查看配置文件并运行

  1. $ cd /opt/coco
  2. $ cp conf_example.py conf.py
  3. $ python run_server.py

这时需要去 Jumpserver 管理后台-会话管理-终端管理(http://192.168.244.144:8080/terminal/terminal/)接受 Coco 的注册

  1. Coco version 0.4.0, more see https://www.jumpserver.org
  2. Starting ssh server at 0.0.0.0:2222
  3. Quit the server with CONTROL-C.

3.4 测试连接

  1. $ ssh -p2222 admin@192.168.244.144
  2. 密码: admin
  3.  
  4. 如果是用在 Windows 下,Xshell Terminal 登录语法如下
  5. $ssh admin@192.168.244.144 2222
  6. 密码: admin
  7. 如果能登陆代表部署成功

四. 安装 Web Terminal 前端: Luna

Luna 已改为纯前端,需要 Nginx 来运行访问

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

4.1 解压 Luna

  1. $ pwd
  2. /opt/
  3.  
  4. $ tar xvf luna.tar.gz
  5. $ ls /opt/luna
  6. ...

五. 安装 Windows 支持组件

因为手动安装 guacamole 组件比较复杂,这里提供打包好的 docker 使用, 启动 guacamole

  1. # 注意:这里一定要改写一下本机的IP地址, 否则会出错
  2.  
  3. docker run --name jms_guacamole -d \
  4. -p 8081:8080 -v /opt/guacamole/key:/config/guacamole/key \
  5. -e JUMPSERVER_KEY_DIR=/config/guacamole/key \
  6. -e JUMPSERVER_SERVER=http://<填写本机的IP地址>:8080 \
  7. registry.jumpserver.org/public/guacamole:1.0.0

这里所需要注意的是 guacamole 暴露出来的端口是 8081,若与主机上其他端口冲突请自定义一下。

再次强调:修改 JUMPSERVER_SERVER 环境变量的配置,填上 Jumpserver 的内网地址, 这时 去 Jumpserver-会话管理-终端管理 接受[Gua]开头的一个注册

六. 配置 Nginx 整合各组件

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

  1. yum -y install nginx

6.2 准备配置文件 修改 /etc/nginx/nginx.conf

  1. server {
  2. listen 80;
  3.  
  4. proxy_set_header X-Real-IP $remote_addr;
  5. proxy_set_header Host $host;
  6. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  7.  
  8. location /luna/ {
  9. try_files $uri / /index.html;
  10. alias /opt/luna/;
  11. }
  12.  
  13. location /media/ {
  14. add_header Content-Encoding gzip;
  15. root /opt/jumpserver/data/;
  16. }
  17.  
  18. location /static/ {
  19. root /opt/jumpserver/data/;
  20. }
  21.  
  22. location /socket.io/ {
  23. proxy_pass http://localhost:5000/socket.io/;
  24. proxy_buffering off;
  25. proxy_http_version 1.1;
  26. proxy_set_header Upgrade $http_upgrade;
  27. proxy_set_header Connection "upgrade";
  28. }
  29.  
  30. location /guacamole/ {
  31. proxy_pass http://localhost:8081/;
  32. proxy_buffering off;
  33. proxy_http_version 1.1;
  34. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  35. proxy_set_header Upgrade $http_upgrade;
  36. proxy_set_header Connection $http_connection;
  37. access_log off;
  38. }
  39.  
  40. location / {
  41. proxy_pass http://localhost:8080;
  42. }
  43. }

6.3 运行 Nginx

  1. nginx -t
  2. service nginx start

6.4 访问 http://部署机器IP

jumpserver install的更多相关文章

  1. jumpserver 堡垒机环境搭建(图文详解)

    摘要: Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 完全开源,GPL授权 Python编 ...

  2. jumpserver跳板机

    一.安装依赖包 yum -y install epel-release yum clean all && yum makecache yum -y update yum -y inst ...

  3. jumpserver安装详解

    环境说明 主机为最小 安装的centos6.9 x86_64. [root@m01 ~]# cat /etc/redhat-release CentOS release 6.9 (Final) [ro ...

  4. Jumpserver部署与安装

    jumpserver特点: 完全开源,GPL授权 Python编写,容易再次开发 实现了跳板机基本功能,认证.授权.审计 集成了Ansible,批量命令等 支持WebTerminal Bootstra ...

  5. jumpserver 堡垒机环境搭建(图文具体解释)

    Jumpserver 是一款由python编写开源的跳板机(堡垒机)系统,实现了跳板机应有的功能.基于ssh协议来管理,客户端无需安装agent. 特点: 全然开源,GPL授权 Python编写.容易 ...

  6. jumpserver在centos 7上的部署

    cd /opt/git clone https://github.com/jumpserver/jumpserver.gitcd jumpservergit checkout master 准备安装: ...

  7. jumpserver篇--安装(高可用性 mariadb+haproxy)

    1. 需求 为了解决目前登陆方式多种多样,防火墙配置复杂,历史操作无记录,用户权限混乱等等 2. Jumpserver测试环境搭建 2.1. 环境 os:CentOS release 6.8 mini ...

  8. jumpserver篇--安装

    参考:https://github.com/jumpserver/jumpserver/wiki/%E5%AE%89%E8%A3%85%E5%9B%BE%E8%A7%A3 服务器环境: ip:192. ...

  9. JumpServer 跳板机系统

    Jumpserver项目为开源项目,截至到目前最新版本为4.0,4.0功能并不完整,无上传.下载功能,配置复杂.启动服务也较繁琐,推荐使用0.3.2版本,文档较全,安装简单文档链接https://gi ...

随机推荐

  1. numpy安装失败-小失误

    1. 古老的方法:            安装python numpy库AMD64 失败,网上的教程是这样的:http://www.cnblogs.com/zhuyp1015/archive/2012 ...

  2. java 基础回顾1

    整理----加自己理解------网上参考----- java封装理念 一 概念: 隐藏对象的属性和实现细节,仅供对外提供公共访问方式. 二 好处 1)  将变量隔离 2)  便于使用 3)  提高重 ...

  3. jsonp的作用

    jsonp(即JSON with padding),也就是json填充. 背景: json格式的数据对比xml格式的数据,性能上已经有了很大的提升.但是json可以被本地执行仍然会导致几个重要的性能问 ...

  4. elasticsearch重建索引

    1.重建索引 一个field的设置是不能被修改的,如果要修改一个Field,那么应该重新按照新的mapping,建立一个index,然后将数据批量查询出来,重新用bulk api写入index中 批量 ...

  5. 无需编写代码,API业务流程测试,零代码实现

    引言 除了测试单个接口,我们常常需要对多个有数据或者逻辑关联的接口进行业务流程测试,例如获取验证码-注册-登录.传统测试业务流程需要编写一系列测试代码,现在通过eoLinker全UI界面,无需编写任何 ...

  6. 在阿里云的ubuntu服务器上安装xampp时出现unable to realloc unable to realloc 8380000 bytes错误

    在阿里云的ubuntu服务器上安装xampp时出现unable to realloc unable to realloc 8380000 bytes错误 解决:增加Swap空间(阿里云缺省没有分配任何 ...

  7. Linux基础:uniq命令总结

    本文只总结一些常用的用法,更详细的说明见man uniq和 uniq --help. uniq命令 uniq命令主要用于去重. 需要注意的是,不相邻的行不算重复值. 语法格式 Usage: uniq ...

  8. CSS学习笔记之基本介绍

    1.简介 层叠样式表(Cascading Style Sheets,CSS)允许我们把样式设置存储在文件中,从而将内容与表现分离 当同一个 HTML 元素被不只一个样式定义时,最终的样式确定顺序如下( ...

  9. Vue CLI 3.x 简单体验

    文档 中文文档 补充于02月10日 vue脚手架的3.x版本已经在开发中,现在还处于alpha版本.我们来看看有哪些变化. 使用 npm install -g @vue/cli 命名方式已经改为npm ...

  10. js setTimeout函数

    最近在看JS DOM编程艺术,在第十章的动画里面有个setTimeout函数的例子中涉及了很多的引号,研究了好大一会才看明白,综合网上各个大神的解释和自己的理解,其原理是这样的: 首先看下程序源代码: ...