Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Introduzione ad Azure Batch usando Terraform per creare un account Batch, inclusa l'archiviazione. È necessario un account Batch per creare risorse di calcolo (pool di nodi di calcolo) e processi Batch. È possibile collegare un account di archiviazione di Azure con l'account Batch. Questa associazione è utile per distribuire applicazioni e archiviare i dati di input e output per la maggior parte dei carichi di lavoro reali.
Completando questo argomento di avvio rapido si apprenderanno i concetti di base del servizio Batch e sarà possibile provare a usarlo con carichi di lavoro più realistici e su larga scala.
Terraform abilita la definizione, l'anteprima e la distribuzione dell'infrastruttura cloud. Usando Terraform, si creano file di configurazione usando sintassi HCL. La sintassi HCL consente di specificare il provider di servizi cloud, ad esempio Azure, e gli elementi che costituiscono l'infrastruttura cloud. Dopo aver creato i file di configurazione, si crea un piano di esecuzione che consente di visualizzare in anteprima le modifiche dell'infrastruttura prima della distribuzione. Dopo aver verificato le modifiche, applicare il piano di esecuzione per distribuire l'infrastruttura.
In questo articolo vengono illustrate le operazioni seguenti:
- Creare un valore casuale per il nome del gruppo di risorse di Azure usando random_pet
- Creare un gruppo di risorse di Azure usando azurerm_resource_group
- Creare un valore casuale usando random_string
- Creare un account di archiviazione di Azure usando azurerm_storage_account
- Creare un account Azure Batch usando azurerm_batch_account
Prerequisiti
Implementare il codice Terraform
Annotazioni
Il codice di esempio per questo articolo si trova nel repository GitHub di Azure Terraform . È possibile visualizzare il file di log contenente i risultati del test dalle versioni correnti e precedenti di Terraform.
Vedere altri articoli e codice di esempio che illustrano come usare Terraform per gestire le risorse di Azure
Creare una directory in cui testare ed eseguire il codice Terraform di esempio e impostarla come directory corrente.
Creare un file denominato
providers.tf
e inserire il codice seguente:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }
Creare un file denominato
main.tf
e inserire il codice seguente:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { name = random_pet.rg_name.id location = var.resource_group_location } resource "random_string" "azurerm_storage_account_name" { length = 13 lower = true numeric = false special = false upper = false } resource "random_string" "azurerm_batch_account_name" { length = 13 lower = true numeric = false special = false upper = false } resource "azurerm_storage_account" "storage" { name = "storage${random_string.azurerm_storage_account_name.result}" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location account_tier = element(split("_", var.storage_account_type), 0) account_replication_type = element(split("_", var.storage_account_type), 1) } resource "azurerm_batch_account" "batch" { name = "batch${random_string.azurerm_batch_account_name.result}" resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location storage_account_id = azurerm_storage_account.storage.id storage_account_authentication_mode = "StorageKeys" }
Creare un file denominato
variables.tf
e inserire il codice seguente:variable "resource_group_location" { type = string default = "eastus" description = "Location for all resources." } 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." } variable "storage_account_type" { type = string default = "Standard_LRS" description = "Azure Storage account type." validation { condition = contains(["Premium_LRS", "Premium_ZRS", "Standard_GRS", "Standard_GZRS", "Standard_LRS", "Standard_RAGRS", "Standard_RAGZRS", "Standard_ZRS"], var.storage_account_type) error_message = "Invalid storage account type. The value should be one of the following: 'Premium_LRS','Premium_ZRS','Standard_GRS','Standard_GZRS','Standard_LRS','Standard_RAGRS','Standard_RAGZRS','Standard_ZRS'." } }
Creare un file denominato
outputs.tf
e inserire il codice seguente:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "batch_name" { value = azurerm_batch_account.batch.name } output "storage_name" { value = azurerm_storage_account.storage.name }
Inizializzare Terraform
Eseguire terraform init per inizializzare la distribuzione di Terraform. Questo comando scarica il provider di Azure necessario per gestire le risorse di Azure.
terraform init -upgrade
Punti chiave:
- Il parametro
-upgrade
aggiorna i plug-in del provider necessari alla versione più recente conforme ai vincoli di versione della configurazione.
Creare un piano di esecuzione Terraform
Eseguire terraform plan per creare un piano di esecuzione.
terraform plan -out main.tfplan
Punti chiave:
- Il comando
terraform plan
crea un piano di esecuzione, ma non lo esegue. Determina invece le azioni necessarie per creare la configurazione specificata nei file di configurazione. Questo modello consente di verificare se il piano di esecuzione corrisponde alle aspettative prima di apportare modifiche alle risorse effettive. - Il parametro facoltativo
-out
consente di specificare un file di output per il piano. L'uso del parametro-out
garantisce che il piano esaminato sia esattamente quello applicato.
Applicare un piano di esecuzione Terraform
Esegui terraform apply per applicare il piano di esecuzione all'infrastruttura cloud.
terraform apply main.tfplan
Punti chiave:
- Nell'esempio del comando
terraform apply
, si presuppone che sia stato eseguito precedentementeterraform plan -out main.tfplan
. - Se è stato specificato un nome file diverso per il parametro
-out
, usare lo stesso nome file nella chiamata aterraform apply
. - Se non è stato usato il parametro
-out
, chiamareterraform apply
senza parametri.
Verificare i risultati
Ottenere il nome del gruppo di risorse di Azure.
resource_group_name=$(terraform output -raw resource_group_name)
Ottenere il nome dell'account Batch.
batch_name=$(terraform output -raw batch_name)
Eseguire az batch account show per visualizzare informazioni sul nuovo account Batch.
az batch account show \ --resource-group $resource_group_name \ --name $batch_name
Pulire le risorse
Quando le risorse create tramite Terraform non sono più necessarie, seguire questa procedura:
Esegui terraform plan e specifica il flag
destroy
.terraform plan -destroy -out main.destroy.tfplan
Punti chiave:
- Il comando
terraform plan
crea un piano di esecuzione, ma non lo esegue. Determina invece le azioni necessarie per creare la configurazione specificata nei file di configurazione. Questo modello consente di verificare se il piano di esecuzione corrisponde alle aspettative prima di apportare modifiche alle risorse effettive. - Il parametro facoltativo
-out
consente di specificare un file di output per il piano. L'uso del parametro-out
garantisce che il piano esaminato sia esattamente quello applicato.
- Il comando
Eseguire terraform apply per applicare il piano di esecuzione.
terraform apply main.destroy.tfplan
Risolvere i problemi di Terraform in Azure
Risolvere i problemi comuni quando si usa Terraform in Azure