BYTEBOOK
Bytebook Docs • Terraform / IaC / Automation
← Înapoi la Bytebook
PATH: DOCS / TERRAFORM_GUIDE.HTML _
[00:00:00] DOCS_READY
DEMOS Main Archive JAVA LABS Enterprise PY LABS Neural Assets NODE LABS Async Runtime INFRA Control Center
INFRASTRUCTURE AS CODE GUIDES • TERRAFORM IAC

Ghid Administrare și Orchestrare cu Terraform pe VPS

Acest ghid descrie modul în care folosești utilitarul deja instalat Terraform pe VPS-ul Ubuntu (63.250.40.142) pentru a defini, proviziona și automatiza infrastructura (containere Docker, rețele, resurse locale și servicii externe) declarativ prin fișiere HCL.

1. Verificarea Instalării Terraform pe VPS

  1. Conectează-te la VPS prin SSH:
    ssh root@63.250.40.142
  2. Verifică versiunea Terraform instalată pe sistem:
    terraform -version

    (Această comandă confirmă că binary-ul Terraform este configurat în PATH și gata de utilizare).

2. Structura unui Proiect Terraform (HCL)

Organizează-ți proiectele Terraform în directoare izolate pe VPS. Vom crea un proiect de test pentru orchestrare Docker locală:

A. Creează directorul proiectului

mkdir -p /root/projects/terraform-demo
cd /root/projects/terraform-demo

B. Fișierul de configurare principal (main.tf)

nano main.tf
terraform {
  required_providers {
    docker = {
      source  = "kreuzwerker/docker"
      version = "~> 3.0.0"
    }
  }
}

provider "docker" {
  host = "unix:///var/run/docker.sock"
}

# Declarare imagine Docker NGINX
resource "docker_image" "nginx" {
  name         = "nginx:latest"
  keep_locally = false
}

# Declarare container NGINX orchestrat de Terraform
resource "docker_container" "tf_web" {
  image = docker_image.nginx.image_id
  name  = "terraform-demo-web"

  ports {
    internal = 80
    external = 8088
  }
}

3. Ciclul de Viață al Comenzilor Terraform (Workflow)

Fluxul standard de lucru în Terraform constă în 4 pași esențiali:

1. Inițializare (Descarcă providerii necesari):
terraform init
2. Planificare (Afișează modificările fără a le aplica):
terraform plan
3. Aplicare (Creează resursele efectiv pe VPS):
terraform apply -auto-approve
4. Distrugere (Șterge toate resursele provizionate):
terraform destroy -auto-approve

4. Expunerea Serviciilor Terraform prin Caddy

După ce ai aplicat planul Terraform și containerul rulează pe portul 8088, îl poți conecta la un subdomeniu prin Caddy (tf-demo.bytebook.xyz):

  1. Configurare Namecheap: Adaugă un A Record (Host: tf-demo, Value: 63.250.40.142).
  2. Editează /etc/caddy/Caddyfile:
    nano /etc/caddy/Caddyfile
  3. Adaugă blocul de configurare:
    tf-demo.bytebook.xyz {
        reverse_proxy localhost:8088
    }
  4. Reîncarcă Caddy:
    systemctl reload caddy

5. Bune Practici și Starea Infrastructurii (terraform.tfstate)

• Fișierul .tfstate: Terraform își păstrează starea curentă în terraform.tfstate. Nu edita niciodată manual acest fișier.

• Gitignore: Dacă versiunezi codul pe GitHub, adaugă în .gitignore fișierele sensibile și de stare:

.terraform/
*.tfstate
*.tfstate.backup
*.tfvars

• Formatări curate: Folosește comanda nativă de auto-formatare înainte de commit:

terraform fmt