Vagrant能否直接使用操作系统的.ISO安装镜像或即时创建Vagrant box?

22

是否可以自动化创建一个Vagrant .box文件以从原始ISO安装操作系统?

对我来说,这是Vagrant提供的操作系统安装和配置的端到端自动化中的一个重要差距。

当然,VagrantBox.es提供了许多基本的.box操作系统安装文件供使用。但是有些来自第三方供应商而不是原始操作系统分发商。例如 Arch Linux:Arch Linux 64 (2012-07-02) http://vagrant.pouss.in/archlinux_2012-07-02.box

不想对第三方供应商的努力持否定态度,但有些组织可能希望从原始操作系统提供者那里获取原始安装映像(例如上面的 Arch 示例,这将是:https://www.archlinux.org/download/)。希望获得原始安装映像的原因可能是安全性(因为无法验证第三方映像是否存在安全妥协和恶意软件),以及获得原始供应商预期的图像而不需要额外的内容。另一个原因是利用来自原始供应商的新版本并且不必等待第三方将其作为 Vagrant .box 发布。
有关从 .ISO 映像创建 .box 文件的指南: 但这些都是手动步骤,违背了Vagrant自动化和一致性的理念。特别是如果许多人想要实现使用原始内容的最终目标,这将导致每个人都需要进行重复努力。
因此,我会在这里寻找一个明确的答案,描述如何制作一个通用的自动化脚本来将.ISO操作系统安装映像转换为Vagrant box。

1
我在practicalweb写了这篇文章,主要是为了学习理解基础盒子中包含的内容。Veewee听起来像是你想要的。 - Sean Burlington
+1 感谢Sean。我很欣赏你的方法,认为这是学习的最佳方式,值得与他人分享。 - therobyouknow
1个回答

27

我认为VeeWee为从ISO准备Vagrant box提供了一个很好的机制:

https://github.com/jedi4ever/veewee

它已经为大多数发行版提供了许多现成的模板,如果需要,您可以进行自定义(尽管通常不需要)。或者,您可以创建自己的定义。
另外,您也可以使用 Packer:

https://packer.io/

由制作Vagrant的同一家公司生产,因此具有相当好的集成性。我认为Packer本身没有提供示例模板,但如果您愿意,可以使用Puppet Labs用于自己的测试目的的模板:

https://github.com/puppetlabs/puppetlabs-packer

这可以作为模板的坚实基础,并根据需要进行修改,或者您可以在该项目上提出PR以进行贡献。

+1 @Ken Barber 谢谢,这看起来就是我要找的。我会检查一下,并保持问题开放一段时间,以便其他人有机会贡献。 - therobyouknow
实际上,我会接受这个,因为我认为它非常符合我想要做的事情。当然,作者可能会继续改进它,或者其他人也可能会这样做。但我不想让你等待太久再进行接受。谢谢。 - therobyouknow
在搜索中找到有关VeeWee的参考资料加快了我接受的倾向。这里有一个指南:http://spilth.org/blog/2013/01/21/automated-vm-generation-with-veewee-jenkins-and-amazon-s3/ 还有很多其他的搜索结果。 - therobyouknow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接