TF

Învață Terraform & OpenTofu (IaC): comenzi explicate cu exemple

19 comenzi 7 categorii

Terraform (dezvoltat de HashiCorp) și echivalentul său open-source OpenTofu reprezintă standardul global pentru Infrastructure as Code (IaC). În loc să configureze manual servere, baze de date și rețele prin console web (cum ar fi AWS Management Console sau Google Cloud Console) sau scripturi ad-hoc fragile, inginerii DevOps definesc întreaga arhitectură cloud într-un mod declarativ folosind limbajul HCL (HashiCorp Configuration Language).

Terraform calculează automat graficul de dependențe dintre resurse (Directed Acyclic Graph), generează un plan de execuție detaliat (terraform plan) și aplică modificările dorite în mod reproductibil și previzibil (terraform apply), menținând sincronizarea permanentă cu starea reală a cloud-ului prin intermediul fișierului State File.

Ciclul de Viață Declarativ în Terraform / OpenTofu
# 1. Definire (.tf) ──► 2. terraform init ──► 3. terraform plan ──► 4. terraform apply
#    Fișiere HCL        Descarcă Provideri     Generează Diff       Creează Resurse
#    (Cod sursă)        (AWS, GCP, K8s)        (Ce se va schimba)   în Cloud Real
#                                                       │
#                                                       ▼
#                                           Actualizează terraform.tfstate

Pilonii Tehnologici ai Terraform & OpenTofu

Concept IaC Mecanism Tehnic Rol în Producție
Limbajul HCL Sintaxă declarativă lizibilă cu suport pentru expresii, iterații (for_each) și condiționale. Elimină comenzile imperative; descrie doar starea finală dorită a infrastructurii.
State File (.tfstate) Fișier JSON care mapează resursele definite în cod cu ID-urile fizice alocate de providerul cloud. Permite detectarea modificărilor (*drift detection*) și distrugerea curată a resurselor.
Ecosistemul de Provideri Peste 3.000 de plugin-uri (AWS, Azure, GCP, Cloudflare, Kubernetes, GitHub, Datadog). Unifică gestiunea infrastructurii multi-cloud sub un singur set de reguli și unelte.
Module Reutilizabile Pachete parametrizate de resurse ce pot fi apelate ca funcții de infrastructură. Standardizează bunele practici de securitate și rețea în cadrul întregii organizații.
Exemplu Concret: Creare Instanță Cloud și Bază de Date în HCL
terraform {
  required_version = ">= 1.7.0"
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = "eu-central-1" # Frankfurt
}

# Crearea unui bucket S3 securizat:
resource "aws_s3_bucket" "app_storage" {
  bucket = "dexblog-enterprise-backups-2026"

  tags = {
    Environment = "Production"
    ManagedBy   = "Terraform"
  }
}

# Blocare acces public prin regulă de securitate:
resource "aws_s3_bucket_public_access_block" "block_public" {
  bucket = aws_s3_bucket.app_storage.id

  block_public_acls       = true
  block_public_policy     = true
  ignore_public_acls      = true
  restrict_public_buckets = true
}

output "bucket_arn" {
  description = "ARN-ul oficial al bucket-ului creat"
  value       = aws_s3_bucket.app_storage.arn
}

Fundamente HCL 1 comandă

State Management 1 comandă

Module & Arhitectură 1 comandă

CI/CD & Automatizare 1 comandă

Comenzi CLI de Bază 5 comenzi

Managementul Stării & Workspace-uri 4 comenzi

Blocuri Structurale HCL 6 comenzi