我有兴趣制作一个内部 Web UI,以简化我在管理多台服务器时面临的一些管理任务;想想 Canonical 的 Landscape。这意味着要执行诸如在服务器上同时应用软件包更新、安装自定义 .deb(我使用 ubuntu/debian)等操作。查看服务器日志、执行自定义脚本、查看所有服务器的状态信息。我希望能够重用现有的命令行工具,而不是自己用不同的语言重写完全相同的操作。
我真的想开发一些东西,让我能够继续在 ssh 级别进行管理,但提供 Web 界面的功能,以便轻松应用相同的基础架构范围的更改。它们不应该互相排斥。
有哪些推荐的编程语言可用于进行此类开发并将其与 Web UI 绑定?您为什么推荐这些语言?
我并不是一名经验丰富的程序员,但我将此视为解决自己一些问题以及成为更好程序员的机会。我并不特别关心一种语言是否比另一种语言更难,但我更感兴趣的是从一开始就选择最适合这项工作的工具。
欢迎推荐任何已将许多系统的管理集成到单个有凝聚力的 Web UI 中的现有项目,除了 Landscape(不免费)、Ebox(ebox 控制中心不免费)和 webmin(我不喜欢它,感觉很笨重,并且不能很好地与维护服务器的“debian 方式”集成,在我看来。此外,只能管理一个系统。)
感谢您的任何想法!
更新:
我并不想重新发明系统管理的轮子,我只是想在可能和适当的情况下将许多现有的优秀工具“粘合”在一起;这就是为什么我想知道哪些语言可以与现有的命令行工具很好地交互,同时使它们可以通过 Web UI 进行管理。
答案1
Python(目前为止)是这类东西的最佳全能语言。它是跨平台的,如今用于从 3D 游戏到 Web 应用等各种领域。花时间学习它会让你获得非常便携的技能。Python 的语法也非常简洁,基础知识也很容易掌握。
答案2
下意识的反应是支持 3dinfluence 的想法,即你想要的东西已经被发明了。
如果你真的想开发,为什么不为 Webmin 做贡献,编写一个更好的界面,而不是创建另一个 Web 管理界面呢?或者一个按你想要的方式工作的“Debian”插件?
我永远不会建议某人不要为开源环境做出贡献,但是您所建议的能量对于需要帮助的现有项目来说可能更有用。
答案3
我会重复其他人在这里说的话。使用现有的工具,然后根据需要在它们之间写一些粘合剂。我使用 Zabbix(以前是 Zenoss)进行监控,使用 Bcfg2 和 Subversion 进行配置管理,使用 Trac 进行票务和文档记录。
我经常在 Trac 中“将所有内容整合在一起”,因为它具有出色的 API 来扩展界面。我编写了允许轻松交叉引用的插件(例如,如果我在 Trac 票证中提到服务器,它会自动链接到 Zenoss 状态页面)。
我使用 Python 编写所有粘合代码,因为 Zenoss、Bcfg2 和 Trac 都是 Python,而且 Zabbix 有一个 Python API。
希望有帮助!