1. 程式人生 > >Github 2450星的開源跳板機Jumpserver新版釋出!

Github 2450星的開源跳板機Jumpserver新版釋出!

前言

Jumpserver (https://github.com/jumpserver/jumpserver)是一款開源的跳板機系統,主要使用 Python 和 Django 開發,國內已有千餘家公司使用,也有不少網際網路知名公司二次開發後上線使用,作為作者非常高興。

現在 Github 已有 2450顆星,非常感謝朋友們認可,也證明 Jumpserver 在生產中可靠的,如果正在閱讀文章的你,也覺得 Jumpserver,程式碼優美、結構清晰、介面漂亮,也給顆星星,感謝你的慷慨。

下面討論一下新版本變化,先來張圖感受一下把:

Jumpserver

一、程式碼重構

1. 分拆元件

這個版本是上個版本的完全重構,分拆了各個元件,元件間依賴很低。我們從開始對這個版本程式碼質量,程式碼風格嚴格要求。

  • 使用者 users  負責使用者管理
  • 資產 assets 負責資產管理
  • 授權 perms  負責許可權管理
  • 審計 audits  負責審計
  • 自動化 ops  負責自動化推送使用者
  • 應用程式 application 支援其他程式來註冊,呼叫 api

2. 最新版 Python 和 Django

使用最新版 Python 3.6.1 和 Django 1.11開發,使用了 Django 裡面非常高階的 Class Base View,程式碼簡潔優雅。非常 Pythonic 和符合 Django 標準的程式碼,適合作為專案參考和 Python 初中級童鞋學習。

Github

3. 國際化

同時支援英文和中文,根據瀏覽器請求來判斷返回不同的版本,也是希望我們國內的專案被國外朋友喜歡。

4. Restful API

這也是上個版本呼聲最高的需求,這次實現了常用的 API,支援多種方式認證,非常適合對接公司的其他系統,方便二次開發

5. 支援 Docker 部署

Docker 這兩年成為流行,上個版本由於依賴 Linux 的 PAM 認證不方便 Docker 部署,本次重構程式碼,首次實現了 SSH Server,統一了認證,極為方便了 Docker 化,我們推薦使用者使用 docker compose 一鍵部署測試

6. 分拆專案

為了支援分散式登入,分拆成了3個專案

  • CocoSSH Server 用於SSH登入
  • LunaWeb Terminal 非常漂亮友好

Coco 和 Luna 是無狀態的,可以部署多份,來支援 HA 和 LB。

7. 介面更加精緻

介面漂亮友好,一直是我們非常關心的事情,我們要的是從裡到外的優雅,使用著之前版本的朋友,你們對比一下,可能更有體會。

二、功能部分

1.  各元件功能都有加強細化

我們對每個元件都進行了優化和加強,儘可能做到易用、好用 如:新增、詳情、匯入匯出等。

2.  統一登入

Jumpserver,Coco,Luna 登入都使用同一個介面,方便二次認證、統一認證開發 如:支援 LDAP,Google Auth。

3.  命令詳細解析

將使用者輸入輸出精確記錄到儲存上,儲存設計支援外掛,可能很容易的存到ES等專業日誌系統上。

4. 自動使用者推送

上個版本飽受詬病的是使用者的手動推送,這個版本實現了自動推送,使用者不需要干預系統使用者的推送,檢視推送歷史確認一下即可。

5.  Coco

Coco 是我們用 Paramiko 實現的一個 SSH Server,相比 connect 更容易控制和定製。Paramiko 真的是 Python上最優秀的 SSH 庫,沒有之一,功能強大,維護者十分負責。

Coco

6.  Luna

上個版本的 Web Terminal 雖然讓大家眼前一亮,然而並沒有達到我們的要求,於是我們這次使用 Flask、Angular 實現了她,她就是月亮之女-露娜。
Luna的實現 離不開 \<劉正>  \<周小俠> 的幫助,非常感謝。

Luna

最後:感謝高效運維,感謝蕭老師 為 Jumpserver 推廣,感謝支援 Jumpserver 的朋友們。開源的動力或許不單單因為情懷,也有促人奮發向上的力量,當我們這代運維人老去,或許能聽到未來的他們提起,或許這就是我們這群人想要的榮耀。

文章來自微信公眾號:高效運維