我正在研究Chef食谱,并且经常需要通过破坏VM并将其恢复来使用干净盒测试完整的运行过程。然而,这意味着我在Vagrant/VirtualBox中得到这个消息:
Waiting for VM to boot. This can take a few minutes.
很经常。我可以采取哪些步骤来加快启动速度?
我知道这是一个"意见"问题,欢迎一些建议,使它更容易接受,除了把它分成一堆小问题,如"切换到SSD会使我的VirtualBox启动更快吗?"减少转发端口的数量会使我的VirtualBox启动更快吗?"等等。
我会选择使用LXC容器而不是VirtualBox。这样你的反馈周期会更快。
这是对vagrant-lxc提供程序的一个很好的介绍。
你可以用LXC容器为Vagrant/Chef开发设置一个VirtualBox VM(比如这个dev-box)。然后使用这个示例食谱,通过rake test
运行ChefSpec单元测试,或者通过rake integration
运行kitchen-ci集成测试。您将看到使用LXC比使用VirtualBox(或任何其他完全虚拟化管理程序)快得多。
除此之外:
- 是的,ssd帮助很大:-)
- 使用vagrant-cachier,通过缓存来加速其他东西的加载
- 使用最新的Vagrant版本,它使用Ruby 2.0+(比1.9.3快得多)
- 不总是运行一个完整的集成测试,有些问题可以通过单元测试/chefspec已经捕获
- 使用SSH连接共享和持久连接
- 等等…
作为另一种选择,你也可以使用chef-runner,它显式地尝试解决快速反馈问题