命令行控制virtualbox的客户机


今天早上突发奇想想在本地建立虚拟机做一些类似浏览器兼容测试等等的方案。

google了下,发现现在有很多种虚拟化的方案,其中适合linux宿主机的又免费的有openvz/kvm/xen/virtualbox等。这四个对我来说都不算陌生。如果你用过VPS的话,肯定比较过前三个方案的区别。openvz的特点是“软限制”,即几个虚拟机可以共享资源,但是kvm/xen不行,所以一般VPS教程都不建议选择openvz。但是openvz的这种特点个人认为对公司内部来说不算缺点,因为在很少有很多开发用机器一起达到阈值的情况下,加上基于cgroup和高性能的优势,所以个人猜测应该有很多公司使用openvz。不过,话说回来,openvz/kvm/xen都适合作为类似VPS的场景,对于我的简单需求,有点重了。所以在比较了之后,个人还是选择了最简单的virtualbox。老实说,个人以前都有virtualbox,这番调查等于是兜了一圈又回来。

个人以前都是在GUI上操作virtualbox的,如果要在开发中使用的话,估计CLI是逃不了的。查阅了一些资料之后,在自己的机器上做了以下的命令尝试:

列出你当前所有的客户机:

VBoxManage list vms

启动客户机,图形模式(debian0是我的客户机名字):

VBoxManage startvm debian0

启动客户机,命令行模式:

nohup VBoxHeadless -s debian0 &

使用你的浏览器兼容测试工具比如selenium远程控制浏览器进行操作,或者ssh到机器上操作。

关闭客户机(电源按钮):

VBoxManage controlvm debian0 acpipowerbutton

给客户机截图(如果你的浏览器兼容测试工具没有截图功能的话,可以考虑这个):

VBoxManage controlvm debian0 screenshotpng debian0-current.png

以上就是基本的控制方法,virtualbox还有一块snapshot功能,个人还要再研究下。