【问题标题】:error cloning virtual machine: timeout waiting for clone to complete克隆虚拟机时出错:等待克隆完成超时
【发布时间】:2019-10-03 09:32:08
【问题描述】:

我目前正在使用 Terraform 将多个 vm 部署到我的 vsphere。 问题是我使用 clone 语句在我的 vms 中设置静态 ip,我收到以下错误:error cloning virtual machine: timeout waiting for clone to complete

我目前使用的是 terraform 版本 v0.11.7,我的 vsphere 版本是 6.5

resource "vsphere_virtual_machine" "master" {

  guest_id = "${data.vsphere_virtual_machine.template.guest_id}" 
resource_pool_id = "${data.vsphere_compute_cluster.cluster.resource_pool_id}"
datastore_id = "${data.vsphere_datastore.datastore.id}"

count = "${length(var.vms_master)}"

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

  name = "${var.vms_master[count.index]}"
  datastore_id = "${data.vsphere_datastore.datastore.id}"

  disk {
    label="default_disk"
    size             = "${data.vsphere_virtual_machine.template.disks.0.size}"
    eagerly_scrub    = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
    thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}"
    unit_number=0  
}

  disk {
      size = "100"
      label = "${var.vms_master[count.index]}_1"
      thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}"
      eagerly_scrub    = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
        unit_number=2   
 }
  disk {
      size = "10"
      label = "${var.vms_master[count.index]}_2"
      thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}"
      eagerly_scrub    = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
        unit_number=3   
 }

  folder = "${vsphere_folder.master.path}"
  memory = 512
  num_cpus = 1
  wait_for_guest_ip_timeout = "0" #el laboratorio va muy lento... entonces el timeout se da antes de q la vm este creada!
  wait_for_guest_net_timeout = "0"

clone {
    template_uuid = "${data.vsphere_virtual_machine.template.id}"
    linked_clone  = "${var.vm_linked_clone}"

    customize {
      //timeout = "0"
  timeouts {
    create = "5s"
    delete = "2h"
  }
      linux_options {
        host_name = "${var.vms_hostname_master[count.index]}"
        domain    = "$ocp.essi.lab"
      }
      network_interface {
        ipv4_address = "${var.ip_list_master[count.index]}"          
        ipv4_netmask = "24"
      }

      ipv4_gateway    ="172.16.1.1"
      dns_server_list = ["${var.dns_servers}"]
    }   
}
}

预期结果: 将vm部署到vsphere

实际结果: 上述错误: 克隆虚拟机时出错:等待克隆完成超时

谢谢你们,欢迎任何见解! :)

【问题讨论】:

  • 看来clone.0.timeout 总是“30”。为什么没有变化?

标签: terraform vsphere


【解决方案1】:

解决方法很简单,我只需要再添加一条超时线:

resource "vsphere_virtual_machine" "master" {

  guest_id = "${data.vsphere_virtual_machine.template.guest_id}" 
resource_pool_id = "${data.vsphere_compute_cluster.cluster.resource_pool_id}"
datastore_id = "${data.vsphere_datastore.datastore.id}"

count = "${length(var.vms_master)}"

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

  name = "${var.vms_master[count.index]}"
  datastore_id = "${data.vsphere_datastore.datastore.id}"

  disk {
    label="default_disk"
    size             = "${data.vsphere_virtual_machine.template.disks.0.size}"
    eagerly_scrub    = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
    thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}"
    unit_number=0  
}

  disk {
      size = "100"
      label = "${var.vms_master[count.index]}_1"
      thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}"
      eagerly_scrub    = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
        unit_number=2   
 }
  disk {
      size = "10"
      label = "${var.vms_master[count.index]}_2"
      thin_provisioned = "${data.vsphere_virtual_machine.template.disks.0.thin_provisioned}"
      eagerly_scrub    = "${data.vsphere_virtual_machine.template.disks.0.eagerly_scrub}"
        unit_number=3   
 }

  folder = "${vsphere_folder.master.path}"
  memory = 512
  num_cpus = 1
  wait_for_guest_ip_timeout = "0" #el laboratorio va muy lento... entonces el timeout se da antes de q la vm este creada!
  wait_for_guest_net_timeout = "0"

clone {
    template_uuid = "${data.vsphere_virtual_machine.template.id}"
    linked_clone  = "${var.vm_linked_clone}"
      timeout = "0"   //NEW LINE ADDED

    customize {
      timeout = "0"
  timeouts {
    create = "5s"
    delete = "2h"
  }
      linux_options {
        host_name = "${var.vms_hostname_master[count.index]}"
        domain    = "$ocp.essi.lab"
      }
      network_interface {
        ipv4_address = "${var.ip_list_master[count.index]}"          
        ipv4_netmask = "24"
      }

      ipv4_gateway    ="172.16.1.1"
      dns_server_list = ["${var.dns_servers}"]
    }   
}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-18
    • 2017-02-22
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 1970-01-01
    • 2012-08-25
    • 2016-10-27
    相关资源
    最近更新 更多