terraform vSphere - 数据中心在文件夹路径中出现两次

问题描述 投票:0回答:0
  • 我是 terraform 的新手
  • 我正在尝试在 vCenter (vSphere Client) 中自动构建实验室
  • 我正在尝试在其中创建一个子文件夹和一个虚拟机(来自模板)
  • vSphere 客户端中的主机树如下所示:
company.com
|_PRODUCTION (datacenter)
  |_DEV
    |_PRODUCT
      |_DOMAIN.COM
        |_LAB_A
        |_LAB_B
          |_LAB_B_VM1
          |_LAB_B_VM2
          |_LAB_B_VM3
  • 我的 terraform main.tf 脚本是:
terraform {
  required_providers {
    vsphere = {
      source  = "hashicorp/vsphere"
    }
  }
  required_version = ">= 0.13"
}

provider "vsphere" {
  user                 = "user$domain.com"
  password             = "pass"
  vsphere_server       = "company.com"
  allow_unverified_ssl = true
} 

data "vsphere_datacenter" "datacenter" {
  name                 = "PRODUCTION"
}

data "vsphere_datastore" "datastore" {
  name                  = "datastore_01"
  datacenter_id         = "${data.vsphere_datacenter.datacenter.id}"
}

data "vsphere_compute_cluster" "cluster" {
  name                  = "cluster_01"
  datacenter_id         = "${data.vsphere_datacenter.datacenter.id}"
}

data "vsphere_network" "network" {
  name                  = "network_01"
  datacenter_id         = "${data.vsphere_datacenter.datacenter.id}"
}

data "vsphere_folder" "parent" {
  path                  = "PRODUCTION/vm/DEV/PRODUCT/DOMAIN.COM"
}

resource "vsphere_folder" "folder" {
  path                  = "${data.vsphere_folder.parent.path}/lab_01"
  type                  = "folder"
  datacenter_id         = "${data.vsphere_datacenter.datacenter.id}"
}

data "vsphere_virtual_machine" "template_center" {
  name                  = "WS2016"
  datacenter_id         = "${data.vsphere_datacenter.datacenter.id}"
}

resource "vsphere_virtual_machine" "center" {
  name                  = "lab_01_center"
  folder                = "${vsphere_folder.folder.path}"
  resource_pool_id      = "${data.vsphere_compute_cluster.cluster.resource_pool_id}"
  datastore_id          = "${data.vsphere_datastore.datastore.id}"
  guest_id              = "${data.vsphere_virtual_machine.template_center.guest_id}"

  network_interface {
    network_id = "${data.vsphere_network.network.id}"
  }

  disk {
    label            = "disk0"
    size             = data.vsphere_virtual_machine.template_center.disks.0.size
    thin_provisioned = data.vsphere_virtual_machine.template_center.disks.0.thin_provisioned
  }

  clone {
    template_uuid = "${data.vsphere_virtual_machine.template_center.id}"
  }
}
  • 我执行了以下命令:
  1. terraform init
  2. terraform play
  3. terraform apply
  • terraform apply
    失败,输出如下(敏感数据用 *** 隐藏):
PS C:\terraform\lab_1> terraform apply    
data.vsphere_datacenter.datacenter: Reading...
data.vsphere_folder.parent: Reading...
data.vsphere_datacenter.datacenter: Read complete after 0s [id=datacenter-***]
data.vsphere_network.network: Reading...
data.vsphere_datastore.datastore: Reading...
data.vsphere_compute_cluster.cluster: Reading...
data.vsphere_virtual_machine.template_center: Reading...
data.vsphere_folder.parent: Read complete after 0s [id=group-v***]
data.vsphere_network.network: Read complete after 0s [id=network-***]
data.vsphere_compute_cluster.cluster: Read complete after 0s [id=domain-c***]
data.vsphere_datastore.datastore: Read complete after 0s [id=datastore-***]
data.vsphere_virtual_machine.template_center: Read complete after 1s [id=***]

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # vsphere_folder.folder will be created
  + resource "vsphere_folder" "folder" {
      + datacenter_id = "datacenter-***"
      + id            = (known after apply)
      + path          = "PRODUCTION/vm/DEV/PRODUCT/DOMAIN.COM/lab_01"
      + type          = "vm"
    }

  # vsphere_virtual_machine.center will be created
  + resource "vsphere_virtual_machine" "center" {
      + annotation                              = (known after apply)
      + boot_retry_delay                        = 10000
      + change_version                          = (known after apply)
      + cpu_limit                               = -1
      + cpu_share_count                         = (known after apply)
      + cpu_share_level                         = "normal"
      + datastore_id                            = "datastore-134759"
      + default_ip_address                      = (known after apply)
      + ept_rvi_mode                            = "automatic"
      + firmware                                = "bios"
      + folder                                  = "PRODUCTION/vm/DEV/PRODUCT/DOMAIN.COM/lab_01"
      + force_power_off                         = true
      + guest_id                                = "windows9Server64Guest"
      + guest_ip_addresses                      = (known after apply)
      + hardware_version                        = (known after apply)
      + host_system_id                          = (known after apply)
      + hv_mode                                 = "hvAuto"
      + id                                      = (known after apply)
      + ide_controller_count                    = 2
      + imported                                = (known after apply)
      + latency_sensitivity                     = "normal"
      + memory                                  = 1024
      + memory_limit                            = -1
      + memory_share_count                      = (known after apply)
      + memory_share_level                      = "normal"
      + migrate_wait_timeout                    = 30
      + moid                                    = (known after apply)
      + name                                    = "lab_01_center"
      + num_cores_per_socket                    = 1
      + num_cpus                                = 1
      + power_state                             = (known after apply)
      + poweron_timeout                         = 300
      + reboot_required                         = (known after apply)
      + resource_pool_id                        = "resgroup-***"
      + run_tools_scripts_after_power_on        = true
      + run_tools_scripts_after_resume          = true
      + run_tools_scripts_before_guest_shutdown = true
      + run_tools_scripts_before_guest_standby  = true
      + sata_controller_count                   = 0
      + scsi_bus_sharing                        = "noSharing"
      + scsi_controller_count                   = 1
      + scsi_type                               = "pvscsi"
      + shutdown_wait_timeout                   = 3
      + storage_policy_id                       = (known after apply)
      + swap_placement_policy                   = "inherit"
      + tools_upgrade_policy                    = "manual"
      + uuid                                    = (known after apply)
      + vapp_transport                          = (known after apply)
      + vmware_tools_status                     = (known after apply)
      + vmx_path                                = (known after apply)
      + wait_for_guest_ip_timeout               = 0
      + wait_for_guest_net_routable             = true
      + wait_for_guest_net_timeout              = 5

      + clone {
          + template_uuid = "***"
          + timeout       = 30
        }

      + disk {
          + attach            = false
          + controller_type   = "scsi"
          + datastore_id      = "<computed>"
          + device_address    = (known after apply)
          + disk_mode         = "persistent"
          + disk_sharing      = "sharingNone"
          + eagerly_scrub     = false
          + io_limit          = -1
          + io_reservation    = 0
          + io_share_count    = 0
          + io_share_level    = "normal"
          + keep_on_remove    = false
          + key               = 0
          + label             = "disk0"
          + path              = (known after apply)
          + size              = 60
          + storage_policy_id = (known after apply)
          + thin_provisioned  = true
          + unit_number       = 0
          + uuid              = (known after apply)
          + write_through     = false
        }

      + network_interface {
          + adapter_type          = "vmxnet3"
          + bandwidth_limit       = -1
          + bandwidth_reservation = 0
          + bandwidth_share_count = (known after apply)
          + bandwidth_share_level = "normal"
          + device_address        = (known after apply)
          + key                   = (known after apply)
          + mac_address           = (known after apply)
          + network_id            = "network-***"
        }
    }

Plan: 2 to add, 0 to change, 0 to destroy.

Changes to Outputs:
  + cluster                 = {
      + datacenter_id    = "datacenter-***"
      + id               = "domain-c***"
      + name             = "IT"
      + resource_pool_id = "resgroup-***"
    }
  + folder                  = {
      + custom_attributes = null
      + datacenter_id     = "datacenter-***"
      + id                = (known after apply)
      + path              = "PRODUCTION/vm/DEV/PRODUCT/DOMAIN.COM/lab_01"
      + tags              = null
      + type              = "vm"
    }
  + network                 = {
      + datacenter_id                   = "datacenter-***"
      + distributed_virtual_switch_uuid = null
      + id                              = "network-***"
      + name                            = "IT_VLAN***"
      + type                            = "Network"
    }
  + parent_folder           = {
      + id   = "group-v***"
      + path = "PRODUCTION/vm/DEV/PRODUCT/DOMAIN.COM/lab_01"
    }
  + template_center         = {
      + alternate_guest_name                    = ""
      + annotation                              = ""
      + boot_delay                              = 0
      + boot_retry_delay                        = 10000
      + boot_retry_enabled                      = false
      + change_version                          = "2019-12-11T14:09:21.421166Z"
      + cpu_hot_add_enabled                     = false
      + cpu_hot_remove_enabled                  = false
      + cpu_limit                               = -1
      + cpu_performance_counters_enabled        = false
      + cpu_reservation                         = 0
      + cpu_share_count                         = 8000
      + cpu_share_level                         = "normal"
      + datacenter_id                           = "datacenter-***"
      + default_ip_address                      = null
      + disks                                   = [
          + {
              + eagerly_scrub    = false
              + label            = "Hard disk 1"
              + size             = 60
              + thin_provisioned = true
              + unit_number      = 0
            },
        ]
      + efi_secure_boot_enabled                 = false
      + enable_disk_uuid                        = false
      + enable_logging                          = false
      + ept_rvi_mode                            = "automatic"
      + extra_config                            = {}
      + firmware                                = "bios"
      + guest_id                                = "windows9Server64Guest"
      + guest_ip_addresses                      = []
      + hardware_version                        = 11
      + hv_mode                                 = "hvAuto"
      + id                                      = "***"
      + ide_controller_scan_count               = 2
      + latency_sensitivity                     = "normal"
      + memory                                  = 8192
      + memory_hot_add_enabled                  = false
      + memory_limit                            = -1
      + memory_reservation                      = 0
      + memory_share_count                      = 81920
      + memory_share_level                      = "normal"
      + name                                    = "WS2016"
      + nested_hv_enabled                       = false
      + network_interface_types                 = [
          + "vmxnet3",
        ]
      + network_interfaces                      = [
          + {
              + adapter_type          = "vmxnet3"
              + bandwidth_limit       = -1
              + bandwidth_reservation = 0
              + bandwidth_share_count = 50
              + bandwidth_share_level = "normal"
              + mac_address           = "00:50:56:80:23:03"
              + network_id            = "network-***"
            },
        ]
      + num_cores_per_socket                    = 8
      + num_cpus                                = 8
      + replace_trigger                         = null
      + run_tools_scripts_after_power_on        = true
      + run_tools_scripts_after_resume          = true
      + run_tools_scripts_before_guest_reboot   = false
      + run_tools_scripts_before_guest_shutdown = true
      + run_tools_scripts_before_guest_standby  = true
      + sata_controller_scan_count              = 0
      + scsi_bus_sharing                        = "noSharing"
      + scsi_controller_scan_count              = 1
      + scsi_type                               = "lsilogic-sas"
      + storage_policy_id                       = null
      + swap_placement_policy                   = "inherit"
      + sync_time_with_host                     = false
      + sync_time_with_host_periodically        = true
      + tools_upgrade_policy                    = "manual"
      + uuid                                    = "***"
      + vapp                                    = null
      + vapp_transport                          = []
      + vbs_enabled                             = false
      + vvtd_enabled                            = false
    }
  + vsphere_virtual_machine = {
      + alternate_guest_name                    = null
      + annotation                              = (known after apply)
      + boot_delay                              = null
      + boot_retry_delay                        = 10000
      + boot_retry_enabled                      = null
      + cdrom                                   = []
      + change_version                          = (known after apply)
      + clone                                   = [
          + {
              + customize       = []
              + linked_clone    = null
              + ovf_network_map = null
              + ovf_storage_map = null
              + template_uuid   = "***"
              + timeout         = 30
            },
        ]
      + cpu_hot_add_enabled                     = null
      + cpu_hot_remove_enabled                  = null
      + cpu_limit                               = -1
      + cpu_performance_counters_enabled        = null
      + cpu_reservation                         = null
      + cpu_share_count                         = (known after apply)
      + cpu_share_level                         = "normal"
      + custom_attributes                       = null
      + datacenter_id                           = null
      + datastore_cluster_id                    = null
      + datastore_id                            = "datastore-***"
      + default_ip_address                      = (known after apply)
      + disk                                    = [
          + {
              + attach            = false
              + controller_type   = "scsi"
              + datastore_id      = "<computed>"
              + device_address    = (known after apply)
              + disk_mode         = "persistent"
              + disk_sharing      = "sharingNone"
              + eagerly_scrub     = false
              + io_limit          = -1
              + io_reservation    = 0
              + io_share_count    = 0
              + io_share_level    = "normal"
              + keep_on_remove    = false
              + key               = 0
              + label             = "disk0"
              + path              = (known after apply)
              + size              = 60
              + storage_policy_id = (known after apply)
              + thin_provisioned  = true
              + unit_number       = 0
              + uuid              = (known after apply)
              + write_through     = false
            },
        ]
      + efi_secure_boot_enabled                 = null
      + enable_disk_uuid                        = null
      + enable_logging                          = null
      + ept_rvi_mode                            = "automatic"
      + extra_config                            = null
      + firmware                                = "bios"
      + folder                                  = "PRODUCTION/vm/DEV/PRODUCT/DOMAIN.COM/lab_01"
      + force_power_off                         = true
      + guest_id                                = "windows9Server64Guest"
      + guest_ip_addresses                      = (known after apply)
      + hardware_version                        = (known after apply)
      + host_system_id                          = (known after apply)
      + hv_mode                                 = "hvAuto"
      + id                                      = (known after apply)
      + ide_controller_count                    = 2
      + ignored_guest_ips                       = null
      + imported                                = (known after apply)
      + latency_sensitivity                     = "normal"
      + memory                                  = 1024
      + memory_hot_add_enabled                  = null
      + memory_limit                            = -1
      + memory_reservation                      = null
      + memory_share_count                      = (known after apply)
      + memory_share_level                      = "normal"
      + migrate_wait_timeout                    = 30
      + moid                                    = (known after apply)
      + name                                    = "lab_01_center"
      + nested_hv_enabled                       = null
      + network_interface                       = [
          + {
              + adapter_type          = "vmxnet3"
              + bandwidth_limit       = -1
              + bandwidth_reservation = 0
              + bandwidth_share_count = (known after apply)
              + bandwidth_share_level = "normal"
              + device_address        = (known after apply)
              + key                   = (known after apply)
              + mac_address           = (known after apply)
              + network_id            = "network-***"
              + ovf_mapping           = null
              + use_static_mac        = null
            },
        ]
      + num_cores_per_socket                    = 1
      + num_cpus                                = 1
      + ovf_deploy                              = []
      + pci_device_id                           = null
      + power_state                             = (known after apply)
      + poweron_timeout                         = 300
      + reboot_required                         = (known after apply)
      + replace_trigger                         = null
      + resource_pool_id                        = "resgroup-***"
      + run_tools_scripts_after_power_on        = true
      + run_tools_scripts_after_resume          = true
      + run_tools_scripts_before_guest_reboot   = null
      + run_tools_scripts_before_guest_shutdown = true
      + run_tools_scripts_before_guest_standby  = true
      + sata_controller_count                   = 0
      + scsi_bus_sharing                        = "noSharing"
      + scsi_controller_count                   = 1
      + scsi_type                               = "pvscsi"
      + shutdown_wait_timeout                   = 3
      + storage_policy_id                       = (known after apply)
      + swap_placement_policy                   = "inherit"
      + sync_time_with_host                     = null
      + sync_time_with_host_periodically        = null
      + tags                                    = null
      + tools_upgrade_policy                    = "manual"
      + uuid                                    = (known after apply)
      + vapp                                    = []
      + vapp_transport                          = (known after apply)
      + vbs_enabled                             = null
      + vmware_tools_status                     = (known after apply)
      + vmx_path                                = (known after apply)
      + vvtd_enabled                            = null
      + wait_for_guest_ip_timeout               = 0
      + wait_for_guest_net_routable             = true
      + wait_for_guest_net_timeout              = 5
    }

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

vsphere_folder.folder: Creating...
╷
│ Error: error trying to determine parent targetFolder: folder '/PRODUCTION/vm/PRODUCTION/vm/DEV/PRODUCT/DOMAIN.COM' not found
│
│   with vsphere_folder.folder,
│   on main.tf line 58, in resource "vsphere_folder" "folder":
│   58: resource "vsphere_folder" "folder" {
  • 文件夹字符串出现两次的原因是什么(请参阅错误 - 此字符串“/PRODUCTION/vm/”在文件夹路径中出现两次)?
  • 如何避免这种情况,以便 terraform 找到文件夹?
terraform devops vmware
© www.soinside.com 2019 - 2024. All rights reserved.