Overzicht
Terraform implementeert een Infrastructure as Code (IaC) benadering om infrastructuur te beheren, wat de fouten van handmatige configuratie vermindert en de consistentie en herhaalbaarheid van infrastructuurimplementaties garandeert. Het ondersteunt diverse cloudproviders (AWS, Azure, GCP, etc.) en on-premises oplossingen, en biedt krachtige functies om infrastructuurwijzigingen vooraf te plannen en te beoordelen.
Belangrijkste kenmerken
- Infrastructuur als Code (IaC): Definieer infrastructuur als code met HCL (HashiCorp Configuration Language).
- Ondersteuning voor meerdere clouds: Ondersteunt diverse clouds en serviceproviders zoals AWS, Azure, GCP.
- Statusbeheer: Houdt de werkelijke status van de infrastructuur bij om wijzigingen efficiënt te beheren.
- Voorbeeld van uitvoeringsplan: Bekijk vooraf welke resources worden gemaakt, gewijzigd of verwijderd voordat wijzigingen worden toegepast.
Belangrijkste commando's (subcommando's)
Terraform voert infrastructuurbeheerworkflows uit via diverse subcommando's.
Kernworkflow
Hulpprogramma's
Gegenereerde opdracht:
Probeer de opdrachtcombinaties.
Uitleg:
`terraform` Voer het commando uit.
Combineer deze opties en voer de opdracht virtueel uit met de AI.
Gebruiksvoorbeelden
Voorbeelden die de typische workflow van Terraform demonstreren.
Terraform-project initialiseren
terraform init
Initialiseer een nieuw Terraform-project of kloon een bestaand project en voer dit commando uit om de benodigde providers te downloaden.
Infrastructuurwijzigingsplan vooraf bekijken
terraform plan
Bekijk vooraf hoe de wijzigingen die in de configuratiebestanden zijn gedefinieerd, worden toegepast op de werkelijke infrastructuur. In deze fase vinden er geen werkelijke resourcewijzigingen plaats.
Infrastructuur implementeren of bijwerken
terraform apply --auto-approve
Pas de wijzigingen die zijn beoordeeld met het 'plan'-commando daadwerkelijk toe op de cloud- of on-premises infrastructuur. De optie `--auto-approve` slaat de bevestigingsprompt over.
Infrastructuurresources verwijderen
terraform destroy --auto-approve
Vernietigt alle resources die door Terraform worden beheerd. Dit commando moet met grote voorzichtigheid worden gebruikt.
Configuratiebestanden formatteren
terraform fmt
Automatisch uitlijnen van alle Terraform-configuratiebestanden (.tf) in de huidige map naar een standaardformaat.
Installatie
Terraform is niet standaard inbegrepen in de meeste Linux-distributies, dus u moet de binaire bestanden downloaden en installeren vanaf de officiële HashiCorp-website. Hieronder vindt u de aanbevolen installatiemethode voor Debian/Ubuntu-gebaseerde systemen.
Installatie via APT-repository (Debian/Ubuntu)
sudo apt-get update && sudo apt-get install -y gnupg software-properties-common curl
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install terraform
Dit is de methode om de officiële APT-repository van HashiCorp toe te voegen en Terraform te installeren. Deze methode is handig om up-to-date te blijven.
Installatie controleren
Voer na de installatie het volgende commando uit om te controleren of Terraform correct is geïnstalleerd.
Versie controleren
terraform -v
Tips & Aandachtspunten
Tips en aandachtspunten voor het effectief gebruiken van Terraform en het voorkomen van potentiële problemen.
Belangrijkste tips
- Statusbestandbeheer: Het `terraform.tfstate`-bestand registreert de huidige status van de infrastructuur. Het is raadzaam om dit bestand veilig te beheren en niet direct in het versiebeheersysteem op te nemen. Het gebruik van externe backends zoals S3, Azure Blob Storage, GCS is gebruikelijk.
- Gebruik van modules: Het maken en beheren van herbruikbare infrastructuurcomponenten als modules verbetert de leesbaarheid en onderhoudbaarheid van de code.
- Plan beoordelen: Beoordeel altijd de wijzigingen vooraf met het `terraform plan`-commando om onbedoelde resourcewijzigingen of verwijderingen te voorkomen. Dit is vooral belangrijk in productieomgevingen.
- Versiebeheer: Terraform-configuratiebestanden (.tf) moeten absoluut worden beheerd met een versiebeheersysteem zoals Git om de wijzigingsgeschiedenis bij te houden en samenwerking te vergemakkelijken.
- Beheer van gevoelige informatie: Hardcodeer geen gevoelige informatie zoals API-sleutels of wachtwoorden direct in configuratiebestanden. Gebruik in plaats daarvan omgevingsvariabelen, Terraform-variabelen (tfvars) of geheimenbeheertools zoals Vault.
Aandachtspunten
- Het vernietigingscommando (`terraform destroy`) kan niet ongedaan worden gemaakt, dus controleer altijd zorgvuldig voordat u het uitvoert en maak indien nodig een back-up.
- Beschadiging van statusbestand: Als het statusbestand beschadigd raakt, kan Terraform de werkelijke status van de infrastructuur niet correct vaststellen, wat tot problemen kan leiden. Verminder dit risico door externe backends en vergrendelingsfuncties te gebruiken.
- Versieconflicten: Verschillen tussen de Terraform CLI-versie en de providerversies kunnen onverwacht gedrag veroorzaken. Het is raadzaam om providerversies vast te zetten met behulp van het `.terraform.lock.hcl`-bestand.