Junior
Wat is Terraform?
sobes.tech AI
Antwoord van AI
Terraform is een open-source tool ontwikkeld door HashiCorp voor het beheren van infrastructuur als code (IaC). Het stelt je in staat om infrastructuur te beschrijven met behulp van de declaratieve taal HCL (HashiCorp Configuration Language) of JSON, en deze vervolgens automatisch uit te rollen, te wijzigen en te verwijderen.
Belangrijkste kenmerken van Terraform:
- Declaratief: Je beschrijft de gewenste staat van de infrastructuur, en Terraform bepaalt de acties die nodig zijn om deze te bereiken.
- Onveranderlijk: Terraform geeft de voorkeur aan het creëren van nieuwe resources in plaats van het wijzigen van bestaande bij grote configuratiewijzigingen, wat de betrouwbaarheid en voorspelbaarheid verhoogt.
- Providers: Ondersteunt een groot aantal cloud service providers (AWS, Azure, GCP), evenals andere services (Kubernetes, Docker, databases) via een providersysteem.
- Status: Terraform houdt de status van de uitgerolde infrastructuur bij in een statusbestand, waardoor het de huidige toestand kan begrijpen en de benodigde wijzigingen kan berekenen.
- Modules: Mogelijkheid om herbruikbare configuratieblokken te maken voor het organiseren van code en het vereenvoudigen van het beheer van complexe infrastructuren.
- Planning: Voordat wijzigingen worden toegepast, toont Terraform een plan van acties dat wordt uitgevoerd, om onverwachte gevolgen te voorkomen.
De levenscyclus van werken met Terraform omvat meestal de volgende fasen:
- Initialisatie (
terraform init): Laadt de benodigde providers en modules.terraform init // Initialiseer de werkdirectory - Planning (
terraform plan): Genereert een uitvoeringsplan dat laat zien welke resources worden gemaakt, gewijzigd of verwijderd.terraform plan // Maak en toon het uitvoeringsplan - Toepassing (
terraform apply): Voert het plan uit om de infrastructuur te maken of te wijzigen.terraform apply // Pas het plan toe op de doelinfrastructuur - Verwijdering (
terraform destroy): Verwijdert alle resources die worden beheerd door de huidige Terraform-configuratie.terraform destroy // Verwijder alle resources die worden beheerd door de huidige staat
Voorbeeld van een eenvoudige resourcebeschrijving in HCL:
resource "aws_instance" "example" {
# Resource type (AWS instance) en naam in de configuratie
ami = "ami-0abcdef1234567890" # ID van de AMI-afbeelding
instance_type = "t2.micro" # Type van de instantie
tags = {
# Labels voor de resource
Name = "example-instance"
}
}
Terraform vereenvoudigt en automatiseert het beheer van infrastructuur aanzienlijk, waardoor het voorspelbaarder, schaalbaarder en versieerbaar wordt.