Unified, geautomatiseerd en klaar om data om te zetten in informatie.
Ontdek hoe u de ware waarde van uw gegevens kunt ontsluiten.
Terraform, ontwikkeld door HashiCorp, is een veelgebruikte Infrastructure-as-Code (IaC)-tool waarmee gebruikers software-infrastructuur kunnen definiëren en leveren met behulp van een configuratietaal op hoog niveau. Naarmate organisaties steeds meer gebruikmaken van cloudgebaseerde infrastructuren, is Terraform essentieel geworden voor het beheer en de automatisering van de implementatie van infrastructuurresources. Een van de kerncommando's in Terraform is terraform plan, een cruciale stap in het implementatieproces dat ervoor zorgt dat veranderingen in de infrastructuur veilig, voorspelbaar en efficiënt zijn.
In dit artikel bekijken we dit commando, wat het doet en hoe u de output voor uw Terraform-configuraties kunt interpreteren.
Het commando terraform plan is een essentieel onderdeel van de Terraform-workflow die dient als een dry run of preview van de wijzigingen die Terraform in uw infrastructuur zal aanbrengen. Het vergelijkt de huidige staat van uw infrastructuur met de gewenste staat die is gedefinieerd in uw Terraform-configuratiebestanden en toont de specifieke acties die Terraform zal ondernemen om de kloof te overbruggen. Dit omvat toevoegingen, verwijderingen en wijzigingen van resources, zoals het creëren van nieuwe virtuele machines, het opschalen van bestaande databases of het verwijderen van ongebruikte opslagvolumes.
De mogelijkheid om vooraf te bekijken welke wijziging uw configuratiecode voor uw infrastructuur veroorzaakt, is op veel manieren gunstig, waaronder:
Om een terraform plan uit te voeren, moet u eerst zorgen dat Terraform op uw lokale machine is geïnstalleerd. U kunt de juiste versie downloaden en installeren van de officiële HashiCorp-website .
Voordat u het plancommando uitvoert, moet u in uw werkmap een basisconfiguratiebestand van Terraform met de naam main.tf maken. Hieronder volgt een voorbeeld van een eenvoudige configuratie die een virtuele machineresource creëert in een cloudprovider:
# Configure the cloud provider (replace with your provider details)
provider "aws" {
region = "us-east-1"
}
# Define a virtual machine resource
resource "aws_instance" "my_vm" {
ami = "ami-0f78f7e824d9499e0" # Replace with the desired AMI ID
instance_type = "t2.micro"
}
1. De Terraform-directory initialiseren
Navigeer naar uw werkmap met het main.tf-bestand en voer de volgende opdracht uit op uw terminal:
$ terraform init
Deze opdracht initialiseert de Terraform-directory, downloadt alle vereiste plug-ins of modules die in uw configuratie worden genoemd en bereidt de omgeving voor op het werken met Terraform.
2. Terraform-plan uitvoeren
Zodra de initialisatie is voltooid, voert u de volgende opdracht uit om het uitvoeringsplan te genereren:
$ terraform plan
Deze opdracht analyseert uw Terraform-configuratie en vergelijkt deze met de huidige staat van uw infrastructuur (indien van toepassing). Vervolgens wordt een gedetailleerd plan weergegeven met de acties die Terraform zal ondernemen om de gewenste status te bereiken die in uw configuratie is gedefinieerd. Het plan toont doorgaans de resources die worden gecreëerd, gewijzigd of verwijderd
3. Sla de planoutput op
Als u het plan wilt opslaan voor toekomstig gebruik of het wilt delen met teamleden, kunt u optioneel de -out-vlag gebruiken met het plancommando. De volgende opdracht slaat bijvoorbeeld het plan op in een bestand met de naam plan.tfplan:
$ terraform plan -out=plan.tfplan
De opdracht terraform plan geeft alleen een voorbeeld van de wijzigingen. Het brengt geen wijzigingen aan in uw infrastructuur. Nadat u het plan hebt bekeken en goedgekeurd, kunt u de opdracht $ terraform apply gebruiken om de geplande wijzigingen uit te voeren.
De output van het terraforme plan is doorgaans onderverdeeld in verschillende secties, die elk waardevolle inzichten bieden in de geplande acties:
In dit gedeelte worden de specifieke acties vermeld die Terraform van plan is uit te voeren op uw infrastructuurresources. Deze acties zijn onderverdeeld in drie hoofdtypen:
Deze sectie biedt diepgaande informatie over elke resource die door het plan wordt beïnvloed. Hier is een overzicht van de details die u normaal gesproken kunt vinden:
In dit gedeelte worden de specifieke wijzigingen beschreven die op de resource zullen worden toegepast. Voor resources die worden gecreëerd (aangeduid door +), worden de attributen en de bijbehorende waarden vermeld die zullen worden gedefinieerd. Voor resources die worden gewijzigd, toont het de wijzigingen in bestaande attributen.
De planoutput wordt vaak afgesloten met een samenvattingssectie die een overzicht op hoog niveau biedt van de geplande acties. Deze samenvatting verdeelt doorgaans het totale aantal resources in de volgende categorieën:
Toe te voegen: Het aantal nieuwe resources dat zal worden gecreëerd
Te wijzigen: Het aantal bestaande resources dat zal worden gewijzigd
Te vernietigen: Het aantal bestaande resources dat zal worden verwijderd
Wanneer u een terraform plan uitvoert met de voorbeeldconfiguratie die we eerder hebben gemaakt, krijgt u resultaten die vergelijkbaar zijn met het volgende:
# $ terraform plan
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# aws_instance.my_vm will be created
resource "aws_instance" "my_vm" {
+ ami = "ami-0f78f7e824d9499e0"
+ instance_type = "t2.micro"
+ tags = {
+ Name = "sample-tag"
}
}
1. Resource-acties: De eerste regel geeft aan dat Terraform tijdens dit plan creatieacties (+) zal uitvoeren.
2. Informatie over resources: In de volgende sectie wordt ingegaan op de details van één enkele resource, aws_instance.my_vm . Dit betekent dat Terraform in uw AWS-omgeving een nieuwe AWS EC2-instantie zal maken met de naam my_vm. De details specificeren verder de AMI ID (ami-0f78f7e824d9499e0), het instantietype (t2.micro ) en een tag (Naam = "sample-tag ") die Terraform op de nieuwe instantie zal toepassen.
3. Samenvatting (impliciet): Hoewel dit voorbeeld niet expliciet wordt getoond, kan een samenvatting worden weergegeven aan het einde van een complexere planuitvoer, met vermelding van het totale aantal resources dat moet worden aangemaakt.
Het commando terraform plan is uw vangnet voordat u infrastructuurwijzigingen aanbrengt. Hieronder volgen enkele essentiële praktijken om de voordelen ervan te maximaliseren:
Bekijk wijzigingen in resources:
Spot potentiële problemen:
De output benutten:
Het Terraform-plan is een krachtige tool in de Terraform-workflow. Het biedt een veilige en transparante methode om infrastructuurwijzigingen te bekijken en te valideren voordat ze worden toegepast. Door het Terraform-plan te begrijpen en effectief te gebruiken, kunt u ervoor zorgen dat uw implementaties efficiënt, voorspelbaar en vrij van onbedoelde gevolgen zijn.
Pure Storage biedt de beste persistente block storage-oplossingen voor uw Terraform-implementaties. Portworx® biedt een uitgebreid dataplatform voor al uw container- en Kubernetes Terraform-workloads. Met Pure Cloud Block Store™ kunt u elke database- of containerworkload in de cloud uitvoeren, net zoals u kunt doen op on-prem infrastructuur
Maak je klaar voor het meest waardevolle evenement dat je dit jaar zult bijwonen.
Krijg toegang tot on-demand video's en demo's om te zien wat Everpure kan doen.
Charlie Giancarlo over waarom het beheren van data en niet opslag de toekomst zal zijn. Ontdek hoe een uniforme aanpak de IT-activiteiten van bedrijven transformeert.
Moderne workloads vragen om AI-ready snelheid, beveiliging en schaalbaarheid. Is uw stack er klaar voor?