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
- Conectează-te la VPS prin SSH:
ssh root@63.250.40.142 - 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:
terraform init
terraform plan
terraform apply -auto-approve
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):
- Configurare Namecheap: Adaugă un A Record (Host:
tf-demo, Value:63.250.40.142). - Editează
/etc/caddy/Caddyfile:nano /etc/caddy/Caddyfile - Adaugă blocul de configurare:
tf-demo.bytebook.xyz { reverse_proxy localhost:8088 } - 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