1

我试图理解为什么将网络选项放在 Vagrantfile 的提供程序块中不起作用。例如,这似乎有效:

config.vm.define "mymachine" do |vbox_config|
  vbox_config.vm.network :private_network, ip: "10.10.10.10"

  vbox_config.vm.provider :virtualbox do |vb|
    vb.ssh.forward_agent = true
  end
end

但这不起作用(无法访问网络):

config.vm.define "mymachine" do |vbox_config|

  vbox_config.vm.provider :virtualbox do |vb|
    vb.ssh.forward_agent = true
    vb.vm.network :private_network, ip: "10.10.10.10"
  end
end

似乎我想将网络选项设置为特定于提供者,并像后者一样构建 Vagrantfile。任何想法为什么它不起作用?

4

1 回答 1

3

如果要在提供程序块内设置非提供程序特定配置,则必须使用不同的语法:

config.vm.define "mymachine" do |vbox_config|

  vbox_config.vm.provider :virtualbox do |vb, override|
    override.ssh.forward_agent = true
    override.vm.network :private_network, ip: "10.10.10.10"
  end
end

实际上,第一个参数用于提供者特定的配置(例如vb.customize),而第二个参数用于覆盖。请参阅文档以获取更多信息。

于 2014-03-12T23:21:41.847 回答