2015-10-29 27 views
1

我正在创建一个带有Vagrant的VirtualBox机器。在配置中,我需要知道由VirtualBox DHCP分配的盒子的IP地址。有没有办法在Vagrantfile中使用分配的IP地址?有没有办法在Virtualbox通过DHCP分配的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 

回答

2

你可以在流浪箱里面做一个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,如果你想,编辑Vagrantfile并添加:

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

这将是IP分配给你的盒子。如果你做ifconfig它将在eth1上列出。所以你可以在你的脚本上对IP进行硬编码。

相关问题