Jumpserver 4.0 嘗試部署及踩的坑

一、jumpserver前置環(huán)境依賴安裝

JumpServer是國人(廣宏偉)組織開發(fā)的一款完全開源的跳板機系統(tǒng),用于自動化運維等。其基于python,能夠方便地進行二次開發(fā)。官方地址http://www.jumpserver.org/

image.png

首先需要安裝python的一些環(huán)境,這里需要先更新yum源。
epel是centos等衍生發(fā)行版,用來彌補centos內容更新有時比較滯后或是一些擴展的源缺失。
Yum install epel-release


image.png

之后使用yum clean all和yum makecache來配置下yum。
yum clean all 清除緩存目錄下的軟件包及舊的headers,yum makecache 是 將服務器上的軟件包信息 現(xiàn)在本地緩存,以提高搜索、安裝軟件的速度。


image.png

執(zhí)行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中便于控制客戶端,有不安全因素,不在生產環(huán)境使用。
2、Lrzsz是linux中可以替代ftp進行文件上傳下載的軟件。

三、JumpServer下載安裝以及配置
通過GIt獲得git clone https://github.com/jumpserver/jumpserver

image.png

image.png

image.png

之后進入jumpserver目錄下,查看發(fā)現(xiàn)一個requirement.txt文件,里面是需要的python模塊拓展包。
使用pip install -r requirement.txt安裝需要的拓展,以下是安裝完成后:


image.png

python拓展安裝后,可能還有沒有安裝的系統(tǒng)依賴,jumpserver的requirements目錄下的rpm_requirements.txt給出了所有的需要依賴,謹慎起見,繼續(xù)安裝這個文件的內容:
Yum intstall -y cat rpm_requirements.txt

image.png

image.png

所有依賴完成后,需要配置文件,jumpserver中已經給出了一個config的demo,直接復制自定義修改即可:


image.png

在配置文件中,郵件發(fā)送和通知需要修改郵件配置部分,如圖:

image.png

最后,需要初始化數(shù)據庫,操作如下:
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訪問,一開始發(fā)現(xiàn)無法連接,一直連接超時,通過telnet 192.168.128.143 8080 端口似乎被防火墻阻塞,但是通過iptables -L查看發(fā)現(xiàn)并沒有攔截8080端口的規(guī)則。
嘗試關閉iptables,發(fā)現(xiàn)服務已經不可用。后來想起來Centos7中使用firewall代替了iptables。本文中為便捷,直接關閉firewall,而沒有添加允許8080端口的規(guī)則(不建議這樣做):

Service firewalld stop
再次訪問:


image.png

其中,默認賬號密碼都為:admin

image.png

新建立一個管理用戶dbstar(客戶端上已存在用戶且有sudo權限):


image.png

新建立一個資產(主機):


image.png

新建立一授權規(guī)則:

image.png

可以獲取客戶端主機信息等:


image.png

在新建系統(tǒng)用戶功能上,會出現(xiàn)報錯:


image.png
通過github項目的issue中查找,發(fā)現(xiàn)是python版本問題,JumpServer 0.4已經基于python3.6,而系統(tǒng)中python默認是python2.7,需要安裝python3.6環(huán)境。
以下給出與python2.7兼容下,源碼安裝python3.6,
在此寫成shell腳本集成”python3.6.1_install.sh”:
#!/bin/sh
#簡單判斷操作系統(tǒng),僅在centos下運行

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

# 退出shell腳本并返回狀態(tài)碼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

#創(chuàng)建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

#軟連接到用戶命令環(huán)境

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環(huán)境

cd /opt

#創(chuàng)建虛擬環(huán)境(python3后自帶支持)

python3 -m venv py36

#啟用python3.6.1的環(huán)境

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容