我正在使用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
答案 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。