Terraform vSphere provider
De Terraform vSphere provider configureren voor de controller, de resources die tegen Kyvernon zijn geverifieerd en de bekende lacunes, tags inbegrepen.
De Terraform vSphere provider beheert Kyvernon via de SOAP-, REST- en storage policy-endpoints van de controller. De vastgelegde verificatie gebruikte Terraform 1.17.1 met de provider hashicorp/vsphere 2.17.1. De provider is gedocumenteerd op registry.terraform.io.
Voordat u begint
- Schakel de compatibiliteitsendpoints in: Instellingen van de compatibiliteitsendpoints.
- Bepaal of uw configuratie tags gebruikt (
vsphere_tag_category,vsphere_tagen het argumenttags). De provider schakelt tags alleen in wanneer het endpoint de productnaam van vCenter Server van de leverancier meldt. In Kyvernon vraagt dat de instellingproduct_name, die standaard niet is ingesteld. Al het andere werkt met de standaardnaam. - De controller gebruikt een certificaat dat de provider standaard niet kent: stel voor een test
allow_unverified_ssl = truein, of vertrouw het certificaat op de machine waarop Terraform draait.
Met de CLI
Een configuratie zoals die voor vSphere wordt geschreven. De namen van de inventarisobjecten zijn die welke de console toont:
terraform {
required_providers {
vsphere = {
source = "hashicorp/vsphere"
version = "2.17.1"
}
}
}
provider "vsphere" {
vsphere_server = "controller.example.com:8443"
user = var.vsphere_user
password = var.vsphere_password
allow_unverified_ssl = true
}
data "vsphere_datacenter" "dc" {
name = "Datacenter"
}
data "vsphere_compute_cluster" "cluster" {
name = "Cluster-01"
datacenter_id = data.vsphere_datacenter.dc.id
}
data "vsphere_datastore" "ds" {
name = "ds-local-01"
datacenter_id = data.vsphere_datacenter.dc.id
}
data "vsphere_network" "net" {
name = "vm-net-01"
datacenter_id = data.vsphere_datacenter.dc.id
}
resource "vsphere_virtual_machine" "web" {
name = "prod-web-01"
resource_pool_id = data.vsphere_compute_cluster.cluster.resource_pool_id
datastore_id = data.vsphere_datastore.ds.id
num_cpus = 2
memory = 2048
guest_id = "otherLinux64Guest"
firmware = "efi"
wait_for_guest_net_timeout = 0
network_interface {
network_id = data.vsphere_network.net.id
}
disk {
label = "disk0"
size = 20
}
}terraform init
terraform plan
terraform applyStel wait_for_guest_net_timeout = 0 in wanneer er in de gast geen gastagent draait: de provider zou anders wachten op een adres dat de virtuele machine niet kan melden. Zonder gemeld adres plant de provider bij elk plan een wijziging van default_ip_address.
Geverifieerde resources
De vastgelegde reeks is init, plan, apply, plan (geen wijzigingen), apply van een wijziging, plan (geen wijzigingen) en destroy. De configuratie gebruikte de data sources voor datacenter, cluster, host, datastore, netwerk en resourcegroep, en de resources vsphere_folder, vsphere_virtual_machine (UEFI, een thin schijf, een netwerkadapter, een annotatie), vsphere_virtual_machine_snapshot, vsphere_tag_category en vsphere_tag. De wijziging voegde een vCPU, geheugen, een tweede schijf, een vergrote schijf, een tag en een snapshot toe. De details per stap staan in geverifieerde tools.
Met de standaardproductnaam slagen de stappen init, plan en destroy. apply stopt met de melding dat tags vCenter Server van de leverancier vereisen, omdat de configuratie tags gebruikte. Met product_name ingesteld slaagde de volledige reeks.
Bekende lacunes
- Tags vragen
product_name(zie hierboven). - De adaptertypen
vmxnet3,e1000eene1000worden geaccepteerd en aan de gast aangeboden als virtio-netwerkadapters. Het typesriovwordt geweigerd. - De storage policy-resources en vApps van de provider worden niet aangeboden. De service voor storage policies antwoordt alleen met zijn service content.
- Instellingen zonder betekenis in Kyvernon, bijvoorbeeld latency sensitivity of memory hot-add, worden opgeslagen en teruggelezen en hebben geen effect.
- Een wijziging van CPU of geheugen van een draaiende virtuele machine schakelt de machine eerst uit.
Zie ook
Versie 0.1. Laatst gewijzigd: 2026-11-13