Junior
Čo je Terraform?
sobes.tech AI
Odpoveď od AI
Terraform je open-source nástroj vytvorený spoločnosťou HashiCorp na správu infraštruktúry ako kódu (Infrastructure as Code, IaC). Umožňuje opisovať infraštruktúru pomocou deklaratívneho jazyka HCL (HashiCorp Configuration Language) alebo JSON a následne ju automatizovane nasadzovať, meniť a odstraňovať.
Kľúčové vlastnosti Terraform:
- Deklaratívnosť: Opisujete požadovaný stav infraštruktúry a Terraform sám určuje kroky na jeho dosiahnutie.
- Imutabilita: Terraform preferuje vytváranie nových zdrojov namiesto zmeny existujúcich pri významných zmenách konfigurácie, čo zvyšuje spoľahlivosť a predvídateľnosť.
- Poskytovatelia: Podpora veľkého množstva poskytovateľov cloudových služieb (AWS, Azure, GCP), ako aj ďalších služieb (Kubernetes, Docker, databázy) prostredníctvom systému poskytovateľov.
- Stav: Terraform sleduje stav nasadenej infraštruktúry v súbore stavu (state file), čo mu umožňuje pochopiť aktuálny stav a vypočítať potrebné zmeny.
- Moduly: Možnosť vytvárať znovupoužiteľné bloky konfigurácie na organizáciu kódu a zjednodušenie správy zložitých infraštruktúr.
- Plánovanie: Pred aplikáciou zmien Terraform ukazuje plán akcií, ktorý bude vykonaný, čo pomáha vyhnúť sa neočakávaným dôsledkom.
Životný cyklus práce s Terraformom obvykle zahŕňa nasledujúce kroky:
- Inicializácia (
terraform init): Načítanie potrebných poskytovateľov a modulov.terraform init // Inicializácia pracovného adresára - Plánovanie (
terraform plan): Generovanie plánu vykonania, ukazujúceho, ktoré zdroje budú vytvorené, zmenené alebo odstránené.terraform plan // Vytvorenie a zobrazenie plánu vykonania - Aplikácia (
terraform apply): Vykonanie plánu na vytvorenie alebo zmenu infraštruktúry.terraform apply // Aplikácia plánu na cieľovú infraštruktúru - Odstránenie (
terraform destroy): Odstránenie všetkých zdrojov spravovaných aktuálnou konfiguráciou Terraform.terraform destroy // Odstránenie všetkých zdrojov spravovaných aktuálnym stavom Terraform
Príklad jednoduchého popisu zdroja v HCL:
resource "aws_instance" "example" {
# Typ zdroja (inštancia AWS) a jej meno v konfigurácii
ami = "ami-0abcdef1234567890" # ID obrazu AMI
instance_type = "t2.micro" # Typ inštancie
tags = {
# Štítky pre zdroj
Name = "example-instance"
}
}
Terraform výrazne zjednodušuje a automatizuje správu infraštruktúry, čím ju robí predvídateľnejšou, škálovateľnejšou a verzionovateľnou.