VMware: Crear Virtual Machine con Terraform
Os explicamos cómo generar máquinas virtuales con terraform con provider VMware.
El otro día comentamos, en qué consistía Terraform y como lo podíamos instalar en un LXC Centos.
Hoy vamos a empezar con la práctica. Vamos a usar vSphere 7, para lanzar máquinas virtuales sobre él, generadas a través de un fichero tf de terraform.
Nos conectamos a nuestro vCenter y tenemos que tener claros todos los datos que vamos a utilizar. Como el nombre del Datacenter, del cluster, del pool,…
Del Storage:
De las redes:
Las carpetas donde queremos dejar las máquinas virtuales:
Una vez que los tenemos, iremos al servidor de Terraform y generamos un fichero tf:
1 |
nano elblogdenegu.tf |
Mi ejemplo es el siguiente, creo una máquina virtual Debian desde una ISO:
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 |
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 } resource "vsphere_virtual_machine" "vm" { name = "MVPRUEBATERRAFORM" resource_pool_id = data.vsphere_resource_pool.pool.id datastore_id = data.vsphere_datastore.datastore.id num_cpus = 2 memory = 1024 guest_id = "other3xLinux64Guest" network_interface { network_id = data.vsphere_network.network.id } disk { label = "disk0" size = 20 } cdrom { datastore_id = data.vsphere_datastore.datastore.id path = "ISOS/debian-10.3.0-amd64-netinst.iso" } } |
Arrancamos el entorno:
1 |
terraform init |
Y comprobamos que no tenemos errores y qué va a hacer el fichero:
1 |
terraform plan |
Aplicamos:
1 |
terraform apply |
Y comprobamos el resultado:
Os dejo el procedimiento vía vídeo…
VIDEO YOUTUBE: Terraform VMware Provider crear máquina virtual
¿Te ha gustado la entrada SÍGUENOS EN TWITTER?
Te ha gustado la entrada SGUENOS EN TWITTER O INVITANOS A UN CAFE?
Raul,
Excelente explicacion abordada, tengo un duda, si manejo templates dentro de mi vCenter que cambia en el codigo de terraform?
Gracias. Déjame que te haga una entrada para explicarlo este fin de semana que tendré algo de tiempo. Hay que agregar una sección con el nombre de la template y luego otra clone. Salu2
Muchas gracias Raul.
Estare atento y nuevamente excelente post.
Saludos.
https://www.maquinasvirtuales.eu/terraform-crear-maquina-virtual-desde-template/
Ya lo tienes César. Salu2
Excelente Raul.
Muchas Gracias.
Hola, maravilloso post.
Qué permisos hay que tener para poder desplegar VM lanzando la IaaC, se supone que puedo crear VM pero al ejecutar el Apply y comenzar me da un error de “NoPermission”
Graciasss
Te dejo unos cuantos básicos:
1. Permissions on Datacenter Level
• Datastore > Allocate space
• Datastore > Browse datastore
• Network > Assign network
• Resource > Assign virtual machine to resource pool
2. Permissions on Resource Pool Level
• Resource > Assign virtual machine to resource pool
3. Permissions on VM Folder Level
• Virtual machine > Inventory > Create new
• Virtual machine > Inventory > Register
• Virtual machine > Configuration > Add new disk
• Virtual machine > Configuration > Add or remove device
• Virtual machine > Configuration > Change CPU count
• Virtual machine > Configuration > Change Memory
• Virtual machine > Configuration > Change resource
• Virtual machine > Interaction > Power On
• Virtual machine > Interaction > Power Off
• Virtual machine > Interaction > Console interaction
4. Permissions on Network Level
• Network > Assign network