Jumpserver 4.0 尝试部署及踩的坑

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 一、jumpserver前置环境依赖安装JumpServer是国人(广宏伟)组织开发的一款完全开源的跳板机系统,用于自动化运维等。其基于python,能够方便地进行二次开发。

一、jumpserver前置环境依赖安装

JumpServer是国人(广宏伟)组织开发的一款完全开源的跳板机系统,用于自动化运维等。其基于python,能够方便地进行二次开发。官方地址http://www.jumpserver.org/

image.png

首先需要安装python的一些环境,这里需要先更新yum源。
epel是centos等衍生发行版,用来弥补centos内容更新有时比较滞后或是一些扩展的源缺失。
Yum install epel-release


image.png

之后使用yum clean all和yum makecache来配置下yum。
yum clean all 清除缓存目录下的软件包及旧的headers,yum makecache 是 将服务器上的软件包信息 现在本地缓存,以提高搜索、安装软件的速度。


image.png

执行yum update


image.png

最后安装必要的一些软件和依赖。
yum -y install git python-pip mysql-devel gcc automake autoconf python-devel vim sshpass lrzsz readline-devel,
yum -y install sqlite-devel libffi-devel openssl-devel
由于试验机已经安装工git等一些工具,实际试验中省去了一些:


image.png

image.png

PS:
1、sshpass 是一个简单、轻量级的命令行工具,通过它我们能够向命令提示符本身提供密码(非交互式密码验证),这是在jumpserver中便于控制客户端,有不安全因素,不在生产环境使用。
2、Lrzsz是linux中可以替代ftp进行文件上传下载的软件。

三、JumpServer下载安装以及配置
通过GIt获得git clone https://github.com/jumpserver/jumpserver

image.png

image.png

image.png

之后进入jumpserver目录下,查看发现一个requirement.txt文件,里面是需要的python模块拓展包。
使用pip install -r requirement.txt安装需要的拓展,以下是安装完成后:


image.png

python拓展安装后,可能还有没有安装的系统依赖,jumpserver的requirements目录下的rpm_requirements.txt给出了所有的需要依赖,谨慎起见,继续安装这个文件的内容:
Yum intstall -y cat rpm_requirements.txt

image.png

image.png

所有依赖完成后,需要配置文件,jumpserver中已经给出了一个config的demo,直接复制自定义修改即可:


image.png

在配置文件中,邮件发送和通知需要修改邮件配置部分,如图:

image.png

最后,需要初始化数据库,操作如下:
cd utils
Chmod +x make_migrations.sh init_db.sh
sh make_migrations.sh
sh init_db.sh


image.png
image.png

最后,需要安装REDIS服务支持:
Yum install -y redis


image.png

REDIS安装完成之后,启动REDIS服务。
Service redis start


image.png

使用netstat -tunlp|grep 6379来查看redis是否已开端口


image.png

REDIS启动成功!
最后,运行run_server.py启动jumpserver服务:
Python run_server.py

image.png

image.png

JumpServer启动成功。这是直接在前台启动服务,如果需要在后台运行,可以使用nohup或者screen,本文此处以screen为例:
使用screen -S jumpserver python run_server.py


image.png

image.png

可以通过screen -list查看已经在后台开启screen
使用screen -r 97975可以跳转到jumpserver的界面,使用ctrl+a后按d键可以回到tty。
至此,安装JumpServer完毕。

二、JumpServer的简单使用

服务启动后,通过访问http://主机ip:8080进行WEB端的访问,8080端口可以在config.py中修改。
本服务搭建在实验虚拟机中,以NAT模式接入网络,查看IP地址如下:
192.168.128.143

image.png

在其他虚拟上上使用此IP访问,一开始发现无法连接,一直连接超时,通过telnet 192.168.128.143 8080 端口似乎被防火墙阻塞,但是通过iptables -L查看发现并没有拦截8080端口的规则。
尝试关闭iptables,发现服务已经不可用。后来想起来Centos7中使用firewall代替了iptables。本文中为便捷,直接关闭firewall,而没有添加允许8080端口的规则(不建议这样做):

Service firewalld stop
再次访问:


image.png

其中,默认账号密码都为:admin

image.png

新建立一个管理用户dbstar(客户端上已存在用户且有sudo权限):


image.png

新建立一个资产(主机):


image.png

新建立一授权规则:

image.png

可以获取客户端主机信息等:


image.png

在新建系统用户功能上,会出现报错:


image.png
通过github项目的issue中查找,发现是python版本问题,JumpServer 0.4已经基于python3.6,而系统中python默认是python2.7,需要安装python3.6环境。
以下给出与python2.7兼容下,源码安装python3.6,
在此写成shell脚本集成”python3.6.1_install.sh”:
#!/bin/sh
#简单判断操作系统,仅在centos下运行

OS=cat /etc/*release |grep centos
if [ ! -n "$OS" ]; then

# 退出shell脚本并返回状态码1

echo “只在centos下!”
exit 1
else
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
fi

#从官网获取python3.6.1源码压缩包

wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz

#创建python3.6目录文件

mkdir /usr/local/python3

#复制包到目录

cp Python-3.6.1.tgz /usr/local/python3
rm -rf Python-3.6.1.tgz

#切换目录

cd /usr/local/python3/

#解压缩

tar zxvf /usr/local/python3/Python-3.6.1.tgz

#进入压缩后的文件

cd /usr/local/python3/Python-3.6.1

#配置准备编译,设定安装目录在/usr/local/python3

./configure --prefix=/usr/local/python3

#开始编译安装

make&&make install

#软连接到用户命令环境

ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
echo “python3.6 complete!!!”

#安装完成,接下来切换python3.6环境

cd /opt

#创建虚拟环境(python3后自带支持)

python3 -m venv py36

#启用python3.6.1的环境

source /opt/py36/bin/activate
echo “all operation complete!!!”

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
相关文章
|
5月前
|
应用服务中间件 Linux 程序员
老程序员分享:nginx安装及其配置详细教程
老程序员分享:nginx安装及其配置详细教程
|
6月前
|
负载均衡 应用服务中间件 nginx
快速上手:Tomact集群配置(图文并茂)
快速上手:Tomact集群配置(图文并茂)
|
6月前
|
人工智能 Oracle jenkins
【Jenkins】新手安装、运行Jenkins(详细教学)
【Jenkins】新手安装、运行Jenkins(详细教学)
|
11月前
|
前端开发 Java 数据安全/隐私保护
Jpom插件端管理项目部署
Jpom插件端管理项目部署
122 0
|
关系型数据库 Linux PHP
LAMP环境下部署项目管理软件--禅道
LAMP环境下部署项目管理软件--禅道
57 0
|
网络协议 Docker 容器
openvpn(全套自动化脚本)奉上!
openvpn(全套自动化脚本)奉上!
|
存储 Ubuntu Java
还在用Jenkins?试试Gitlab的CI/CD功能吧,贼带劲!
还在用Jenkins?试试Gitlab的CI/CD功能吧,贼带劲!
|
运维 jenkins Shell
docker | jenkins 自动化CI/CD,后端躺着把运维的钱挣了!(下)
在本篇文章中,将讲解使用jenkins帮助我们监听git仓库的变化,一旦有新的push到master分支,jenkins服务则从gitee主动拉取项目代码,构建新镜像(**借助上一节编写好的Dockerfile文件**),然后**删除同名旧镜像和旧容器,部署新容器**。
259 0
docker | jenkins 自动化CI/CD,后端躺着把运维的钱挣了!(下)
|
弹性计算 安全 关系型数据库
从linux安装到完整项目部署到项目运行(全流程)
linux是一般用来部署项目。 安装linux操作系统,一般可以采用云服务器,和vmware软件虚拟机。前者需要购买,后者可以使用破解版。这里使用的是云服务器。[阿里云](https://account.aliyun.com/)(价格相对便宜,仅供学习使用,其它使用途径,买贵的)
1054 0