创build和部署Linux虚拟设备

我有兴趣尝试打包由大型Linux软件堆栈组成的软件产品作为所谓的“ 虚拟设备 ”,以避免痛苦的安装过程。 我的需求可能类似于这个问题的作者,这里的答案是有帮助的,但我有一些具体的问题。

我试图分发的应用程序由几个rails应用程序和一些其他服务器,守护进程以及需要通过cron运行的作业等组成。目前它正在Ubuntu服务器中运行。

  1. 目前可用于创build和打包类似上述虚拟机的最佳方式是什么? 我一直在寻找似乎已经过时的JeOS ,但有一些关于这个过程的教程 。 开放式虚拟化格式 ( Open Virtualization Format )显然也是分布式虚拟设备的一个很好的例子,但是我找不到任何有关创build这种映像的教程。

  2. 我们将如何去分发图像和更新,以保留用户数据?

我将首先回答2):如果将虚拟机设置为包含2个虚拟磁盘,则可以将操作系统和任何可升级组件放在一个磁盘上,将所有用户数据放在另一个磁盘上。 要在保留用户数据的同时进行升级,只需发送操作系统磁盘的更新。

至于1):如果你按照我的build议2你想寻找一个格式,其中的虚拟磁盘很容易更换个别。 你可以使用qemu / kvm来实现这个function,例如qcow2图像,但是可能有其他格式,其中一些可能比qemu / kvm更容易启动。 如果使用像OpenNebula这样的云栈来运行虚拟机,而不是要求用户自己启动虚拟机,那么使用1)qemu-kvm应该是非常可行的。