IaC con Terraform e GitHub Actions
Comprenda come integrare Terraform nei workflow di GitHub Actions per effettuare il provisioning e gestire l’infrastruttura.
IaC con Terraform e GitHub Actions è una lezione CI/CD with GitHub Actions & DevOps Pipelines gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento CI/CD with GitHub Actions & DevOps Pipelines, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CI/CD with GitHub Actions & DevOps Pipelines include 4 lezioni in totale.
Infrastructure as Code (IaC)
Benvenuto! In questa lezione approfondirà Infrastructure as Code (IaC). Questo approccio consiste nel gestire e predisporre l'infrastruttura, ad esempio server, database e reti, utilizzando il codice anziché procedure manuali.
È come scrivere software per la propria infrastruttura. Questo offre numerosi vantaggi, tra cui coerenza, ripetibilità e controllo della versione per l'intera configurazione.
Terraform per l'IaC
Uno degli strumenti più diffusi per l'IaC è Terraform, uno strumento open source sviluppato da HashiCorp.
Terraform consente di definire le risorse dell'infrastruttura in file di configurazione leggibili. Utilizza quindi questi file per predisporre e gestire le risorse tra diversi provider cloud, come AWS, Azure e GCP, e altri servizi.
Sintassi HCL di Terraform
Terraform utilizza un proprio linguaggio dichiarativo chiamato HashiCorp Configuration Language (HCL). HCL è progettato per essere facile da leggere e scrivere, rendendo chiare le definizioni dell'infrastruttura.
Ecco un piccolo esempio HCL che definisce una VPC AWS (Virtual Private Cloud):
resource "aws_vpc" "main" {
cidr_block = "10.0.0.0/16"
tags = {
Name = "my-vpc"
}
}Workflow fondamentale di Terraform
Terraform segue un workflow coerente in tre passaggi per gestire l'infrastruttura:
terraform init: inizializza la directory di lavoro scaricando i plugin dei provider necessari.terraform plan: genera un piano di esecuzione che mostra quali modifiche Terraform apporterà all'infrastruttura.terraform apply: esegue le modifiche indicate nel piano, predisponendo o modificando le risorse.
Automazione con GitHub Actions
L'integrazione di Terraform con GitHub Actions potenzia notevolmente la strategia IaC. Consente di automatizzare passaggi essenziali nella pipeline di distribuzione dell'infrastruttura.
Con GitHub Actions è possibile:
- Eseguire automaticamente
terraform plana ogni pull request. - Assicurarsi che le modifiche all'infrastruttura vengano esaminate e approvate.
- Automatizzare
terraform applyper distribuzioni controllate.
File del workflow Terraform
Un workflow GitHub Actions per Terraform è definito in un file YAML all'interno della directory .github/workflows/ del repository. Questo file specifica quando viene eseguito il workflow e quali passaggi esegue.
Ecco una struttura di base per un workflow che potrebbe pianificare le modifiche:
name: 'Terraform CI'
on:
pull_request:
branches:
- main
jobs:
terraform:
name: 'Terraform'
runs-on: ubuntu-latest
steps:
# Your workflow steps will go here
Configurazione di Terraform e fase init
Prima di eseguire qualsiasi comando Terraform, il workflow deve recuperare il codice, configurare la CLI di Terraform e inizializzare la directory di lavoro.
L'azione hashicorp/setup-terraform semplifica questa operazione:
- name: Checkout Code
uses: actions/checkout@v4
- name: Setup Terraform
uses: hashicorp/setup-terraform@v2
with:
terraform_version: 1.5.x
- name: Terraform Init
run: terraform initFase terraform plan
Il comando terraform plan è un passaggio fondamentale in qualsiasi workflow IaC. Esegue una simulazione ('dry run') per determinare quali azioni sono necessarie a raggiungere lo stato desiderato definito nei file di configurazione.
Questo passaggio consente di esaminare le modifiche proposte prima che venga effettivamente modificato qualsiasi elemento nell'ambiente cloud.
- name: Terraform Plan
run: terraform plan
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}Verifica rapida: terraform plan
Comprendere i comandi fondamentali è essenziale per utilizzare Terraform in modo efficace nei workflow automatizzati.
Considerazioni su terraform apply
Il comando terraform apply è il passaggio in cui avviene l'azione: apporta modifiche effettive all'infrastruttura.
Nelle pipeline automatizzate, è prassi comune eseguire terraform apply solo dopo una revisione umana dell'output di plan, oppure solo quando si esegue il merge in branch specifici, ad esempio main o production. In questo modo si evitano modifiche all'infrastruttura accidentali o non approvate.
Riepilogo di IaC con Terraform e Actions
In questa lezione ha esplorato come Infrastructure as Code (IaC) consenta di gestire l'infrastruttura utilizzando il codice. Si è concentrato su Terraform come strumento principale per l'IaC, approfondendone la sintassi HCL e il workflow essenziale init, plan, apply.
Ha inoltre visto come GitHub Actions possa automatizzare i passaggi terraform init e terraform plan, rendendo le distribuzioni dell'infrastruttura più sicure, coerenti e completamente integrate nelle pipeline CI/CD.
Domande Frequenti
La lezione «IaC con Terraform e GitHub Actions» è gratuita?
Sì — il testo completo di «IaC con Terraform e GitHub Actions» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso CI/CD with GitHub Actions & DevOps Pipelines, passa a CoddyKit PRO. Il corso CI/CD with GitHub Actions & DevOps Pipelines include 4 lezioni in totale.
Cosa imparerò in «IaC con Terraform e GitHub Actions»?
Comprenda come integrare Terraform nei workflow di GitHub Actions per effettuare il provisioning e gestire l’infrastruttura. Eserciti CI/CD with GitHub Actions & DevOps Pipelines con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare CI/CD with GitHub Actions & DevOps Pipelines?
Non è richiesta alcuna esperienza precedente. CI/CD with GitHub Actions & DevOps Pipelines su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «IaC con Terraform e GitHub Actions»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione CI/CD with GitHub Actions & DevOps Pipelines?
Sì. Ogni lezione CI/CD with GitHub Actions & DevOps Pipelines include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- IaC con Terraform e GitHub Actions
- Gestire le risorse cloud
- Automatizzare gli aggiornamenti dell’infrastruttura
- Gestire lo state di Terraform e i backend remoti