本文根據高效運維專家群友文章整理並發布。歡迎關注“高效運維”公眾號,以搶先賞閱誠意滿滿的各種原創文章。
編輯
-
黃興(文章整理)
嘉賓介紹

廣宏偉
Jumpserver項目發起者,資深運維工程師,畢業於著名的新東方烹飪學校,精通八大菜系.
一、為什么開始
猶記得當初剛到新的公司,公司里面沒有批量管理工具,新來程序猿同事,需要手動為它們在服務器一個個添加賬號。
過了一段時間,經理說服務器上的部署的應用沒了,查了半天history沒發現誰刪的。痛定思痛后決定購買堡壘機產品,經理咨詢報價后,說:老廣,聽說你在學習Python,要不你來寫一個吧,后來就有了Jumpserver。
至於為什么叫 Jumpserver,我的英語水平告訴我“跳”是’jump’, “機”是’server’, 於是取名叫 Jumpserver。
二、功能介紹
Jumpserver 是一款由Python編寫開源的跳板機(堡壘機)系統,實現了跳板機應有的功能。基於ssh協議來管理,客戶端無需安裝agent。
支持常見系統:
Redhat CentOS
Debian
SUSE Ubuntu
FreeBSD
其他ssh協議硬件設備
功能:
-
精確記錄操作命令
-
支持批量文件上傳下載
-
支持主機搜索登錄
-
支持批量命令執行(Ansible完成)
-
支持Web Terminal連接主機
-
支持Web端批量命令執行
-
支持錄像回放
-
支持硬件信息如cpu,內存等抓取
-
支持資產Excel導入導出
-
支持資產批量更改
-
支持系統用戶的批量推送(Ansible實現)
-
支持用戶,主機,用戶組,主機組,系統用戶混合細顆粒授權
-
支持sudo管理
-
支持命令統計和命令搜索
-
支持上傳下載文件審計
-
支持終止用戶連接
-
支持各種搜索
-
其他
三、設計思路:
-
設計一個跳轉網關,所有登錄操作都從網關通過
網關具有模擬終端的功能,透明的中轉ssh命令,以支持Tab,Ctrl+A,Ctrl-E等快捷鍵,網關既可以記錄操作日志,又可以審計操作命令。 -
設計一個認證模塊
為了實現認證功能,需要有個認證模塊,認證信息存到數據庫,用戶使用跳板機首先需要認證。 -
設計一個授權框架
授權是跳板機不可缺少的部分,授權就是用戶和資產的關系,將關系保存的數據庫,用戶登錄主機需要先查授權。 -
設計審計模塊
審計是為了追蹤,我們支持了在線監控,命令統計,錄像回放功能,供管理員審查。 -
用戶和主機模塊
跳板機脫離不了用戶和主機,所以這兩個部分是基本的模塊,另外我們將主機模塊擴展,實現基本CMDB功能。 -
Web Terminal
現在都流行Web操作一切,於是我們又實現了Web Terminal,供用戶直接在線鏈接服務器,這里實現是用了Tornado來完成的,Tornado實現WebSocket特別簡單。 -
其它
四、功能截圖
-
登陸頁面

-
首頁

-
錄像回放

-
批量命令

-
web terminal

五、願景
我們身為運維er中的一員,運維工作讓我們有了飯,有了衣,有了自己的家庭。我們應當為此做些微不足道的貢獻,哪怕就那么一點點。
我們希望各位在開發運維工作的朋友們也加入到開源的隊列中,分享自己的代碼。
我們對項目的一直保持不變的熱情,我們未來會在穩定性、實用性、文藝性方面做出努力,我們也非常歡迎志同道合的朋友加入。
六、其它
Git地址:
https://github.com/ibuler/jumpserver
快速開始:
https://github.com/ibuler/jumpserver/wiki/Quickinstall
Wiki:
https://github.com/ibuler/jumpserver/wiki
Demo:
http://demo.jumpserver.org
交流群:
399218702
