我正在创建一个 SaaS 平台,我需要一个可以创建、删除和存储云服务器连接详细信息的组件/库。它还需要支持在这些服务器上执行 shell 命令并将响应返回给调用者。我想要一个服务器及其配置的中央数据库,以及通过 SSH 执行 bash 脚本来访问和管理服务器的能力。我不想要像 Chef 那样需要在每个服务器上都安装代理的东西。
例如,假设应用程序收到此命令:
CREATE USER
server = server12345
name = myuser
它被转换成以下一组操作并由应用程序执行,该应用程序知道如何连接到 server12345,以及如何在该服务器上创建用户:
$ ssh root@server12345
$ adduser myuser
并返回 shell 的输出:
Added user myuser.
我在 Google 上进行了研究,但还没有找到可以做到这一点的东西。我发现:
这部分非常优雅地处理 shell 命令的执行,并且可以接受多个服务器定义,但它应该是一个部署工具,因此不能完成上面所需的所有操作 - 例如,它没有监听命令的守护进程模式 - 它希望在 shell 上执行。它也不能提供中央数据库功能。
自由云
该库可以处理服务器管理(CRUD)部分,但也没有命令接口守护进程,并且不允许您在服务器上执行命令。
我想我需要一个结合了 libcloud、fabric 和 django 的 API。或者其他可以做同样事情而不管语言的东西。
Overmind 是 libcloud 的 GUI 和包装器,但不支持命令执行部分。
我在这里遗漏了什么?
答案1
我确信你会因为购物而被扣分,但我很惊讶你的谷歌搜索没有识别出 Puppet 或 Chef
答案2
您的要求,特别是远程执行,听起来更接近 PaaS 堆栈而不是任何一个库。
描述了一些选项这里