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

gre*_*awk 13 vagrant vagrantfile

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

config.vm.network "public_network", ip: "172.17.255.13", netmask: "255.255.255.0"
Run Code Online (Sandbox Code Playgroud)

它确实建立了BRIDGED连接,但它是一个BRIDGED DHCP连接.

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

这是一个CentOS-6.6 Box.

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

gre*_*awk 5

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

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

config.vm.network "public_network", auto_config: false
Run Code Online (Sandbox Code Playgroud)

在我设置之后,我可以运行一个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
Run Code Online (Sandbox Code Playgroud)

它运行一个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
Run Code Online (Sandbox Code Playgroud)

就像我说的,看起来它已经有一段时间了.我创造了目前最优雅的解决方案.