一响牛、jumpserver前置環(huán)境依賴安裝
JumpServer是國人(廣宏偉)組織開發(fā)的一款完全開源的跳板機系統(tǒng)瞬捕,用于自動化運維等。其基于python丰介,能夠方便地進行二次開發(fā)背蟆。官方地址http://www.jumpserver.org/。
首先需要安裝python的一些環(huán)境哮幢,這里需要先更新yum源带膀。
epel是centos等衍生發(fā)行版,用來彌補centos內容更新有時比較滯后或是一些擴展的源缺失橙垢。
Yum install epel-release
之后使用yum clean all和yum makecache來配置下yum垛叨。
yum clean all 清除緩存目錄下的軟件包及舊的headers,yum makecache 是 將服務器上的軟件包信息 現(xiàn)在本地緩存,以提高搜索钢悲、安裝軟件的速度点额。
執(zhí)行yum update
最后安裝必要的一些軟件和依賴舔株。
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等一些工具还棱,實際試驗中省去了一些:
PS:
1载慈、sshpass 是一個簡單、輕量級的命令行工具珍手,通過它我們能夠向命令提示符本身提供密碼(非交互式密碼驗證)办铡,這是在jumpserver中便于控制客戶端,有不安全因素琳要,不在生產環(huán)境使用寡具。
2、Lrzsz是linux中可以替代ftp進行文件上傳下載的軟件稚补。
三童叠、JumpServer下載安裝以及配置
通過GIt獲得git clone https://github.com/jumpserver/jumpserver
之后進入jumpserver目錄下,查看發(fā)現(xiàn)一個requirement.txt文件课幕,里面是需要的python模塊拓展包厦坛。
使用pip install -r requirement.txt安裝需要的拓展,以下是安裝完成后:
python拓展安裝后乍惊,可能還有沒有安裝的系統(tǒng)依賴杜秸,jumpserver的requirements目錄下的rpm_requirements.txt給出了所有的需要依賴,謹慎起見润绎,繼續(xù)安裝這個文件的內容:
Yum intstall -y cat rpm_requirements.txt
所有依賴完成后撬碟,需要配置文件,jumpserver中已經給出了一個config的demo莉撇,直接復制自定義修改即可:
在配置文件中呢蛤,郵件發(fā)送和通知需要修改郵件配置部分,如圖:
最后稼钩,需要初始化數(shù)據(jù)庫顾稀,操作如下:
cd utils
Chmod +x make_migrations.sh init_db.sh
sh make_migrations.sh
sh init_db.sh
最后,需要安裝REDIS服務支持:
Yum install -y redis
REDIS安裝完成之后坝撑,啟動REDIS服務静秆。
Service redis start
使用netstat -tunlp|grep 6379來查看redis是否已開端口
REDIS啟動成功!
最后巡李,運行run_server.py啟動jumpserver服務:
Python run_server.py
JumpServer啟動成功抚笔。這是直接在前臺啟動服務,如果需要在后臺運行侨拦,可以使用nohup或者screen殊橙,本文此處以screen為例:
使用screen -S jumpserver python run_server.py
可以通過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
在其他虛擬上上使用此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
再次訪問:
其中井誉,默認賬號密碼都為:admin
新建立一個管理用戶dbstar(客戶端上已存在用戶且有sudo權限):
新建立一個資產(主機):
新建立一授權規(guī)則:
可以獲取客戶端主機信息等:
在新建系統(tǒng)用戶功能上,會出現(xiàn)報錯:
通過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!7蹲ァ骄恶!”