centos7.4安装部署jumpserver(数据库外置)配置全过程--无问题

一、jumpserver概述
jumpserver是全球首款完全开源的堡垒机,使用Python/django进行开发,遵循GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal,交互美观,支持分布式架构,可以对多机房跨区域部署。jumpserver好比是军事界的瑞士军刀,可以将我们的运维管理水平提高到一个专业的水平,如果说仍然还采用CRT或者Xshell进行批量管理的你,jumpserver无疑是雪中送炭。

1、jumpserver架构说明

组件说明:
(1)、Jumpserver:jumpserver是管理后台,是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API,是jumpserver系统的核心管理终端

(2)、Coco:实现了SSH Server 和 Web Terminal Server 的组件,提供SSH和 WebSocket 接口,使用 Paramiko和Flask开发,是web页面实现SSH的关键组件,在最近的版本中,采用了koko替换了coco,但其作用是一致的

(3)、Guacamole:Jumpserver 使用其组件实现 RDP 功能,Jumpserver 并没有修改其代码而是添加了额外的插件,支持 Jumpserver 调用。在这里的作用是采集Windows资产信息,如果你管理的资产中不涉及windows可以忽略(建议进行安装)

(4)、Luna:现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html等,采用Luna的页面简单美观

(5)、NGINX:WEB服务软件,采用了动静分离的思想,NGINX自身擅长对静态资源的处理(Luna),对于接口以及websocket实现反向代理,是强大的web服务器软件

(6)、DB:采用内置yum安装MySQL,其搭建过程并不在文章中体现,对于本文搭建jumpserver,其实就是用到了db的连接信息



二、安装环境:
系统: CentOS 7.4
IP: 172.16.29.80(购买的阿里云ECS)
设置 selinux 和防火墙

1、关闭防火墙
$ systemctl stop firewall
设置开机不启动防火墙
$ systemctl disable firewalld

2、关闭selinux
$ setenforce 0
$ sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

3、#修改字符集,否则可能报input/output error的问题。
$ localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
$ export LC_ALL=zh_CN.UTF-8
$ echo ‘LANG="zh_CN.UTF-8"‘ > /etc/locale.conf

4、准备Python环境
$ yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release git
$ wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
$ mv Python-3.6.1.tar.xz /usr/src && cd /usr/src/ && tar xvf Python-3.6.1.tar.xz && cd Python-3.6.1
$ ./configure && make && make install
以上是采用源码安装的方式进行Python3.6的安装,也可以yum安装Python3.6环境,如下:
$ yum -y install python36 python36-devel

如果下载速度很慢, 可以换国内源
$ wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
$ yum -y install python36 python36-devel
准备Python的虚拟环境
$ cd /opt
$ python3.6 -m venv py3
$ source /opt/py3/bin/activate
看到下面的提示符代表成功, 以后运行 Jumpserver 都要先运行以上 source 命令, 以下所有命令均在该虚拟环境中运行
(py3) [[email protected] py3]



三、安装jumpserver

网上安装配置jumpserver的比较多,但本文以官网为参考依据,但官网部署采用方式,对于github的访问存在一些问题,慢速极慢。因此先解决github满的问题,解决方案比较多,但比较靠谱的推荐镜像中转,本文推荐码云中转。
官网安装文档地址:https://jumpserver.readthedocs.io/zh/master/setup_by_localcloud.html,文章中使用的jumpserver的git地址为https://github.com/jumpserver/jumpserver.git ,以此为例子,解决git clone慢的问题
1、码云中转解决git clone慢的问题
注册一个码云账号:https://gitee.com/
下图是jumpserver在github的地址,复制一下https地址

在码云的工作台,点击新建仓库

导入已有仓库,即jumpserver在github的地址

后面在安装jumpserver的时候将github地址修改为国内镜像地址,我中转在码云的公开jumpserver地址:https://gitee.com/yunwen_1_hlzhang/jumpserver.git

2、安装jumpserver
过程参考jumpserver安装官方文档,此处不做一一

(1)以下过程可以直接执行

&& yum update -y && ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && yum -y install kde-l10n-Chinese && localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8 && export LC_ALL=zh_CN.UTF-8 && echo ‘LANG="zh_CN.UTF-8"‘ > /etc/locale.conf && yum -y install wget gcc epel-release git && yum install -y yum-utils device-mapper-persistent-data lvm2 && yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && yum makecache fast && rpm --import https://mirrors.aliyun.com/docker-ce/linux/centos/gpg && echo -e "[nginx-stable]\nname=nginx stable repo\nbaseurl=http://nginx.org/packages/centos/\$releasever/\$basearch/\ngpgcheck=1\nenabled=1\ngpgkey=https://nginx.org/keys/nginx_signing.key" > /etc/yum.repos.d/nginx.repo && rpm --import https://nginx.org/keys/nginx_signing.key && yum -y install redis mariadb mariadb-devel mariadb-server MariaDB-shared nginx docker-ce && systemctl enable redis mariadb nginx docker && systemctl start redis mariadb && yum -y install python36 python36-devel && python3.6 -m venv /opt/py3

(2)、替换github的地址,安装jumpserver、koko和guacamole组件,其中koko和guacamole采用docker安装

  && cd /opt   && if [ ! -d "/opt/jumpserver" ]; then git clone --depth=1 https://gitee.com/yunwen_1_hlzhang/jumpserver.git; fi   && if [ ! -f "/opt/luna.tar.gz" ]; then wget https://demo.jumpserver.org/download/luna/1.5.6/luna.tar.gz; tar xf luna.tar.gz; chown -R root:root luna; fi   && yum -y install $(cat /opt/jumpserver/requirements/rpm_requirements.txt)   && echo -e "[easy_install]\nindex_url = https://mirrors.aliyun.com/pypi/simple/" > ~/.pydistutils.cfg   && source /opt/py3/bin/activate   && pip install wheel -i https://mirrors.aliyun.com/pypi/simple/   && pip install --upgrade pip setuptools -i https://mirrors.aliyun.com/pypi/simple/   && pip install -r /opt/jumpserver/requirements/requirements.txt -i https://mirrors.aliyun.com/pypi/simple/   && mkdir /etc/docker   && wget -O /etc/docker/daemon.json http://demo.jumpserver.org/download/docker/daemon.json   && systemctl restart docker   && docker pull wojiushixiaobai/jms_koko:1.5.6   && docker pull wojiushixiaobai/jms_guacamole:1.5.6   && rm -rf /etc/nginx/conf.d/default.conf   && wget -O /etc/nginx/conf.d/jumpserver.conf https://demo.jumpserver.org/download/nginx/conf.d/jumpserver.conf

在pip安装MarkupSafe时会报如下错误:

由于python3中的setuptools已经升级到46以上,因此需要将官网中pip install --upgrade pip setuptools修改为pip install --upgrade pip setuptools==45.2.0即可,本文已经做了调整,这个也是官网安装过程中的bug
以上脚本也会存在相关插件版本的问题,如下图:

可以单独使用pip install pyasn1-modules==版本号

(3)、处理安装后的相关配置,以下采用jumpserver官方配置,但直接执行后对于其细节不是很清楚,因此本文对于配置采用手动方式,如下为jumpserver官网配置、手工配置参考参考文档:http://www.51niux.com/?id=234或者https://segmentfault.com/a/1190000015086911 ,这两篇博客是笔者参考的比较多的,经过多次实战挑出来的。

 && source ~/.bashrc   && if [ "$DB_PASSWORD" = "" ]; then DB_PASSWORD=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 24`; fi   && if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; fi   && if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; fi   && if [ "$Server_IP" = "" ]; then Server_IP=`ip addr | grep ‘state UP‘ -A2 | grep inet | egrep -v ‘(127.0.0.1|inet6|docker)‘ | awk ‘{print $2}‘ | tr -d "addr:" | head -n 1 | cut -d / -f1`; fi   && if [ ! -d "/var/lib/mysql/jumpserver" ]; then mysql -uroot -e "create database jumpserver default charset ‘utf8‘;grant all on jumpserver.* to ‘jumpserver‘@‘127.0.0.1‘ identified by ‘$DB_PASSWORD‘;flush privileges;"; fi   && if [ ! -f "/opt/jumpserver/config.yml" ]; then cp /opt/jumpserver/config_example.yml /opt/jumpserver/config.yml; sed -i "s/SECRET_KEY:/SECRET_KEY: $SECRET_KEY/g" /opt/jumpserver/config.yml; sed -i "s/BOOTSTRAP_TOKEN:/BOOTSTRAP_TOKEN: $BOOTSTRAP_TOKEN/g" /opt/jumpserver/config.yml; sed -i "s/# DEBUG: true/DEBUG: false/g" /opt/jumpserver/config.yml; sed -i "s/# LOG_LEVEL: DEBUG/LOG_LEVEL: ERROR/g" /opt/jumpserver/config.yml; sed -i "s/# SESSION_EXPIRE_AT_BROWSER_CLOSE: false/SESSION_EXPIRE_AT_BROWSER_CLOSE: true/g" /opt/jumpserver/config.yml; sed -i "s/DB_PASSWORD: /DB_PASSWORD: $DB_PASSWORD/g" /opt/jumpserver/config.yml; fi

(4)、设置相关开机启动项

 if [ ! -f "/usr/lib/systemd/system/jms.service" ]; then wget -O /usr/lib/systemd/system/jms.service https://demo.jumpserver.org/download/shell/centos/jms.service; chmod 755 /usr/lib/systemd/system/jms.service; systemctl enable jms; fi

(5)、启动相关服务

A.启动nginx:nginx
B.启动jumpserver:

  #  ./jms start all
  # ./jms start all -d    -d参数为后台运行jumpserver

3、登录jumpserver
经过以上步骤,输入IP地址,即可进入jumpserver的web登录页面,默认账号密码:admin/admin

登录之后可以看到如下后台

jumpserver的后台管理服务基本OK,但会遇到几个问题:
(1)、web终端进入为空,如下图,即使添加了主机以及相关配置OK了,在web终端中并不显示,注意:web终端的显示需要根据权限管理中的资产授权中进行配置。也就是及时资产配置等都没有问题,仍然在web终端中为空不显示的原因

(2)、文件管理502

koko服务可能没有起来,需要确保一下服务正常
docker启动:systemctl start docker
docker加入开机启动项里面:systemctl enable docker
koko启动且设置开机随docker启动,加入参数:--restart=always
-p参数:端口映射
CORE_HOST为jumpserver的启动ip和端口
BOOTSTRAP_TOKEN参考/op/jumpserver/config.yml

docker run --name jms_koko -d -p 2222:2222 -p 5000:5000 -e CORE_HOST=http://172.16.29.80:8080  -e BOOTSTRAP_TOKEN=BLkJcpJooqdwXixq  --restart=always  wojiushixiaobai/jms_koko:1.5.6

(3)、支持Windows的插件:guacamole
启动guacamole容器服务并设置开机启动:

docker run --name jms_guacamole -d -p 127.0.0.1:8081:8080 -e JUMPSERVER_SERVER=http://172.16.29.80:8080 -e BOOTSTRAP_TOKEN=BLkJcpJooqdwXixq --restart=always wojiushixiaobai/jms_guacamole:1.5.6

通过docker ps -a可以查看两个服务均已启动

关于jumpserver的部署已讲述结束,关于jumpserver的使用配置,将在下节中进行实战描述

原文地址:https://blog.51cto.com/1864156/2478808

时间: 2024-10-11 00:54:54

centos7.4安装部署jumpserver(数据库外置)配置全过程--无问题的相关文章

一次在CentOS7上安装部署Zabbix3.0版本及快速进行基本配置的实例

Zabbix3.0的安装.部署.配置,必须基于LAMP环境或是是LNMP环境. 关于LAMP环境的简单快速搭建,见博客:http://afterdawn.blog.51cto.com/7503144/1923139 注意:以下步骤都是在LAMP配置之后进行的. 本文不会再对zabbix-server和zabbix-agent理论知识再进行介绍,建议看完http://afterdawn.blog.51cto.com/7503144/1922502再进行zabbix实战. Zabbix3.0对软硬件

CentOS7.X安装部署mysql5.7主从环境

生产搭建环境:操作系统:CentOS7.5内存大小:32GB硬盘:500G主库IP:192.168.8.129 hostname:master从库IP:192.168.8.130 hostname:slave 涉及主从都需要执行的地方,文中只写主库的操作指使,从库请自觉执行相同的命令 目录:1.环境准备与清理2.参数调优3.安装部署 1.系统初始化1.1.1. 主从库环境关闭selinux [[email protected]]# sed -i 's/SELINUX=enforcing/SELI

安装部署oracle数据库

部署Oracle数据库 防伪码:宝剑锋从磨砺出,梅花香自苦寒来. 前言:前面我们学习过微软的sqlserver,还有甲骨文公司的mysql,也理解了数据库系统的作用,这两种数据库管理系统适用于软件,网站,游戏等后台数据库,例如我们在学习mysql的时候搭建过动态网站.但oracle属于非常安全.完善的大型数据库管理软件,在电信.银行.证券等大型应用场合拥有着绝对的优势.那么今天就给搭建介绍oracle的安装和基本的使用.Oracle可以安装到windows和linux系统上,但企业更多采用在li

centos7下安装部署tensorflow GPU 版本

系统环境:centos7 1. 安装 Python 2.7 # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc gcc-c++ make # download and extract Python 2.7 su hdfs cd  ~/Downloads curl -O https://www.python.org/ftp/pytho

CentOS7安装MySQL5.7数据库以及配置

  一.MySQL5.7主要特性: 原生架构支持centos7的Systemd (1.)更好的性能:对于多核的CPU.固态硬盘.锁有着更好的优化.更好的innoDB存储引擎. (2.)更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也 可以选择使用MySQL数据库. (3.)新增sys库:以后这会是DBA访问最频繁的库 (4.)更好的优化器:优化器的代码重构的意义将在5.7版本及以后的版本中带来巨大的改进 oracle官方正在解决MySQL之前最大的难题,原生JSON类型的支持

linux centos7 nginx 安装部署和配置

1/什么是NginxNginx("enginex")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器,在高连接并发的情况下Nginx是Apache服务器不错的替代品.其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.目前中国大陆使用nginx网站用户有:新浪.网易.腾讯,另外知名的微网志Plurk也使用nginx.Nginx作为负载均衡服务器,既可以在内部直接支持Rails和PHP程序对外进行服务,也可以

CentOS7下安装部署LAMP环境

(1)配置概要:  1. 172.16.100.31主机运行httpd+php服务(php为模块工作模式)  配置两台虚拟主机:wordpress个人博客系统.PHPmyadmin远程控制mysql 2.172.16.100.31主机运行mariadb服务(mysql) (2)配置流程:  首先配置172.16.100.31主机:http服务              1.安装程序:[[email protected]'s linux ~]# yum install httpd php php-

基于centos7.3安装部署jewel版本ceph集群实战演练

一.环境准备 安装centos7.3虚拟机三台 由于官网源与网盘下载速度都非常的慢,所以给大家提供了国内的搜狐镜像源:http://mirrors.sohu.com/centos/7.3.1611/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso 在三台装好的虚拟机上分别加三块100G的硬盘.如图所示: 3.配置ip ceph-1 ceph-2 ceph-3 192.168.42.200 192.168.42.201 192.168.42.203 修改可参照下面的

CentOS7.X安装部署Glassfish4.1.2

生产搭建环境:操作系统:CentOS7.5内存大小:16GB硬盘:100G注:正文中的参数与部署路径等,请根据实际需求修改1.软件准备:jdk-8u161-linux-x64.rpmglassfish-4.1.2.zip2.jdk的环境安装与配置(1)创建路径,并上传jdk安装包,这里使用的是rpm包 #mkdir /opt/software/#rpm -ivh /opt/software/jdk-8u161-linux-x64.rpm (2)配置java环境 #vi /etc/profile添