Home / DevOps & CI/CD / Terraform
Infrastructure as code

Terraform

Lo standard de facto per IaC. Un linguaggio dichiarativo, un provider per ogni cloud, drift detection automatico.

TERRAFORM · open source
Terraform
Cos'è

L'infrastruttura come codice. Versione, review, plan, apply.

Terraform (HashiCorp) e OpenTofu (fork community, 100% compatibile) sono il modo standard di descrivere infrastruttura in modo dichiarativo. HCL come linguaggio, provider per qualsiasi target (Clodino Cloud / OpenStack, AWS, Azure, GCP, Kubernetes, Vault, Cloudflare, GitLab, Datadog, ...).

Workflow: scrivi codice → terraform plan in MR → review → merge → terraform apply automatico. Lo stato vive remoto (S3 cifrato, Postgres, Terraform Cloud) con locking concorrente.

Lo usiamo per tutto il provisioning: VM Clodino Cloud, bucket S3, cluster K8s, namespace, ServiceAccount, regole firewall, record DNS, accessi IAM. Niente clic in console.

Caratteristiche chiave

Sei motivi per cui ogni nuovo progetto parte da Terraform.

Versionabile, replicabile, recensibile.

Provider universali

4.000+ provider ufficiali e community. Qualunque cosa abbia API, c'è un provider.

Plan in MR

terraform plan postato come commento MR. Review delle change prima di applicare.

State remoto

Postgres / S3 + DynamoDB / Ceph come backend. Lock concorrenti, history.

Moduli riusabili

Pattern del cliente raccolti in modulo: K8s cluster, baseline VM, network.

Drift detection

Scheduled plan periodico: se la realtà diverge dal codice, lo sappiamo subito.

Atlantis / OpenTofu

Atlantis per workflow GitOps. OpenTofu come fork sovrano, compatibile 1:1.

Come lo usiamo

Come usiamo Terraform nei progetti reali.

Terraform 1.9+OpenTofuAtlantistflinttfsecCheckovS3 state
  • Mono-repo IaC per cliente con cartelle per stage (dev/staging/prod) e per region.
  • Moduli interni Clodino: clodino-k8s, clodino-vm, clodino-network, clodino-rbac.
  • Atlantis listener su MR: plan automatico, apply su approval, lock per cartella.
  • State su Ceph S3 cliente (sovranità) o managed Clodino Cloud.
  • Drift detection scheduled ogni notte: report mattutino su Slack/Teams.
  • Migrazione da Pulumi/Crossplane/CloudFormation supportata.
“Se non sta in Terraform, non esiste. È l'unica regola, ma è ferrea.”
Hands on

Modulo Terraform per un cluster K8s Clodino Cloud.

hcl · main.tf~/clodino
 main.tf
module "cluster_prod_mi" {
  source  = "git::ssh://...//clodino-k8s?ref=v2.4.0"
  name    = "prod-mi"
  region  = "eu-it-mo-1"
  workers = {
    general = { count = 6, flavor = "m1.large" }
    gpu     = { count = 2, flavor = "g1.l40s" }
  }
  cni            = "cilium"
  rancher_import = true
}

$ terraform plan
Plan: 47 to add, 0 to change, 0 to destroy.

$ atlantis apply -d clusters/prod-mi
 Apply complete · 47 resources created · 6m 32s

Vuoi infra-as-code seria?

Setup Terraform + Atlantis + moduli custom + drift detection. Migrazione da console-clic inclusa.

← DevOpsParla con noi