Vagrant VMWare Public:无法自动设置静态

时间:2015-04-28 14:07:11

标签: vagrant vagrantfile

我正在使用VMWare插件。我目前正在使用以下内容:

config.vm.network "public_network", ip: "172.17.255.13", netmask: "255.255.255.0"

它确实建立了BRIDGED连接,但它是BRIDGED DHCP连接。

有没有人成功使用静态IP?

这是一个CentOS-6.6 Box。

更新:这是特定的VM配置,创建者没有删除/ etc /中需要在VM打包前清除的文件

3 个答案:

答案 0 :(得分:5)

我想出了一个非常优雅的解决方案,等待这个由vagrant-vmware-workstation插件团队修补。

我设置vagrant设置一个public_network,auto_config设置为false。 (所以流浪汉不会覆盖我改变的文件)

config.vm.network "public_network", auto_config: false

在我设置之后,我可以运行一个shell配置程序来回显包含eth1设置的文件(eth0总是只有vagrant的主机网络)

config.vm.provision "shell" do |s|
    s.path = "setIP.sh"
    s.args   = ["192.168.1.150", "255.255.255.0"] #ip/netmask
    privileged = "true"
end

它运行一个shell脚本,将IP和Netmask作为参数传递给shell脚本。

shell脚本修改/etc/sysconfig/network-scripts/ifcfg-eth1(CentOS-6.6中eth1的配置文件)然后继续重启网络以使设置生效。

setIP.sh:

echo Setting IP to $1, Netmask to $2
cat <<EOF > /etc/sysconfig/network-scripts/ifcfg-eth1

#PACHONK SET-IP CONFIG BEGIN
IPADDR=$1
NETMASK=$2
ONBOOT=yes
DEVICE=eth1
#PACHONK SET-IP CONFIG BEGIN

EOF

#Restart networking to make IP active
/etc/init.d/network restart
像我说的那样,看起来它已经有一段时间了。我创造了目前最优雅的解决方案。

答案 1 :(得分:1)

根据this bug thread,人们在使用vmware_fusion作为提供者时遇到了同样的问题;正在与virtualbox提供商合作。

v3.2.0的{​​{1}}似乎已经发布了错误修正版。尝试将VMWare插件更新到此版本并再次测试。

但如果我们看一下3.2 Vagrant VMWare Plugin,它会提到:

  

核心:静态IP适用于公共网络(专用网络具有   总是有效)

新发布的版本(&gt; 3.2.0)似乎没有解决这个问题。

答案 2 :(得分:0)

原来我们使用的CentOS基本流浪盒有某种问题。我手工打包了一个新的CentOS流浪盒,它可以使用vagrant插件进行配置。