Inicio rápido: creación de una topología de red de malla con Azure Virtual Network Manager mediante Terraform
Artikulua
Introducción a Azure Virtual Network Manager mediante Terraform para aprovisionar la conectividad de todas las redes virtuales.
En este artículo de inicio rápido, implementará tres redes virtuales y usará Azure Virtual Network Manager para crear una topología de red de malla. Después, compruebe si se ha aplicado la configuración de conectividad. Puede elegir entre una implementación con un ámbito de suscripción o un ámbito de grupo de administración. Obtenga más información sobre los ámbitos de Network Manager.
Terraform habilita la definición, vista previa e implementación de la infraestructura en la nube. Con Terraform, se crean archivos de configuración mediante la sintaxis de HCL. La sintaxis de HCL permite especificar el proveedor de la nube, como Azure, y los elementos que componen la infraestructura de la nube. Después de crear los archivos de configuración, se crea un plan de ejecución que permite obtener una vista previa de los cambios de infraestructura antes de implementarlos. Una vez que compruebe los cambios, aplique el plan de ejecución para implementar la infraestructura.
En este artículo aprenderá a:
Cree un valor aleatorio para el nombre del grupo de recursos de Azure mediante random_pet.
Cree un archivo denominado variables.tf e inserte el siguiente código:
Terraform
variable"resource_group_location" {
type = string
default = "eastus"
description = "Location of the resource group."
}
variable"resource_group_name_prefix" {
type = string
description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription."
default = "rg"
}
Cree un archivo denominado outputs.tf e inserte el siguiente código:
Terraform
output"resource_group_name" {
value = azurerm_resource_group.rg.name
}
output"virtual_network_names" {
value = azurerm_virtual_network.vnet[*].name
}
Implementación del código de Terraform
Este ejemplo de código implementará Azure Virtual Network Manager en el ámbito del grupo de administración.
Cree un archivo denominado variables.tf e inserte el siguiente código:
Terraform
variable"resource_group_location" {
type = string
default = "eastus"
description = "Location of the resource group."
}
variable"resource_group_name_prefix" {
type = string
description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription."
default = "rg"
}
variable"msi_id" {
type = string
description = "(Optional) Manage identity id that be used as authentication method. Defaults to `null`."
default = null
}
Cree un archivo denominado outputs.tf e inserte el siguiente código:
Terraform
output"resource_group_name" {
value = azurerm_resource_group.rg.name
}
output"virtual_network_names" {
value = azurerm_virtual_network.vnet[*].name
}
Inicialización de Terraform
Para inicializar la implementación de Terraform, ejecute terraform init. Este comando descarga el proveedor de Azure necesario para administrar los recursos de Azure.
Consola
terraform init -upgrade
Puntos clave:
El parámetro -upgrade actualiza los complementos de proveedor necesarios a la versión más reciente que cumpla con las restricciones de versión de la configuración.
El comando terraform plan crea un plan de ejecución, pero no lo ejecuta. En su lugar, determina qué acciones son necesarias para crear la configuración especificada en los archivos de configuración. Este patrón le permite comprobar si el plan de ejecución coincide con sus expectativas antes de realizar cambios en los recursos reales.
El parámetro -out opcional permite especificar un archivo de salida para el plan. El uso del parámetro -out garantiza que el plan que ha revisado es exactamente lo que se aplica.
Aplicación de un plan de ejecución de Terraform
Ejecute terraform apply para aplicar el plan de ejecución a su infraestructura en la nube.
Consola
terraform apply main.tfplan
Puntos clave:
El comando terraform apply de ejemplo asume que ejecutó terraform plan -out main.tfplan previamente.
Si especificó un nombre de archivo diferente para el parámetro -out, use ese mismo nombre de archivo en la llamada a terraform apply.
Si no ha utilizado el parámetro -out, llame a terraform apply sin ningún parámetro.
Para cada nombre de red virtual impreso en el paso anterior, ejecute az network manager list-effective-connectivity-config para imprimir las configuraciones efectivas (aplicadas). Reemplace el marcador de posición <virtual_network_name> por el nombre de la red virtual.
Azure CLI
az network manager list-effective-connectivity-config \
--resource-group$resource_group_name \
--vnet-name<virtual_network_name>
Para cada nombre de red virtual impreso en el paso anterior, ejecute Get-AzNetworkManagerEffectiveConnectivityConfiguration para imprimir las configuraciones efectivas (aplicadas). Reemplace el marcador de posición <virtual_network_name> por el nombre de la red virtual.
Cuando ya no necesite los recursos creados a través de Terraform, realice los pasos siguientes:
Ejecute el comando terraform plan y especifique la marca destroy.
Consola
terraform plan -destroy -out main.destroy.tfplan
Puntos clave:
El comando terraform plan crea un plan de ejecución, pero no lo ejecuta. En su lugar, determina qué acciones son necesarias para crear la configuración especificada en los archivos de configuración. Este patrón le permite comprobar si el plan de ejecución coincide con sus expectativas antes de realizar cambios en los recursos reales.
El parámetro -out opcional permite especificar un archivo de salida para el plan. El uso del parámetro -out garantiza que el plan que ha revisado es exactamente lo que se aplica.