我们已经使用 terraform 在 vSphere 中配置了一个 VM,它会在状态文件中返回 VM 详细信息。但它不会返回用于唯一标识 vCenter 中的 VM 的 VM Instance UUID。
它仅提供无法用于进行 vSphere API 调用的 VM uuid。vSphere API 需要实例 UUID 来识别 VM。
任何帮助/指针将不胜感激。
以下是在 vSphere 中配置 VM 的主要 terraform 文件:
###############################
#Description: to provide linux vm using Vsphere
#Owner: Iautomate
#Created On: 29th Oct, 2020
#Output: Provides a Linux Vm using a template
####################################
#VMWARE PROVIDER
provider "vsphere" {
version = "1.12"
user = var.vsphere_user
password = var.vsphere_password
vsphere_server = var.vsphere_server
# If you have a self-signed cert
allow_unverified_ssl = true
}
data "vsphere_datacenter" "dc" {
name = var.datacenter_name
}
data "vsphere_datastore" "datastore" {
name = var.datastore_name
datacenter_id = data.vsphere_datacenter.dc.id
}
data "vsphere_resource_pool" "pool" {
name = var.resource_pool
datacenter_id = data.vsphere_datacenter.dc.id
}
data "vsphere_network" "network" {
name = var.network_name
datacenter_id = data.vsphere_datacenter.dc.id
}
data "vsphere_virtual_machine" "template" {
name = var.template_name
datacenter_id = data.vsphere_datacenter.dc.id
}
resource "vsphere_virtual_machine" "vm" {
name = var.vm_name
resource_pool_id = data.vsphere_resource_pool.pool.id
datastore_id = data.vsphere_datastore.datastore.id
num_cpus = var.cpus
memory = var.mem
guest_id = var.guest
network_interface {
network_id = data.vsphere_network.network.id
}
disk {
label = var.disk_label
size = var.disk_size
}
clone {
template_uuid = data.vsphere_virtual_machine.template.id
customize {
linux_options {
host_name = var.vm_name
domain = var.domain_name
}
network_interface {
ipv4_address = var.ipaddress
ipv4_netmask = var.netmask
}
ipv4_gateway = var.gateway
}
}
}
==================================================== ================
它接受另一个提供所有参数的变量文件。
正在配置 VM,但 terraform 未返回用于在 vCenter 中标识 VM 的唯一 id-Instance UUID。有什么方法可以让我将此实例 UUID 作为 terraform 中的响应?