Github 2450星的開源跳板機Jumpserver新版釋出!
前言
Jumpserver (https://github.com/jumpserver/jumpserver)是一款開源的跳板機系統,主要使用 Python 和 Django 開發,國內已有千餘家公司使用,也有不少網際網路知名公司二次開發後上線使用,作為作者非常高興。
現在 Github 已有 2450顆星,非常感謝朋友們認可,也證明 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 初中級童鞋學習。
3. 國際化
同時支援英文和中文,根據瀏覽器請求來判斷返回不同的版本,也是希望我們國內的專案被國外朋友喜歡。
4. Restful API
這也是上個版本呼聲最高的需求,這次實現了常用的 API,支援多種方式認證,非常適合對接公司的其他系統,方便二次開發
5. 支援 Docker 部署
Docker 這兩年成為流行,上個版本由於依賴 Linux 的 PAM 認證不方便 Docker 部署,本次重構程式碼,首次實現了 SSH Server,統一了認證,極為方便了 Docker 化,我們推薦使用者使用 docker compose 一鍵部署測試
6. 分拆專案
為了支援分散式登入,分拆成了3個專案
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 庫,沒有之一,功能強大,維護者十分負責。
6. Luna
上個版本的 Web Terminal 雖然讓大家眼前一亮,然而並沒有達到我們的要求,於是我們這次使用 Flask、Angular 實現了她,她就是月亮之女-露娜。
Luna的實現 離不開 \<劉正> \<周小俠> 的幫助,非常感謝。
最後:感謝高效運維,感謝蕭老師 為 Jumpserver 推廣,感謝支援 Jumpserver 的朋友們。開源的動力或許不單單因為情懷,也有促人奮發向上的力量,當我們這代運維人老去,或許能聽到未來的他們提起,或許這就是我們這群人想要的榮耀。
文章來自微信公眾號:高效運維