有没有办法在DHCP指定的Virtualbox的VagrantFile中使用IP地址?

时间:2015-10-29 08:52:39

标签: vagrant virtualbox dhcp

我正在使用Vagrant创建一个VirtualBox机器。在配置中,我需要知道VirtualBox DHCP分配的盒子的IP地址。有没有办法在Vagrantfile中使用该分配的IP地址?

Vagrant.configure(2) do |config|
  # ... some more config

  config.vm.network "private_network", type: "dhcp"

  # ... some more config

  config.vm.provision "shell", inline: <<-SHELL
    sudo -i /vagrant/my_provisioning_script.sh <insert ip here>
  SHELL
end

1 个答案:

答案 0 :(得分:3)

你可以在流浪盒内做一个ifconfig以获得你的盒子的ips;应该是eth0中的ip,但是因为你在配置上需要它而你正在使用shell,你可以这样做:

/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'

在我的流浪盒中输出

10.0.2.15

所以你的命令可能是

  config.vm.provision "shell", inline: <<-SHELL
    sudo -i /vagrant/my_provisioning_script.sh $(/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
  SHELL

我用ping尝试了上述内容。

如果需要,您也可以定义ip,编辑Vagrant文​​件并添加:

config.vm.network "public_network", ip: "192.168.0.23"

这会将ip分配给你的盒子。如果你ifconfig,它将列在eth1上。所以你可以在你的脚本上硬编码ip。