Skip to content

Terraform - vSphere

Credentials

export VSPHERE_USER=
export VSPHERE_PASSWORD=

Provider

terraform {
  required_providers {
    vsphere = {
      source = "hashicorp/vsphere"
      version = "2.2.0"
    }
  }
}

provider "vsphere" {
  vsphere_server       = "esx1.slashroot.fr"
  allow_unverified_ssl = true
}

data "vsphere_datacenter" "datacenter" {
  name = "VxRail-Datacenter"
}

data "vsphere_datastore" "datastore" {
  name          = "VxRail-Virtual-SAN-Datastore-1"
  datacenter_id = data.vsphere_datacenter.datacenter.id
}

data "vsphere_compute_cluster" "cluster" {
  name          = "VxRail-Virtual-SAN-Cluster-1"
  datacenter_id = data.vsphere_datacenter.datacenter.id
}

Créer une VM

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

resource "vsphere_virtual_machine" "vm" {
  name             = "SANJI"
  num_cpus         = 2
  memory           = 4096
  guest_id         = "rhel8_64Guest"
  datastore_id     = data.vsphere_datastore.datastore.id
  resource_pool_id = data.vsphere_compute_cluster.cluster.resource_pool_id
  wait_for_guest_net_routable = false
  wait_for_guest_net_timeout = 0

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

  disk {
    label = "disk0"
    size  = 30
  }
}

output "mac"{
  value ="${vsphere_virtual_machine.vm.network_interface[0].mac_address}"
}