Creación de Máquinas Virtuales en Azure con Terraform
Clase 23 de 37 • Curso de Terraform
Resumen
¿Cómo crear una máquina virtual desde cero en Azure con Terraform?
Crear una máquina virtual completamente desde cero puede parecer un reto, pero con las herramientas adecuadas, se convierte en un proceso bastante sencillo. En este caso, usaremos Terraform, una potente herramienta de infraestructura como código, para desplegar una máquina virtual en Azure. Aquí te mostramos cómo hacerlo guiándote con la documentación de Microsoft.
¿Cuál es el primer paso en el proceso?
Para comenzar, busca en internet "Windows virtual machine Terraform" para encontrar la documentación necesaria. Microsoft ofrece documentación en varios idiomas, lo cual facilita su entendimiento y aplicación. Es vital adaptar la documentación a nuestras necesidades específicas.
- Preparar el entorno: Abre VS Code y, dentro del repositorio de curso Terraform, crea una carpeta llamada
maquinas_virtuales
. - Configurar el archivo principal: Añade el archivo
main.tf
, copia y ajusta el contenido del proveedor si ya tienes uno configurado, pero elimina cualquier elemento no necesario. - Definir grupos de recursos:
- Crea variables para la ubicación (
location
) y nombre del grupo de recursos envariables.tf
. - Aquí está un ejemplo del bloque de variables:
variable "location" { type = string } variable "resource_group" { type = string }
- Crea variables para la ubicación (
¿Cómo construir los componentes de red?
Los componentes de red son esenciales para que la máquina virtual pueda comunicarse correctamente.
-
Crear una red virtual y una subred:
- Define un bloque
AzureRM_virtual_network
yAzureRM_subnet
. - Utiliza nombres descriptivos y heredados de tu grupo de recursos.
- Ejemplo de configuración:
resource "azurerm_virtual_network" "myTerraformNetwork" { name = "mynetwork" address_space = ["10.0.0.0/16"] location = var.location resource_group_name = var.resource_group } resource "azurerm_subnet" "myTerraformSubnet" { name = "mysubnet" resource_group_name = var.resource_group virtual_network_name = azurerm_virtual_network.myTerraformNetwork.name address_prefixes = ["10.0.1.0/24"] }
- Define un bloque
-
Configurar una IP pública y un grupo de seguridad de red:
- Asegura que el protocolo RDP sea accesible para conectar vía escritorio remoto.
- Ejemplo de bloque de grupo de seguridad:
resource "azurerm_network_security_group" "myTerraformnsg" { name = "mynsg" location = var.location resource_group_name = var.resource_group security_rule { name = "Allow-RDP" priority = 1000 direction = "Inbound" access = "Allow" protocol = "Tcp" source_port_range = "*" destination_port_range = "3389" source_address_prefix = "*" destination_address_prefix = "*" } }
-
Asociar interfaz de red con la seguridad:
- Define
AzureRM_network_interface
para conectar la máquina virtual con la red. - Haz la asociación con el grupo de seguridad configurado.
- Define
¿Cómo terminar la configuración y desplegar la máquina virtual?
Una vez configurada la red, ya puedes proceder con el despliegue final de la máquina virtual.
-
Definir y ajustar la máquina virtual:
- Utiliza
AzureRM_windows_virtual_machine
y asegúrate de definir variables comouser_name
ypassword
. - Ejemplo de carga de datos de la máquina virtual:
resource "azurerm_windows_virtual_machine" "myVM" { name = "myVM" location = var.location resource_group_name = var.resource_group network_interface_ids = [azurerm_network_interface.myNI.id] os_disk { caching = "ReadWrite" storage_account_type = "Standard_LRS" } source_image_reference { publisher = "MicrosoftWindowsServer" offer = "WindowsServer" sku = "2022-Datacenter" version = "latest" } admin_username = var.vm_username admin_password = var.vm_password }
- Utiliza
-
Inicializar y aplicar la configuración en Terraform:
- Ejecuta los comandos
Terraform init
,Terraform plan -out plan.out
yTerraform apply
para revisar y aplicar la infraestructura. - Siempre es buena idea verificar en el portal de Azure que los recursos se hayan creado correctamente.
- Ejecuta los comandos
Con esta guía y un poco de paciencia, serás capaz de crear y configurar máquinas virtuales en Azure, un conocimiento esencial para cualquier profesional de la tecnología de la información. ¡Sigue adelante y explora las infinitas posibilidades que ofrece Terraform!