Terraform: Crear máquina virtual desde template
El otro día os explicaba cómo generar una máquina virtual con una ISO desde Terraform, hoy vamos a hacerlo desde el mismo ejemplo, pero usaremos la máquina generada que la vamos a convertir en plantilla. Lo más importante, tener una plantilla con las VMware Tools instaladas:
Creo un fichero con el siguiente contenido:
1 |
nano elblogdenegu02.tf |
Copiarlo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
provider "vsphere" { user = "administrator@vsphere.local" password = "Password1234-" vsphere_server = "192.168.2.54" # If you have a self-signed cert allow_unverified_ssl = true } data "vsphere_datacenter" "dc" { name = "ELBLOGDENEGU" } data "vsphere_datastore" "datastore" { name = "NAS01" datacenter_id = data.vsphere_datacenter.dc.id } data "vsphere_resource_pool" "pool" { name = "TERRAFORM" datacenter_id = data.vsphere_datacenter.dc.id } data "vsphere_network" "network" { name = "VM Network" datacenter_id = data.vsphere_datacenter.dc.id } data "vsphere_virtual_machine" "template" { name = "MVPRUEBATERRAFORM" datacenter_id = data.vsphere_datacenter.dc.id } resource "vsphere_virtual_machine" "vm" { name = "MVPRUEBATERRAFORM02" resource_pool_id = data.vsphere_resource_pool.pool.id datastore_id = data.vsphere_datastore.datastore.id num_cpus = 2 memory = 1024 guest_id = data.vsphere_virtual_machine.template.guest_id scsi_type = data.vsphere_virtual_machine.template.scsi_type network_interface { network_id = data.vsphere_network.network.id } disk { label = "disk0" <strong>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</strong> } clone { template_uuid = data.vsphere_virtual_machine.template.id customize { linux_options { host_name = "debian-terraform" domain = "negu.local" } network_interface { ipv4_address = "192.168.2.18" ipv4_netmask = 24 } ipv4_gateway = "192.168.2.69" } } } |
Arrancamos:
1 |
terraform init |
Comprobamos el fichero:
1 |
terraform plan |
Y lanzamos la creación, primero se genera, luego se personaliza:
1 |
terraform apply |
El resto de fases:
Vemos si tenemos acceso a la máquina virtual según nuestros parámetros de personalización:
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?