在开发项目ToughRADIUS的过程中,这个问题坑了我不少时间。
因为以前长时间做企业项目,实施部署运维都是专业技术人员进行,我只要按规范给他们文档和培训就可以,很少存在这个问题。
但是当我直接对用户做版本发布时,完全不一样了。
这是个AAA项目,用户群体一般就是宽带运营,虚拟专用网运营等,不得不说,咱们国家的民营是当着老板,操着心运营商的心,跑着业务员的路,最后还要干技术网管的活。
最初,我直接提供源码包,在源码包下提供一些启动脚本,linux下提供sh,windows下提供bat或exe,这是比较简单的模式。用户下载,安装数据库,建库建表,配置,启动。不过除了懂技术的能搞定外,数据库,建表建库难道一大部分人。还不说需要安装各种依赖,比如要命的MySQLdb依赖。
然后我尝试着提供Linux在线一键安装脚本,并简化配置,并把建库建表过程通过内置程序解决,用户都不需要知道sql的存在。这个一键安装脚本是一堆流程化的linux指令,这个带来了巨大的工作量,我在vps上用docker容器最多一天测试20次以上,跑10几个G的流量,虽然在一个干净的centos里运行无误,但是用户的环境难料,经常还是莫名其妙的问题,当然最大的问题还是mysql。
接着我又尝试了docker+自动脚本来提供,但是docker本身是个普通用户难以理解的东西,很快我就放弃了。
很多人希望提供iso的安装版,不过难的是我现在还搞不定iso,参考了不少文章,按照有些针对centos mini版做iso定制的流程试了下,没搞定。ubuntu下好像有个将整个系统直接转iso得模式,还没有来得及试试。
最终我也想明白,linux本身对普通用户就是一个难以驾驭的东西,加上各种不同发行版操作的差异要人命。试图去解决这样的问题还不如提供商业模式的有偿服务。
最后,我对项目结构进行了极大简化,移除那些用户难以理解和操作的东西,将项目作为一个python标准模块发布,并提供sqlite配置支持开箱即用的模式,在windows下通过py2exe进行打包,对配置文件支持默认查找路径。
window下可以实现只要会安装360软件就会用的程度。真正开箱双机鼠标就能用。linux以python标准模块方式,依靠pip强大的功能,让有点技术能力的人操作。以后有机会可以做做有偿技术支持。
@
phuslu 感谢https://
github.com/phuslu/pybuild这个项目给我带来的帮助,解决了我在py2exe打包时碰到的难题。如果有朋友对linux可引导iso镜像定制比较在行的希望可以交流交流。
最近看了下openwrt的资料,对python支持不错,连twisted这样的模块都有完整支持,集成进去应该没有太大问题。
https://github.com/talkincode/ToughRADIUS这是项目的地址,项目采用BSD许可协议,欢迎各路朋友 star,fork。还有不少后期开发计划,最近正在准备和一些国内厂商做对接支持,个人有点独力难支,有兴趣的朋友欢迎加入。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/173964
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.