前言
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个项目
- Jumpserver:管理、认证、授权、审计
- Coco:SSH Server 用于SSH登录
- Luna:Web 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 库,没有之一,功能强大,维护者十分负责。
6. Luna
上个版本的 Web Terminal 虽然让大家眼前一亮,然而并没有达到我们的要求,于是我们这次使用 Flask、Angular 实现了她,她就是月亮之女-露娜。
Luna的实现 离不开 \<刘正> \<周小侠> 的帮助,非常感谢。
最后:感谢高效运维,感谢萧老师 为 Jumpserver 推广,感谢支持 Jumpserver 的朋友们。开源的动力或许不单单因为情怀,也有促人奋发向上的力量,当我们这代运维人老去,或许能听到未来的他们提起,或许这就是我们这群人想要的荣耀。
文章来自微信公众号:高效运维
本文链接:http://www.yunweipai.com/18349.html