Articoli che trattano di Terraform

Gestire un’organizzazione GitHub con Terraform: repository, team e permessi as-code

Man mano che un’organizzazione GitHub cresce — più repository, più team, collaboratori esterni, regole di branch protection diverse da un progetto all’altro — gestire tutto a mano dalle impostazioni web diventa rapidamente una fonte di errori: permessi concessi e mai revocati, branch protection impostata su un repo e dimenticata su un altro, nessuna storia di chi ha cambiato cosa e quando. Questo articolo descrive come portare la governance di una organizzazione GitHub sotto Terraform, esattamente come si farebbe con l’infrastruttura cloud: repository, team, appartenenza ai team, permessi e branch protection diventano codice versionato, rivedibile in pull request e applicato tramite…

DNS in una Landing Zone Azure con Terraform: Private DNS Resolver e Private DNS zones per la risoluzione ibrida

La risoluzione dei nomi è un servizio centrale dell’hub in una topologia hub & spoke. Due componenti lavorano insieme: le Private DNS zones rispondono per i nomi dei servizi Azure raggiunti tramite Private Endpoint, mentre il DNS Private Resolver instrada le query tra Azure e on-premises. Centralizzarli nell’hub garantisce una risoluzione coerente per tutti gli spoke e per le reti aziendali. Questa guida descrive il deployment con Terraform del DNS Private Resolver e delle Private DNS zones tramite gli Azure Verified Modules (AVM), nel resource group rg-hub-itn (subscription Connectivity, region Italy North). Presuppone la Hub Virtual Network già deployata con…

Azure Bastion in una Landing Zone Azure con Terraform: accesso amministrativo sicuro senza IP pubblici

Azure Bastion fornisce accesso RDP e SSH alle macchine virtuali direttamente dal portale Azure, senza necessita’ di assegnare IP pubblici alle VM ne’ di esporre le porte 3389 e 22 verso Internet. Collocato nell’hub di una topologia hub & spoke, un’unica istanza di Bastion serve le VM di tutti gli spoke grazie al peering, con notevole risparmio rispetto a un’istanza per spoke. Questa guida descrive il deployment con Terraform di Azure Bastion Standard tramite gli Azure Verified Modules (AVM), nel resource group rg-hub-itn (subscription Connectivity, region Italy North). Presuppone la Hub Virtual Network gia’ deployata con la subnet AzureBastionSubnet. Cos’è…

Azure Firewall in una Landing Zone Azure con Terraform: ispezione centralizzata del traffico con Firewall Policy

Azure Firewall e’ il firewall stateful gestito che, nell’hub di una topologia hub & spoke, ispeziona il traffico in uscita verso Internet e il traffico tra gli spoke. Centralizzarlo nell’hub permette di applicare un unico punto di controllo per l’intera landing zone, riducendo la complessita’ delle regole e i costi rispetto a un firewall per spoke. Questa guida descrive il deployment con Terraform di Azure Firewall Standard e della relativa Firewall Policy tramite gli Azure Verified Modules (AVM), nel resource group rg-hub-itn (subscription Connectivity, region Italy North). Presuppone la Hub Virtual Network gia’ deployata con la subnet AzureFirewallSubnet. Cos’e’ un…

Hub Network di una Landing Zone Azure con Terraform: la Virtual Network centrale e il piano di subnet

In una topologia hub & spoke, la Hub Virtual Network e’ la rete centrale che ospita i servizi condivisi dell’intera landing zone. Tutti gli spoke si agganciano ad essa tramite peering ed ereditano connettivita’, ispezione del traffico e risoluzione dei nomi, senza dover replicare componenti costosi. Progettare correttamente la VNet dell’hub e il suo piano di indirizzamento è il primo passo di ogni deployment di rete secondo il Microsoft Cloud Adoption Framework (CAF). Questa guida descrive il deployment con Terraform della VNet hub e del resource group che la contiene, utilizzando gli Azure Verified Modules (AVM). La VNet e’ deployata…

Configurazione del backend remoto Terraform su Azure Storage con autenticazione Microsoft Entra ID

Quando si gestisce l’infrastruttura Azure con Terraform, lo state file rappresenta la fonte di verità che lega il codice alle risorse reali deployate nel cloud. Mantenere lo state in locale è accettabile solo per esperimenti individuali: appena un team o una pipeline CI/CD entra in gioco, lo state deve essere centralizzato, protetto e condiviso. Il backend azurerm di Terraform permette di salvare gli state file in un container blob di uno Azure Storage Account, ottenendo locking automatico tramite lease del blob, cifratura a riposo e controllo degli accessi tramite Microsoft Entra ID e Azure RBAC, senza utilizzare shared key. In…

Creare un Resource Group in Azure con Terraform

Quando gestite infrastrutture cloud, la capacita’ di automatizzare la creazione e la gestione delle risorse diventa fondamentale. In questo contesto, Infrastructure as Code (IaC) rappresenta un paradigma che consente di definire, distribuire e gestire l’infrastruttura attraverso file di configurazione, eliminando la necessita’ di operazioni manuali ripetitive e soggette a errori. Terraform, sviluppato da HashiCorp, rappresenta una soluzione elegante e agnostica che vi permette di dichiarare lo stato desiderato della vostra infrastruttura, lasciando al tool il compito di raggiungere quello stato. A differenza di altri strumenti specifici per un singolo cloud provider, Terraform vi offre la flessibilita’ di gestire risorse su…

Introduzione a Terraform e al provider Azure

Terraform è uno strumento open source di HashiCorp che permette di creare e modificare infrastrutture cloud tramite file di configurazione scritti in HCL (HashiCorp Configuration Language). Dal 2023 è distribuito con licenza BUSL; chi vuole una licenza puramente open source può usare il fork OpenTofu, sostanzialmente compatibile. Il principio è semplice: voi descrivete in un file .tf lo stato desiderato dell’infrastruttura e Terraform calcola autonomamente quali operazioni eseguire per allineare il cloud a quella descrizione. Non dovete dire come fare, ma cosa volete: questo è l’approccio dichiarativo, ed è la differenza fondamentale rispetto agli script imperativi (Bash, PowerShell, Azure CLI…