You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Terraform count元数据部署vSphere虚拟机时IP重复问题求助

问题原因分析

并行部署时DHCP分配重复IP的核心原因是克隆的虚拟机残留了模板中的网络唯一标识信息:并行启动时多台VM向DHCP服务器请求IP时携带了相同的标识(如网卡硬件缓存、系统机器ID等),导致DHCP服务器误判为同一设备分配重复IP;其次Terraform配置中等待VM获取IP的超时时间过短,可能导致VM未完成网络初始化就被视为就绪。

解决方案

1. 清理模板中的网络残留配置

Linux模板处理

  • 删除网卡持久化规则文件:
    rm -f /etc/udev/rules.d/70-persistent-net.rules
    
  • 删除机器ID文件(首次启动时会自动生成新ID):
    rm -f /etc/machine-id
    
  • 确保网络配置文件(如/etc/sysconfig/network-scripts/ifcfg-*)仅保留DHCP相关配置,无固定MAC或IP设置。

Windows模板处理

使用Sysprep工具执行 generalize 操作,重置系统的SID、网络适配器标识等信息:

  1. 打开管理员权限的命令提示符
  2. 执行:
    C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown
    
  3. 关闭后的虚拟机转为模板,确保克隆后首次启动会重新初始化网络。

2. 调整Terraform配置

延长IP等待超时时间

将wait_for_guest_ip_timeout从3秒延长至60秒,给VM足够时间完成DHCP请求:

wait_for_guest_ip_timeout = 60

启用网络就绪等待

不要将wait_for_guest_net_timeout设为0,设置为30秒确保网络适配器就绪:

wait_for_guest_net_timeout = 30

增加克隆自定义配置

通过customize块设置唯一主机名,同时触发系统网络重置:

clone {
  template_uuid = data.vsphere_virtual_machine.template.id
  customize {
    linux_options {
      host_name = "${var.vm_name}-${count.index+1}"
      # 可选:设置域名
      # domain = "your-domain.com"
    }
    # Windows模板使用以下配置
    # windows_options {
    #   computer_name = "${var.vm_name}-${count.index+1}"
    # }
  }
}

3. 确认vSphere克隆MAC地址设置

检查模板的网卡配置,确保克隆时自动生成新的MAC地址:

  1. 打开vSphere客户端,编辑模板的虚拟机设置
  2. 找到网络适配器,确认“MAC地址”选项为生成(而非固定)

内容的提问来源于stack exchange,提问作者Vivek Bangare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 08:33:34