在vSphere中使用Terraform创建虚拟机时出现“定制虚拟机时发生错误”的错误。

3
provider "vsphere" {
    vsphere_server = "myserver"
    user = "myuser"
    password = "mypass"
    allow_unverified_ssl = true
    version = "v1.21.0"
}

data "vsphere_datacenter" "dc" {
  name = "pcloud-datacenter"
}

data "vsphere_datastore_cluster" "datastore_cluster" {
  name          = "pc-storage"
  datacenter_id = data.vsphere_datacenter.dc.id
}

data "vsphere_compute_cluster" "compute_cluster" {
  name          = "pcloud-cluster"
  datacenter_id = data.vsphere_datacenter.dc.id
}

data "vsphere_network" "network" {
  name          = "u32c01p26-1514"
  datacenter_id = data.vsphere_datacenter.dc.id
}


data "vsphere_virtual_machine" "vm_template" {
  name          = "first-terraform-vm"
  datacenter_id = data.vsphere_datacenter.dc.id
}


resource "vsphere_virtual_machine" "vm" {
  count = 1
  name = "first-terraform-vm-1"
  resource_pool_id = data.vsphere_compute_cluster.compute_cluster.resource_pool_id
  datastore_cluster_id = data.vsphere_datastore_cluster.datastore_cluster.id

  num_cpus   = 2
  memory     = 1024

  wait_for_guest_ip_timeout = 2
  wait_for_guest_net_timeout = 0

  guest_id = data.vsphere_virtual_machine.vm_template.guest_id

  scsi_type = data.vsphere_virtual_machine.vm_template.scsi_type

  network_interface {
    network_id   = data.vsphere_network.network.id
    adapter_type = data.vsphere_virtual_machine.vm_template.network_interface_types[0]
  }

  disk {
    name             = "disk0.vmdk"
    size             = data.vsphere_virtual_machine.vm_template.disks.0.size
    eagerly_scrub    = data.vsphere_virtual_machine.vm_template.disks.0.eagerly_scrub
    thin_provisioned = data.vsphere_virtual_machine.vm_template.disks.0.thin_provisioned
  }
  
  folder = "virtual-machines"

  clone {
    template_uuid = data.vsphere_virtual_machine.vm_template.id
   
    customize {
      linux_options {
        host_name = "first-terraform-vm-1"
        domain = "localhost.localdomain"
      }
      network_interface {
        ipv4_address = "10.10.14.100"
        ipv4_netmask = 24
      }
      ipv4_gateway = "10.10.14.1"
    }
  }
}


命令terraform脚本会出现以下错误
Error: 
Virtual machine customization failed on "/pcloud-datacenter/vm/virtual-machines/first-terraform-vm-1":

An error occurred while customizing VM first-terraform-vm-1. For details reference the log file <No Log> in the guest OS.

The virtual machine has not been deleted to assist with troubleshooting. If
corrective steps are taken without modifying the "customize" block of the
resource configuration, the resource will need to be tainted before trying
again. For more information on how to do this, see the following page:
https://www.terraform.io/docs/commands/taint.html


  on create_vm.tf line 34, in resource "vsphere_virtual_machine" "vm":
  34: resource "vsphere_virtual_machine" "vm" {



一些生成的虚拟机"first-terraform-vm-1"在网络设置中没有勾选连接框。但是我检查了我的模板"first-terraform-vm",它已经勾选了网络连接框。
我在github上看到了类似的帖子https://github.com/hashicorp/terraform-provider-vsphere/issues/951,但不确定为什么这个问题仍然存在?
Vsphere版本:6.7 Terraform v0.12.28 provider.vsphere v1.21.0
我的模板有问题吗?还是我漏掉了什么?有人能帮忙吗?我已经卡在这里2天了。
1个回答

1
问题似乎出在我使用的模板上。Linux模板应该安装并运行网络管理器。看起来terraform使用网络管理器为新创建的虚拟机分配IP地址。

1
systemctl status NetworkManager = 运行中且已启用。但是,错误仍然存在。 - Guy Rawsthorn
NetworkManager正在运行但错误仍然存在。 - Oleh Vasylyev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接