30

我有一个 Vagrant 系统启动并运行,我想对其进行更改,这与更改其中一个转发规则一样少。

这个页面

vagrant up与任何其他配置一样,应用转发端口。但是,如果您已经有一个正在运行的系统,调用 vagrant reload将应用它们而无需重新导入和重新构建所有内容。

请注意,转发端口需要重新启动虚拟机,因为在完全重新启动之前,VirtualBox 不会接收转发的端口。

听起来和我想要的完全一样!但如果我尝试vagrant reload重新加载我所有的厨师食谱,并且由于整个过程大约需要半小时,我必须去厨房拿第 n 杯咖啡。

有没有办法在运行的系统上应用 Vagrantfile 更改而无需经过整个配置过程?我不能喝那么多咖啡。

4

2 回答 2

47

您是否尝试过使用 VirtualBox 用户界面手动添加新的端口转发规则?打开 VirtualBox 并选择正在运行的 VM,然后点击Settings->Network->Port Forwarding并将新规则添加到,例如 forward 127.0.0.1:2223to 10.0.2.15:22。完成此操作后,我能够在端口 2222(如常)和 2223(新规则)上连接到我的 VM。

当然,您会Vagrantfile同时将此新规则添加到您的规则中,以确保映射在最终重新启动后成为永久的。

此外,如果您的虚拟机配置需要很长时间,您是否考虑过将一些主厨/木偶步骤移到实际的基础框中?例如,您可能正在安装一堆需要一段时间才能安装的服务器软件。用已经安装的软件重新包装盒子可以大大减少你的 Vagrant 启动时间。

希望这可以帮助!

于 2011-10-02T09:05:41.387 回答
17

你可以做

vagrant reload --no-provision

它应该在没有厨师、木偶等的情况下运行。

虽然它仍然会重新启动 vm- 感觉就像“但是如果你有一个已经在运行的系统......”可能有点误导。

于 2012-11-05T10:49:11.610 回答