Junior
Mi az a Terraform?
sobes.tech MI
Válasz az MI-től
A Terraform egy nyílt forráskódú eszköz, amelyet a HashiCorp hozott létre az infrastruktúra kódként való kezelésére (Infrastructure as Code, IaC). Lehetővé teszi az infrastruktúra leírását deklaratív nyelven, HCL-ben (HashiCorp Configuration Language) vagy JSON-ban, majd automatikusan telepíti, módosítja és törli azt.
A Terraform fő jellemzői:
- Deklaratív: Leírja a kívánt állapotot az infrastruktúráról, és a Terraform meghatározza a szükséges lépéseket ennek eléréséhez.
- Változatlan: A Terraform inkább új erőforrásokat hoz létre, mint hogy meglévőket módosítana jelentős konfigurációs változások esetén, ez növeli a megbízhatóságot és a jóslást.
- Szolgáltatók: Támogat sok felhőszolgáltatót (AWS, Azure, GCP), valamint más szolgáltatásokat (Kubernetes, Docker, adatbázisok) a szolgáltatók rendszerén keresztül.
- Állapot: A Terraform nyomon követi az üzembe helyezett infrastruktúra állapotát egy állapotfájlban, ami lehetővé teszi számára, hogy megértse az aktuális állapotot és kiszámolja a szükséges változtatásokat.
- Modulok: Lehetővé teszi újrahasznosítható konfigurációs blokkok létrehozását a kód szervezéséhez és a komplex infrastruktúrák kezelésének egyszerűsítéséhez.
- Tervezés: Mielőtt végrehajtaná a változtatásokat, a Terraform megmutat egy akciótervet, amelyet végre fog hajtani, elkerülve a váratlan következményeket.
A Terraform munkafolyamata általában a következő szakaszokat foglalja magában:
- Inicializálás (
terraform init): A szükséges szolgáltatók és modulok betöltése.terraform init // A munkakönyvtár inicializálása - Tervezés (
terraform plan): Egy végrehajtási terv generálása, amely megmutatja, hogy mely erőforrásokat hoznak létre, módosítanak vagy törölnek.terraform plan // A végrehajtási terv létrehozása és megjelenítése - Alkalmazás (
terraform apply): A terv végrehajtása az infrastruktúra létrehozására vagy módosítására.terraform apply // A terv alkalmazása a cél infrastruktúrán - Törlés (
terraform destroy): Minden erőforrás törlése, amelyet a jelenlegi Terraform állapot kezel.terraform destroy // Minden erőforrás törlése
Egyszerű erőforrásleírás HCL-ben:
resource "aws_instance" "example" {
# Erőforrás típusa (AWS példány) és neve a konfigurációban
ami = "ami-0abcdef1234567890" # AMI kép azonosító
instance_type = "t2.micro" # példány típusa
tags = {
# Címkék az erőforráshoz
Name = "example-instance"
}
}
A Terraform jelentősen leegyszerűsíti és automatizálja az infrastruktúra kezelését, így az előrejelezhetőbbé, skálázhatóbbá és verziózhatóbbá válik.