【问题标题】:Re-using Vagrant boxes made from Vagrantfile重用由 Vagrantfile 制作的 Vagrant 盒子
【发布时间】:2014-04-11 03:09:27
【问题描述】:

我克隆了一个包含 Vagrantfile、需求文件和其他一些东西的 repo。我非常喜欢 VM,想要将它重新用于各种项目,所有这些项目都有自己的存储库。与其配置每个新 repo 的来源并在重新克隆后删除无关文件,我认为我可以只制作 VM 的副本并重新使用它。所以我pieced together 的基本工作流程是这样的:

$ git clone https://github.com/.../x.git Template
$ cd Template
$ vagrant up
$ VBoxManage list vms
$ vagrant package --base Template_default_1394051969748_83660 --output ./template.box
$ vagrant box add template template.box virtualbox

现在我可以为项目创建一个新目录,运行 vagrant init,然后编辑 Vagrantfile 以使用模板框。

我的问题只是那些在 Vagrant 方面更有经验的人是否认为我可能让这太难了,或者不知何故错过了 Vagrant 的意义。

【问题讨论】:

  • 使用配置和构建基本盒子之间的界限并不明确。一般来说,做更适合您的工作流程并使您的生活更轻松的事情。我正在使用最基本的虚拟机,除了裸操作系统之外什么都没有,并且有根据项目配置所有内容的厨师食谱。我知道很多人选择了另一种方式来拥有一个“沉重”的基础框,只提供依赖于 vm 之外的东西的东西,比如它是 windows/linux 主机还是配置取决于分配给来宾的 IP。

标签: vagrant


【解决方案1】:

答案取决于您对基础盒所做的修改、配置这些修改所需的时间、进行修改的复杂性以及您修改后的盒子的用户可以等待配置的时间“vagrant up --provision”请求。

如果您的修改是微不足道的并在几秒钟内完成(例如,您的配方运行列表仅限于安装几个小型公共应用程序),则无需创建新的修改后的基本框。如果您的更改很复杂、很耗时,并且可能需要身份验证凭据,那么您可能会通过预先配置一个修改后的基本框来提供价值。

您所做的选择可能会因 Vagrantfile 而异。

为了努力遵守该原则,您可以使用打包器规范声明修改后的衍生基础盒的配置。理想情况下,您不会让用户使用无法重新创建的虚拟机,如果他们无法访问您的个人知识。使用 packer 定制您的基本 box 映像,创建修改后的 box,并提交 packer 规范、Vagrantfile 和 chef(或类似)配置脚本以进行更改管理。

【讨论】:

    猜你喜欢
    • 2023-04-05
    • 1970-01-01
    • 2018-10-27
    • 2023-04-04
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    • 2017-05-11
    相关资源
    最近更新 更多