我正在尝试做的基本想法: 我想为我正在处理的网站设置一个虚拟登台集群。理想情况下,我想进行更改,启动并将其部署到虚拟暂存集群,然后从生产中提取数据样本,以便在进行生产部署之前进行全面测试。当我在虚拟暂存集群上完成测试时,我希望集群消失(即删除/删除虚拟机,这样我也可以从全新安装中进行测试)
我的最终目标: 我的目标是自动化设置和拆除整个虚拟集群的过程。例如,在托管 VM 的服务器上运行脚本,该脚本将创建或删除所有 VM。有谁知道这是否可以用现有的虚拟化解决方案来完成?我也愿意就您或您的组织如何做到这一点进行讨论和提出建议。
fyi-如果我能做到这一点,虚拟服务器应该能够使用 PXE 和 debians FAI 重新引导自己,然后 puppet 将完成设置工作。
VMWare 提供了一些产品,它们可能会帮助您完成您想做的事情:
VMware Server 和 VirtualBox 都有命令行工具。vmrun 和 VBoxManage 分别。使用任一产品,您都可以创建创建、启动、停止和删除机器(以及更多)的脚本。
例如(在 VBox 上):
以上将启动一个名为 Windows 的 VM。
对于 Virtual Box,我会看: Using VBoxManage to control virtual machines
对于 VMware: vmrun 命令 <- 警告,pdf
是的,现在大多数虚拟化解决方案都是可编写脚本的。
使用 Xen、xen-tools 和 FAI,您甚至可以不使用 PXE(查看 FAI wiki 关于与 xen-tools 的集成)。
但是类似的事情应该可以用 libvirt (我还是建议使用它,以分离所使用的虚拟化技术)和 KVM/XEN/QEMU/....
我一直在考虑做一些事情,比如测试 FAI 本身,我使用坩埚测试框架,这听起来对这样的任务很有吸引力http://sourceforge.net/projects/crucible/
此外,您可能会看一下 ganeti - 它也可以与 xen、kvm 一起使用,并且可能同时还实现了 libvirt - 如果您需要的 VM 数量超过单台机器可以处理的数量,这非常有趣,因为它会帮助您还包括文件部署和在虚拟系统上运行命令等。
您使用的是什么虚拟化平台?VMware 的 Lab Manager 产品在我的工作场所为设置测试集群和客户环境创造了奇迹。