如何从服务器A到B执行远程调用来创build虚拟机

这是我在serverfault的第一个问题,所以我希望我这样做正确,因为我通常在Stackoverflow 🙂

我有两个Ubuntu 14.04 LTS服务器,服务器A和B.

服务器A运行我的客户门户运行的Web服务器,客户可以在其中订购虚拟机。

服务器B是具有KVM的虚拟机pipe理程序,其中创build映像并最终创build虚拟机。


我最近在服务器A上创build了一个bash脚本:

  • 从一个仍然需要创build的虚拟机的mysql表中获取信息,并通过它们循环;
  • 检查服务器B的可用磁盘空间,然后是否有足够的空间
  • 用服务器B上的fallocate程序创build图像;
  • 在服务器B上使用先前创build的映像创build具有vert-install的虚拟机。

所有这些命令都是使用SSH执行的。 这意味着对于每个虚拟机,我需要执行3个SSH命令。 如果虚拟机pipe理程序没有足够的磁盘空间用于创build映像,则更多。


当只有一个客户订购一个虚拟机,并且只有一个虚拟机pipe理程序时,这种脚本就可以正常工作。 有多个客户订购虚拟机和有多个虚拟机pipe理程序可能会破坏脚本。 然后我想到了以下解决scheme:

每当客户点击button“订购虚拟机”时,就会完成对虚拟机pipe理程序+端口的telnet调用,监听该端口的守护进程将运行一个脚本,例如:

  • 端口7000:创build图像
  • 端口7001:创build虚拟机

然而问题是我对这种东西缺乏了解。 例如:

  • 我用什么语言编写守护进程? PHP是我的主要语言,但是因为它是“死亡的语言”,所以编写守护进程可能不太好。
  • 这个守护进程如何监听多个端口并根据哪个端口进入正确的动作?
  • telnet是用于这种过程的正确协议吗? 守护进程只会监听我们自己networking中的私有地址,这意味着安全性在这里没有问题。 有不同的技术更适合吗?

我没有尝试太多,因为我不知道从哪里开始。 有很多事情要考虑,但我只是需要一点点正确的方向才能开始。 我不一定需要示例代码(当然可能有帮助)。 我可以提供我创build的bash脚本,如果需要的话。