jumpserver v0.4.0 基于 CenOS7 的安装详解

标签(linux): jumpserver

笔者Q:972581034 交流群:605799367。有任何疑问可与笔者或加群交流

首首先使用Jumpserver前要理解清楚这三个用户关系:

1.用户:

是指你在web上创建的用户,会在跳板机上创建这个用户,作用就是用于登录跳板机

2.管理用户:

是指客户端上的如root等高权限账号(或普通用户拥有NOPASSWD: ALL sudo权限), 作用用于推送系统用户

3.系统用户:

是指要在客户端上创建这个系统用户,通过推送来实现,作用就是登录客户端

4.管理用户和系统用户的关系:

两者都是客户端上的用户,后者涉及到一个推送动作,

比如推送test系统用户,也就是在客户端上创建test用户,那么创建用户需要有权限,有没有权限创建就要看你是用客户端的root用户还是普通用户做为管理用户,如果后者做为管理用户就需要添加sudo权限又是NOPASSWD: ALL,这样推送系统用户,就可以成功在客户端上创建test用户

环境

[root@jumpserver ~]# cat /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core)

一. 准备Python3和Python虚拟环境

1.1 安装依赖包

yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel

1.2 编译安装

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

1.3 建立python虚拟环境

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

cd /opt
python3 -m venv py3
source /opt/py3/bin/activate

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

(py3) [root@localhost py3]#

二. 安装Jumpserver 0.4.0

2.1 下载或clone项目

项目提交较多git clone时较大,你可以选择去github项目页面直接下载 zip包,我的网速好,我直接clone了
 cd /opt/git clone https://github.com/jumpserver/jumpserver.git

2.2 安装依赖rpm包

 cd /opt/cd jumpserver/requirementsyum -y install epel-releaseyum -y install $(cat rpm_requirements.txt)  # 如果没有任何报错请继续

2.3 安装python库依赖

 pip install -r requirements.txt  # 如果没有任何报错请继续

2.4 安装Redis, jumpserver使用celery依赖

 yum -y install redissystemctl start redis

2.5 安装MySQL

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

 yum -y install mariadb mariadb-devel mariadb-server # centos7下安装的是mariadb,阿里云默认源的/etc/my.cnf可能导致不能启动systemctl  start mariadb
service mariadb start

2.6 创建数据库 jumpserver并授权

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

2.7 安装 python3 mysql驱动: mysqlclient

#由于MySQLdb库不支持 python3.5+,所以选择了mysqlclient作为驱动,pymysql使用python写的,速度较慢pip install mysqlclient

2.8 修改jumpserver配置文件

 cd /opt/jumpservercp config_example.py config.pyvi config.py  # 我们计划修改 DevelopmentConfig中的配置,因为默认jumpserver是使用该配置,它继承自Config
class DevelopmentConfig(Config):DEBUG = TrueDISPLAY_PER_PAGE = 20DB_ENGINE = 'mysql'DB_HOST = '127.0.0.1'DB_PORT = 3306DB_USER = 'jumpserver'DB_PASSWORD = 'somepassword'DB_NAME = 'jumpserver'EMAIL_HOST = 'smtp.exmail.qq.com'EMAIL_PORT = 465EMAIL_HOST_USER = 'a@jumpserver.org'EMAIL_HOST_PASSWORD = 'somepasswrd'EMAIL_USE_SSL = TrueEMAIL_USE_TLS = FalseEMAIL_SUBJECT_PREFIX = '[Jumpserver] 'SITE_URL = 'http://192.168.244.144:8080'

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

 cd /opt/jumpserver/utilsbash make_migrations.shbash init_db.sh

2.10 运行Jumpserver

source /opt/py3/bin/activate
cd /opt/jumpserver
python run_server.py

运行不报错,请浏览器访问 http://192.168.244.144:8080/ 账号: admin 密码: admin

三. 安装 SSH Server: Coco

3.1 下载clone项目

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

 source /opt/py3/bin/activatecd /optgit clone https://github.com/jumpserver/coco.git

3.2 安装依赖

 cd /opt/coco/requirementsyum -y  install $(cat rpm_requirements.txt)pip install -r requirements.txt

3.3 查看配置文件并运行

 cd /opt/cococat config.pypython run_server.pyERROR:root:Load access key failed
Using access key 311d0e77-5ec9-4c46-a131-7409e1daf271:***
WARNING:/opt/coco/coco/service.py:App auth failed, Access key error or need admin active it

这时需要去 jumpserver管理后台-应用程序-终端(http://192.168.244.144:8080/applications/terminal/)接受coco的注册

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

这时完成安装

3.4 测试连接

 ssh -p2222 admin@192.168.244.144

密码: admin
如果是用Xshell登录语法如下

ssh admin@192.168.244.144 2222

密码: admin
如果能登陆代表部署成功

四. 安装 Web Terminal: Luna

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

4.1 下载clone项目

source /opt/py3/bin/activatecd /optgit clone https://github.com/jumpserver/luna.git

4.2 安装依赖

 cd /opt/luna/requirementsyum -y install $(cat rpm_requirements.txt)pip install -r requirements.txt

4.3 查看配置文件并运行

 cd /opt/lunacat config.pypython run_server.pyERROR:root:Load access key failed
Using access key 5bfdbf63-bef5-4cfb-9e31-2d873bdddb03:***
WARNING:luna.service:App auth failed, Access key error or need admin active it

4.4 同样去jumpserver管理后台接受luna注册

应用程序-终端 接受

Luna version 0.4.0, more see https://www.jumpserver.org
Starting web server at 0.0.0.0:5000
Quit the server with CONTROL-C.

4.5 测试

访问 http://192.168.244.144:5000

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node.js中事件的循环

Node.js 事件循环 Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高。 Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发。 Node.js 基本上所有的事…

python爬boss网站_python之requests爬虫Boss数据

python之requests爬虫Boss数据需要用到的库:reqeusts、lxml没有的可以用直接下载pip install requestspip install lxm这里以python岗位,地点北京为例爬取的数据就是岗位名称、薪资、地点 首先导入需要用到的模块import requestsfrom lxml import etree岗…

live555源代码简介

文章出自:http://blog.csdn.net/imliujie/archive/2008/01/30/2072657.aspx live555源代码简介liveMedia项目的源代码包括四个基本的库,各种测试代码以及IVE555 Media Server。四个基本的库分别是UsageEnvironment&TaskScheduler,groups…

并发无锁队列学习(单生产者单消费者模型)

1、引言 本文介绍单生产者单消费者模型的队列。依据写入队列的内容是定长还是变长,分为单生产者单消费者定长队列和单生产者单消费者变长队列两种。单生产者单消费者模型的队列操作过程是不须要进行加锁的。生产者通过写索引控制入队操作,消费者通过读索…

ecshop 收货人信息电话必填改为手机必填

首先通过在flow.dwt中,查找flow.php?stepconsignee中的关键字 consignee(结算中心)查找所在模板/Library/consignee.lbi 大概57行 把必填去掉,其次 在js/shopping_flow.js里边注释掉 if (Utils.isEmpty(frm.elements[‘tel’].v…

流媒体传输协议

1.流媒体( Streaming Media) 1.1流媒体概念 流媒体技术是网络技术和多媒体技术发展到一定阶段的产物。术语流媒体既可以指在网上传输连续时基媒体的流式技术,也可以指使用流式技术的连续时基媒体本身。在网上传输音频、视频等多媒体信息目前主要有两种方式:下载和流…

关闭浏览器网页触发事件_浅析浏览器渲染和 script 加载

前言前端代码离不开浏览器环境,理解 js、css 代码如何在浏览器中工作是非常重要的。如何优化渲染过程中的回流,重绘?script 脚本在页面中是怎么个加载顺序?了解这些对前端性能优化起着非常大的作用。借着这篇文章,让自…

Open vSwitch实验常用命令

1. 基本架构 ovs-vsctl: 管理ovsdb-server的配置,提供OVSDB的配置方法,包括创建和删除网桥、端口等; ovs-ofctl: 提供ovs-vswitchd的流表配置方法; ovs-dpctl: 配置OVS内核模块,提供缓存流表的操作方法&#xff1b…

记IOS8中碰到的一个JS bug

IOS8的JS版本过低导致 var id "123"; var temp1 {id, "left": "200"}; // error in IOS8 var temp2 {"id":id, "left": "200"};平时还是多写ES5的代码,es6的语法总能碰到兼容的坑。 改了好几天。…

Emmet的html语法

Emmet的html语法 所有操作按下“tab”键即可瞬间完成 元素 1.在编辑器中输入元素名称,即可自动补全生成 HTML 标签,即使不是标准的 HTML 标签。 2.输入:! 或者 html:5 或者 html:4s 或者 html:4t 将自动补全html基本结构 嵌套操作 1.使用…

RTP Payload Format for H.264 Video

H.264 RTP协议的封装格式rfc3984 英文原版:http://tools.ietf.org/html/rfc3984 部分中文翻译: H.264 视频 RTP 负载格式 1. 网络抽象层单元类型 (NALU) NAL单元1字节包头负载 NALU 头由一个字节组成, 它的语法如下: —————|0|1|2|3|4|5|6|7|------…

js字符串、数组和数字常用方法总结

https://github.com/AnHyun/blog/issues/3 一、string 常用方法: 1.substring(start开始位置的索引,end结束位置索引) 截取的位置不包含结束位置的字符,只写一个参数表示从开始位置截取到最后,输入负值时将负值变为0,哪个较小作为开始位置 va…

Oracle 存储过程错误之PLS-00201: 必须声明标识符

转自:http://blog.csdn.net/u010678947/article/details/20702149 错误: ORA-06550: 第 1 行, 第 7 列: PLS-00201: 必须声明标识符ZUO.PROCE_TESTORA-06550: 第 1 行, 第 7 列: PL/SQL: Statement ignored 解决方法: (1&#x…

mysql中如何把两个查询结果列数不同并成一张表_MySQL

引言本文整理了MySQL相关的知识,方便以后查阅。 基础架构下图是 MySQL 的一个简要架构图,从下图你可以很清晰的看到用户的 SQL 语句在 MySQL 内部是如何执行的。 先简单介绍一下下图涉及的一些组件的基本作用帮助大家理解这幅图。 - 连接器: …

JavaWeb笔记01-XML

今日内容 XML 概念语法解析 XML: 概念: Extensible Markup Language 可扩展标记语言 可扩展:标签都是自定义的.<user><student> 功能 存储数据 配置文件在网络中传输 一个故事 由于浏览器之间的竞争,导致HTML发展的十分不顺利 用户:唉,这怎么报错了呢?…

centos下如何使用sendmail发送邮件

最近在实施服务端日志监控脚本&#xff0c;需要对异常情况发送邮件通知相关责任人&#xff0c;记录下centos通过sendmail发送邮件的配置过程。一. 安装sendmail和mailx1、安装sendmail&#xff1a;1): centos下可以安装命令:yum install -y sendmail service sendmail start yu…

H.263 H.263+ Payload Type

h263 rtp协议封装协议英文版&#xff1a;rfc4629:http://tools.ietf.org/html/rfc4629 以下文章是部分参考翻译&#xff1a; 文章出处&#xff1a; http://blog.csdn.net/zblue78/archive/2009/04/09/4059414.aspxGeneral H.263 Payload Header The H.263 payload header is s…

OC 中 load 方法和 initialize 方法的异同

(void)load; 当类对象被引入项目时, runtime 会向每一个类对象发送 load 消息load 方法会在每一个类甚至分类被引入时仅调用一次,调用的顺序:父类优先于子类, 子类优先于分类load 方法不会被类自动继承 (void)initialize; 也是在第一次使用这个类的时候会调用这个方法 转载于:h…

scrapy框架_Python学习之Scrapy框架

爬虫界江湖地位No.1说起Python&#xff0c;不得不说到它的爬虫应用&#xff0c;由于Python的短小精悍&#xff0c;用它来开发爬虫应用是最合适不过了&#xff0c;基于Python抓取网页的库有很多&#xff0c;例如requests,beatifulsoup等等&#xff0c;但是要说到有哪一个框架&am…

JavaWeb笔记03-Servlet

今日内容 ServletHTTP协议Request Servlet 概念 步骤 执行原理 生命周期 Servlet3.0注解配置 Servlet的体系结构 Servlet – 接口 GenericServlet – 抽象类:将Servlet接口中其他方法做了默认空实现,只将service()方法作为抽象 将来定义Servlet类时候,可以继承Generic…