天天看點

開源跳闆機安裝配置

基于 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

更新

  1. 更新 jumpserver
$ git pull && pip install -r requirements/requirements.txt && cd utils && sh make_migrations.sh      
  1. 更新 coco
$ git pull && cd requirements && pip install -r requirements.txt   # 不要指定 -i參數      
  1. 更新 luna

重新下載下傳release包