Guida introduttiva: Creare un Firewall di Azure con più indirizzi IP pubblici - Terraform
Articolo
In questa guida introduttiva si usa Terraform per distribuire un Firewall di Azure con più indirizzi IP pubblici da un prefisso di indirizzo IP pubblico. Il firewall distribuito include regole della raccolta regole NAT che consentono connessioni RDP a due macchine virtuali Windows Server 2019.
Terraform consente di definire, visualizzare in anteprima e distribuire l'infrastruttura cloud. Con Terraform è possibile creare file di configurazione usando la 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, è necessario creare un piano di esecuzione che consenta di visualizzare in anteprima le modifiche apportate all'infrastruttura prima che vengano distribuite. Dopo aver verificato le modifiche, è possibile applicare il piano di esecuzione per distribuire l'infrastruttura.
Creare un file denominato variables.tf e inserire il codice seguente:
Terraform
variable"resource_group_location" {
type = string
description = "Location for all resources."
default = "eastus"
}
variable"resource_group_name_prefix" {
type = string
description = "Prefix for the Resource Group Name that's combined with a random id so name is unique in your Azure subcription."
default = "rg"
}
variable"firewall_sku_tier" {
type = string
description = "Firewall SKU."
default = "Premium"# Valid values are Standard and Premium
validation {
condition = contains(["Standard", "Premium"], var.firewall_sku_tier)
error_message = "The SKU must be one of the following: Standard, Premium"
}
}
variable"virtual_machine_size" {
type = string
description = "Size of the virtual machine."
default = "Standard_D2_v3"
}
variable"admin_username" {
type = string
description = "Value of the admin username."
default = "azureuser"
}
Creare un file denominato outputs.tf e inserire il codice seguente:
Terraform
output"resource_group_name" {
value = azurerm_resource_group.rg.name
}
output"backend_admin_password" {
sensitive = true
value = azurerm_windows_virtual_machine.vm_backend[*].admin_password
}
Inizializzare Terraform
Per inizializzare la distribuzione di Terraform, eseguire terraform init. Questo comando scarica il provider di Azure necessario per gestire le risorse di Azure.
Console
terraform init -upgrade
Punti principali:
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.
Console
terraform plan -out main.tfplan
Punti principali:
Il comando terraform plan consente di creare un piano di esecuzione, ma non di eseguirlo. 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 -out facoltativo consente di specificare un file di output per il piano. L'uso del parametro -out garantisce che il piano esaminato sia esattamente quello che viene applicato.
Applicare un piano di esecuzione Terraform
Eseguire terraform apply per applicare il piano di esecuzione all'infrastruttura cloud.
Console
terraform apply main.tfplan
Punti principali:
Il comando terraform apply di esempio presuppone che in precedenza sia stato eseguito terraform plan -out main.tfplan.
Se è stato specificato un nome di file diverso per il parametro -out, usare lo stesso nome di file nella chiamata a terraform apply.
Se non è stato usato il parametro -out, chiamare terraform apply senza parametri.
Il comando terraform plan consente di creare un piano di esecuzione, ma non di eseguirlo. 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 -out facoltativo consente di specificare un file di output per il piano. L'uso del parametro -out garantisce che il piano esaminato sia esattamente quello che viene applicato.
Eseguire terraform apply per applicare il piano di esecuzione.