2015-10-29 49 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進行硬編碼。

相關問題