Vagrant VMWare公共(public): Unable to set static automatically

标签 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 盒子。

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

最佳答案

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

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

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 和网络掩码作为参数传递给 shell 脚本。

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

设置IP.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

就像我说的,看起来它已经有一段时间了。我暂时创建了最优雅的修复程序。

关于 Vagrant VMWare公共(public): Unable to set static automatically,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29921891/

相关文章:

Vagrant 错误 - 同名的 VirtualBox 机器已经存在

shell - 如何设置vagrant用户对$SHELL使用/bin/bash

vagrant 设置重复的 IP 地址; Ansible 会接他们吗?

vagrant - host_vars 和 group_vars 未加载

php - 初始化权限被拒绝@ rb_sysopen - Vagrant Up

vagrant - Chef/Vagrant - 如何将综合安装程序指向已下载的文件?

server - 如何自动纠正vagrant中的系统时钟

syntax - PyCharm 中的 Vagrantfile 语法高亮

ssh - 使用 MySQL Workbench 连接到 Vagrant Box

ubuntu - guest 机器中缺少 Vagrant 同步文件夹