Implementación de una cuenta de Azure Batch y dos grupos: Terraform
Artikulua
En esta guía rápida, se crea una cuenta de Azure Batch, una cuenta de Azure Storage y dos pools de Batch mediante Terraform. Batch es un sistema de programación de trabajos basado en la nube que permite paralelizar y distribuir el procesamiento de grandes volúmenes de datos entre varios ordenadores. Suele utilizarse para realizar barridos paramétricos, simulaciones Monte Carlo, modelado de riesgos financieros y otras aplicaciones informáticas de alto rendimiento. Una cuenta de Batch es el principal recurso del servicio Batch que proporciona acceso a pools, trabajos y tareas. La cuenta de Storage se utiliza para almacenar y gestionar todos los archivos que utiliza y genera el servicio Batch, mientras que los dos pools de Batch son colecciones de nodos de computación que ejecutan las tareas.
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.
Especifique la versión necesaria de Terraform y los proveedores necesarios.
Defina el proveedor de Azure sin características adicionales.
Defina variables para la ubicación del grupo de recursos y el prefijo del nombre del grupo de recursos.
Genere un nombre aleatorio para el grupo de recursos mediante el prefijo proporcionado.
Cree un grupo de recursos de Azure con el nombre generado en la ubicación especificada.
Genera una cadena aleatoria que se utilizará como nombre para la cuenta de Storage.
Cree una cuenta de Storage con el nombre generado en el grupo de recursos creado, en la misma ubicación y con un nivel de cuenta estándar y un tipo de replicación de Storage redundante localmente.
Genere otra cadena aleatoria que se usará como nombre de la cuenta de Batch.
Cree una cuenta de Batch con el nombre generado en el grupo de recursos creado en la misma ubicación, y vincúlela a la cuenta de Storage creada con el modo de autenticación de las claves de almacenamiento.
Genere un nombre aleatorio para el grupo de Batch con un prefijo "pool".
Cree un grupo por lotes con una escala fija utilizando el nombre generado en el grupo de recursos creado, vinculado a la cuenta por lotes creada, con un tamaño estándar de máquina virtual (VM) A1, SKU de agente de nodo Ubuntu 22.04 y una tarea de inicio que se haga eco de 'Hello World from $env' con un máximo de un reintento y espere al éxito.
Cree otro grupo de lotes con autoescala, utilizando el mismo nombre creado, en el grupo de recursos creado, vinculado a la cuenta de lotes creada, con un tamaño de máquina virtual A1 estándar, un SKU de agente de nodo Ubuntu 22.04 y una fórmula de autoescala.
Genera los nombres del grupo de recursos creado, la cuenta de Storage, la cuenta de Batch y ambos grupos de Batch.
Cree un archivo llamado outputs.tf e inserte el siguiente código:
Terraform
output"resource_group_name" {
value = azurerm_resource_group.rg.name
}
output"storage_account_name" {
value = azurerm_storage_account.example.name
}
output"batch_account_name" {
value = azurerm_batch_account.example.name
}
output"batch_pool_fixed_name" {
value = azurerm_batch_pool.fixed.name
}
output"batch_pool_autopool_name" {
value = azurerm_batch_pool.autopool.name
}
Cree un archivo llamado providers.tf e inserte el siguiente código:
Terraform
terraform {
required_version = ">=1.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~>3.0"
}
random = {
source = "hashicorp/random"
version = "~>3.0"
}
}
}
provider"azurerm" {
features {}
}
Cree un archivo llamado 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
default = "rg"
description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription."
}
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.
az batch account show --name<batch_account_name>--resource-group<resource_group_name>
Reemplace <batch_account_name> por el nombre de su cuenta de Batch y <resource_group_name> por el nombre de su grupo de recursos.
Limpieza de recursos
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.
Azure Batch es un servicio que permite ejecutar a gran escala aplicaciones paralelas y de informática de alto rendimiento (HPC) de manera eficaz en la nube. No es necesario administrar ni configurar la infraestructura. Solo debe programar el trabajo, asignar los recursos que necesita y dejar que Batch se encargue del resto.