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

Vagrant VMWare Public:无法自动设置静态,vagrant,vagrantfile,Vagrant,Vagrantfile,我正在使用VMWare插件。我目前正在使用以下工具: config.vm.network "public_network", ip: "172.17.255.13", netmask: "255.255.255.0" 它确实建立了一个桥接的连接,但是它是一个桥接的DHCP连接 有人成功地使用了静态IP吗 这是一个CentOS-6.6盒子 更新:这是特定的虚拟机配置,创建者没有删除/etc/中需要在虚拟机打包之前清除的文件根据,人们在使用vmware\u fusion作为提供商时遇到了相同的问题

我正在使用VMWare插件。我目前正在使用以下工具:

config.vm.network "public_network", ip: "172.17.255.13", netmask: "255.255.255.0"
它确实建立了一个
桥接的
连接,但是它是一个
桥接的DHCP
连接

有人成功地使用了静态IP吗

这是一个CentOS-6.6盒子

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

根据,人们在使用
vmware\u fusion
作为提供商时遇到了相同的问题;当is与一个
virtualbox
提供商合作时

VMware Fusion/Workstation插件的
v3.2.0
似乎已经发布,并对此进行了错误修复。尝试将VMWare插件更新到此版本,然后再次测试

但是,如果我们看一下3.2.0的版本,它会提到:

核心:静态IP适用于公共网络(专用网络有 (始终有效)


在新发布的版本(>3.2.0)中,似乎没有任何东西可以解决这个问题。

我在等待Vagurant vmware workstation插件团队修补这个问题时,想出了一个非常优雅的解决方案

我设置了vagrant设置了一个公共网络,自动配置设置为false。(这样vagrant不会覆盖我更改的文件)

设置之后,我可以运行一个shell provisioner,以回显到包含eth1设置的文件(eth0始终是vagrant的纯主机网络)

它运行一个shell脚本,将IP和网络掩码作为参数传递到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
echo将IP设置为$1,将网络掩码设置为$2

cat发现我们使用的CentOS基地流浪者箱出现了某种问题。我手工打包了一个全新的CentOS vagrant box,它可以使用vagrant插件进行配置。

我仍然存在声明公共网络并将其配置为DHCP的问题。
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
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