Junior
Mis on Terraform?
sobes.tech AI
Vastus AI-lt
Terraform on avatud lähtekoodiga tööriist, mille on loonud HashiCorp, et hallata infrastruktuuri koodina (Infrastructure as Code, IaC). See võimaldab kirjeldada infrastruktuuri deklaratiivse keele HCL (HashiCorp Configuration Language) või JSON abil ning seejärel seda automatiseeritult juurutada, muuta ja eemaldada.
Terraformi peamised omadused:
- Deklaratiivsus: Kirjeldate soovitud infrastruktuuri olekut ning Terraform määrab ise vajalikud toimingud selle saavutamiseks.
- Muutumatuse põhimõte: Terraform eelistab luua uusi ressursse olemasolevate muutmise asemel, mis suurendab usaldusväärsust ja prognoositavust.
- Teenusepakkujad: Toetab paljusid pilveteenuse pakkujaid (AWS, Azure, GCP) ning teisi teenuseid (Kubernetes, Docker, andmebaasid) teenusepakkujate süsteemi kaudu.
- Oleku jälgimine: Terraform jälgib juurutatud infrastruktuuri olekut olekufailis (state file), mis võimaldab mõista praegust seisundit ja arvutada vajalikud muudatused.
- Moodulid: Võimalus luua taaskasutatavaid konfiguratsiooniblokke, et korraldada koodi ja lihtsustada keeruliste infrastruktuuride haldamist.
- Planeerimine: Enne muudatuste rakendamist näitab Terraform tegevusplaani, mis aitab vältida ootamatuid tagajärgi.
Infrastruktuuri haldamise tsükkel hõlmab tavaliselt järgmisi etappe:
- Initsialiseerimine (
terraform init): Vajalikud teenusepakkujad ja moodulid laaditakse alla.terraform init // Töökausta initsialiseerimine - Planeerimine (
terraform plan): Koostatakse tegevusplaan, mis näitab, millised ressursid luuakse, muudetakse või kustutatakse.terraform plan // Koostatakse ja kuvatakse tegevusplaan - Rakendamine (
terraform apply): Tegevusplaani elluviimine, infrastruktuuri loomine või muutmine.terraform apply // Rakenda plaan sihtinfrastruktuurile - Kustutamine (
terraform destroy): Kõigi ressursite eemaldamine, mida hallatakse praeguse konfiguratsiooniga.terraform destroy // Eemalda kõik ressursid, mida hallatakse praeguse olekuga
Lihtne näide ressursi kirjeldusest HCL-is:
resource "aws_instance" "example" {
# Ressursi tüüp (AWS eksemplar) ja selle nimi konfiguratsioonis
ami = "ami-0abcdef1234567890" # AMI pildi ID
instance_type = "t2.micro" # Eksemplari tüüp
tags = {
# Märgised
Name = "example-instance"
}
}
Terraform lihtsustab ja automatiseerib infrastruktuuri haldamist, muutes selle prognoositavamaks, skaleeritavamaks ja versioonikontrollitavaks.