0Pricing
Terraform Infrastructure as Code · Lezione

Gestire il drift dello state e la riconciliazione

Rilevi, analizzi e riconcili il drift, ovvero la differenza tra lo state di Terraform e l'infrastruttura reale, prima che causi interruzioni o modifiche impreviste.

Gestire il drift dello state e la riconciliazione è una lezione Terraform Infrastructure as Code gratuita su CoddyKit. Questa è la lezione 4 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 Terraform Infrastructure as Code, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Terraform Infrastructure as Code include 4 lezioni in totale.

Che cos'è lo drift?

Lo drift si verifica quando l'infrastruttura reale cambia al di fuori di Terraform, ad esempio quando un tecnico modifica un'impostazione nella console o un altro strumento modifica una risorsa. A quel punto lo stato e la realtà non coincidono più e il successivo apply potrebbe annullare o sovrascrivere tali modifiche in modo imprevisto.

Rilevare lo drift con plan

Un normale terraform plan aggiorna lo stato e mostra le differenze. Se una risorsa presenta drift, il plan segnala modifiche che non sono state apportate nel codice.

terraform plan

Il plan di sola sincronizzazione

Per visualizzare lo drift senza proporre modifiche alla configurazione, utilizzi un plan di sola sincronizzazione. Questo aggiorna lo stato affinché corrisponda alla realtà e mostra le differenze.

terraform plan -refresh-only

Leggere il report dello drift

Terraform contrassegna gli attributi soggetti a drift con la modifica rilevata. Una tilde indica una modifica sul posto; una coppia meno/più indica che un valore è stato aggiunto o rimosso al di fuori di Terraform.

# aws_instance.web has changed
  ~ instance_type = "t3.micro" -> "t3.small"

Due modi per riconciliare lo stato

Quando rileva dello drift, deve scegliere una direzione:

  • Accettare la realtà — aggiorni il codice affinché corrisponda al nuovo stato.
  • Ripristinare il codice — esegua l'apply per riportare l'infrastruttura a quanto dichiarato dalla configurazione.

Accettare lo drift nello stato

Se la modifica manuale era intenzionale, esegua apply -refresh-only per registrare la realtà nello stato, quindi aggiorni il codice affinché corrisponda, così i plan futuri non mostreranno differenze.

terraform apply -refresh-only

Ripristinare lo drift

Se la modifica non era autorizzata, un normale terraform apply riporta l'infrastruttura alla configurazione dichiarata, annullando la modifica manuale.

terraform apply

Indirizzare una singola risorsa

Per una correzione mirata, -target limita l'operazione a una sola risorsa. Lo utilizzi con moderazione: può nascondere uno drift più ampio.

terraform apply -target=aws_instance.web

Prevenire lo drift spurio

Alcuni attributi sono gestiti da AWS o da altri strumenti. Utilizzi ignore_changes affinché Terraform smetta di modificarli.

resource "aws_instance" "web" {
  lifecycle {
    ignore_changes = [tags["LastScanned"]]
  }
}

Rilevamento continuo dello drift

Rilevi tempestivamente lo drift eseguendo in CI un plan di sola sincronizzazione pianificato. Terraform Cloud offre il rilevamento dello drift integrato, che invia un avviso quando lo stato e la realtà divergono.

on:
  schedule:
    - cron: "0 6 * * *"

La cultura supera gli strumenti

La prevenzione migliore dello drift è una questione di processo: limiti l'accesso in scrittura alla console, faccia passare tutte le modifiche da Terraform e tratti le modifiche manuali come incidenti. Gli strumenti rilevano lo drift; la disciplina lo previene.

Verifica rapida

Verifichi le Sue conoscenze sulla gestione dello drift.

Riepilogo: mantenere coerente lo stato

Ora sa gestire lo drift:

  • Lo rilevi con plan o plan -refresh-only.
  • Lo accetti tramite apply -refresh-only insieme a un aggiornamento del codice.
  • Lo ripristini con un normale apply.
  • Utilizzi ignore_changes e controlli pianificati per prevenirlo.

Domande Frequenti

La lezione «Gestire il drift dello state e la riconciliazione» è gratuita?

Sì — il testo completo di «Gestire il drift dello state e la riconciliazione» è 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 Terraform Infrastructure as Code, passa a CoddyKit PRO. Il corso Terraform Infrastructure as Code include 4 lezioni in totale.

Cosa imparerò in «Gestire il drift dello state e la riconciliazione»?

Rilevi, analizzi e riconcili il drift, ovvero la differenza tra lo state di Terraform e l'infrastruttura reale, prima che causi interruzioni o modifiche impreviste. Eserciti Terraform Infrastructure as Code 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 Terraform Infrastructure as Code?

Non è richiesta alcuna esperienza precedente. Terraform Infrastructure as Code su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Gestire il drift dello state e la riconciliazione»?

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 Terraform Infrastructure as Code?

Sì. Ogni lezione Terraform Infrastructure as Code 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

  1. Debug delle configurazioni Terraform
  2. Strategie di ottimizzazione delle prestazioni
  3. Disaster recovery con Terraform
  4. Gestire il drift dello state e la riconciliazione
← Torna a Terraform Infrastructure as Code