基于 CentOS 7 一步一步安裝 Jumpserver 0.5.0
環境
- 系統: CentOS 7
- IP: 192.168.133.60
- 關閉 selinux和防火牆
# CentOS 7
$ setenforce 0 # 可以設定配置檔案永久關閉
$ systemctl stop iptables.service
$ systemctl stop firewalld.service
# CentOS6
$ setenforce 0
$ service iptables stop
一. 準備Python3和Python虛拟環境
1.1 安裝依賴包
$ yum -y install wget sqlite-devel xz gcc automake zlib-devel openssl-devel epel-release
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.5.0
2.1 下載下傳或clone項目
項目送出較多git clone時較大,你可以選擇去github項目頁面直接下載下傳 zip包,我的網速好,我直接clone了
$ cd /opt/
$ git clone --depth=1 https://github.com/jumpserver/jumpserver.git && cd jumpserver && git checkout dev
2.2 安裝依賴rpm包
$ cd /opt/jumpserver/requirements
$ yum -y install $(cat rpm_requirements.txt) # 如果沒有任何報錯請繼續
2.3 安裝python庫依賴
$ pip install -r requirements.txt # 不要指定-i參數,因為鏡像上可能沒有最新的包,如果沒有任何報錯請繼續
2.4 安裝Redis, jumpserver使用redis做cache和celery broker
$ yum -y install redis
$ service redis start
2.5 安裝MySQL
本教程使用mysql作為資料庫,如果不使用mysql可以跳過相關mysql安裝和配置
# centos7
$ yum -y install mariadb mariadb-devel mariadb-server # centos7下安裝的是mariadb
$ service mariadb start
# centos6
$ yum -y install mysql mysql-devel mysql-server
$ service mysqld start
2.6 建立資料庫 jumpserver并授權
$ mysql
> create database jumpserver default charset 'utf8';
> grant all on jumpserver.* to 'jumpserver'@'127.0.0.1' identified by 'somepassword';
2.7 修改jumpserver配置檔案
$ cd /opt/jumpserver
$ cp config_example.py config.py
$ vi config.py # 我們計劃修改 DevelopmentConfig中的配置,因為預設jumpserver是使用該配置,它繼承自Config
注意: 配置檔案是python格式,不要用tab,而要用空格 注意: 配置檔案是python格式,不要用tab,而要用空格 注意: 配置檔案是python格式,不要用tab,而要用空格
class DevelopmentConfig(Config):
DEBUG = True
DB_ENGINE = 'mysql'
DB_HOST = '127.0.0.1'
DB_PORT = 3306
DB_USER = 'jumpserver'
DB_PASSWORD = 'somepassword'
DB_NAME = 'jumpserver'
...
config = DevelopmentConfig() # 確定使用的是剛才設定的配置檔案
2.8 生成資料庫表結構和初始化資料
$ cd /opt/jumpserver/utils
$ bash make_migrations.sh
2.9 運作Jumpserver
$ cd /opt/jumpserver
$ python run_server.py all
運作不報錯,請浏覽器通路 http://192.168.244.144:8080/ (這裡隻是jumpserver, 沒有web terminal,是以通路web terminal會報錯) 賬号: admin 密碼: admin
三. 安裝 SSH Server和Web Socket Server: Coco
3.1 下載下傳clone項目
新開一個終端,連接配接測試機,别忘了 source /opt/py3/bin/activate
$ cd /opt
$ git clone https://github.com/jumpserver/coco.git && cd coco && git checkout dev
3.2 安裝依賴
$ cd /opt/coco/requirements
$ yum -y install $(cat rpm_requirements.txt)
$ pip install -r requirements.txt
3.3 檢視配置檔案并運作
$ cd /opt/coco
$ cp conf_example.py conf.py
$ python run_server.py
這時需要去 jumpserver管理背景-終端-終端(http://192.168.244.144:8080/terminal/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 [email protected]
密碼: admin
如果是用在windows下,Xshell terminal登入文法如下
$ssh [email protected] 2222
密碼: admin
如果能登陸代表部署成功
四. 安裝 Web Terminal 前端: Luna
Luna已改為純前端,需要nginx來運作通路
下載下傳 release包,直接解壓,不需要編譯
通路 https://github.com/jumpserver/luna/releases,下載下傳對應release包
4.1 解壓luna
$ pwd
/opt/
$ tar xvf luna.tar.gz
$ ls /opt/luna
...
五. 配置 nginx 整合各元件
5.1 安裝nginx 根據喜好選擇安裝方式和版本
5.2 配置檔案
server {
listen 80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
location /luna/ {
try_files $uri / /index.html;
alias /opt/luna/;
}
location /media/ {
add_header Content-Encoding gzip;
root /opt/jumpserver/data/;
}
location /static/ {
root /opt/jumpserver/data/;
}
location /socket.io/ {
proxy_pass http://localhost:5000/socket.io/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
location / {
proxy_pass http://localhost:8080;
}
}
5.3 運作 nginx
5.4 通路 http://192.168.244.144
更新
- 更新 jumpserver
$ git pull && pip install -r requirements/requirements.txt && cd utils && sh make_migrations.sh
- 更新 coco
$ git pull && cd requirements && pip install -r requirements.txt # 不要指定 -i參數
- 更新 luna
重新下載下傳release包