de Terraform Command Line Interface (CLI) gebruiken op Ubuntu

Terraform is een raamwerk voor het bouwen en configureren van infrastructuur als code, met een command-line interface en DSL taal. Terraform kan zowel bestaande en populaire dienstverleners als eigen oplossingen beheren om complete gedistribueerde datacenters te bouwen en in te stellen.

Met de Terraform Command Line Interface (CLI) kun je Terraform gebruiken zonder code of configuratiebestanden te hoeven schrijven. Het is een ideale manier om met je team prototypes van infrastructuurveranderingen te maken voordat je code schrijft, configuraties lokaal op je machine implementeert, of ze in productie zet. De CLI bouwt voort op het terraformspec bestandsformaat dat voor dit doel gemaakt werd door derden, zoals de HashiCorp Nomad CLI Toolkit.

De CLI toolkit implementeert een JavaScript DSL om de infrastructuur te definiëren en gebruikt hetzelfde configuratie formaat in zowel Terraform als de CLI. De CLI toolkit levert ook commando’s om infrastructuur templates te genereren, infrastructuur componenten tot complete oplossingen samen te stellen, en wijzigingen te beheren. De hele Terraform werkstroom wordt gestuurd door stateless functies die in code gedefinieerd zijn en door Terraform uitgevoerd worden telkens als je een verandering aanbrengt. Dit stelt je in staat over je infrastructuur te denken als een enkel ontwerp dat in runtime gemakkelijk gewijzigd kan worden zonder je configuratie opnieuw te laden of je codebase aan te passen.

Een aantal IT professionals en bedrijven gebruiken de Terraform command-line interface om nieuwe infrastructuur of nieuwe cloud infrastructuren te beheren en zelfs te maken. De terraform command-line interface kan een robuustere methode bieden voor het automatiseren van veranderingen die te lang zouden duren om met de hand uit te voeren. Het is een krachtig hulpmiddel om infrastructuur te beheren.

Het is gemakkelijk te zien waarom Terraform een van de populairste open-source cloud provisioning oplossingen ter wereld is. Het is een hulpmiddel dat gebruikt wordt door Linux mensen zoals jij!

Binnen vind je volledige uitleg en voorbeelden van de meest gebruikte Terraform CLI commando’s, die speciaal geselecteerd zijn om je hands-on ervaring te geven met Terraform’s krachtigste functies.

Voorwaarde

  • Om dit artikel te kunnen volgen, moet je beschikken over:
  • Een zekere basiskennis van de mogelijkheden en functies van Terraform.
  • Een Linux machine. Deze demo gebruikt Ubuntu 20.04 LTS, maar elke Linux distributie zal werken.
  • Terraform en docker op de machine geïnstalleerd.

Het klonen van de hoofdcode

Nu je voor de eerste vereisten gezorgd hebt, ben je klaar om te beginnen met het klonen van de hoofdcode om de Terraform CLI op te gebruiken.

1. Voer het onderstaande apt install commando uit om git op je systeem te installeren. Git is een open-source gedistribueerd revisiebeheersysteem, ontworpen om alles van kleine tot zeer grote projecten met snelheid en efficiëntie te behandelen. Je zult git gebruiken om het terraform command-line interface projectsjabloon van github.com te klonen. Dan zul je de juiste versie van de terraform commandolijn voor deze demo uitproberen.

sudo apt install git -y

installeer git op je systeem

2. Voer het git clone commando hieronder uit om het terraform opdrachtregel project sjabloon je huidige directory te klonen.

git clone https://github.com/howtoforge-com/terraform-cli.git

kloon het terraform opdrachtregel project sjabloon

3. Ga naar de nieuw gekloonde terraform-cli directory en open het main.tf bestand met je favoriete teksteditor (vim, emacs, nano, enz.). Een main.tf bestand is het ingangspunt van je project naar de terraform command-line interface (Cli). Wanneer je het terraform commando uitvoert, gebruikt het het main.tf bestand als invoer voor instructies over hoe je je infrastructuur moet bouwen.

cd terraform-cli && sudo nano main.tf

Je krijgt dan de volgende uitvoer.

open het bestand main.tf met je favoriete teksteditor

  • De terraform { } sectie van het main.tf bestand doet niets anders dan de docker provider als required_provider instellen. Om Terraform je Docker infrastructuur te laten beheren, moet je de docker provider geconfigureerd hebben.

voorproefje van de terravorm sectie

  • Het codeblok resource “docker_image” “nginx” { demonstreert het gebruik van de terraform CLI door een nieuwe resource genaamd docker_image aan te maken. De volgende regel gebruikt het docker-image om een resource aan te maken die nginx heet. Je kunt hieruit afleiden dat dit gebruikt zal worden om je Docker container te beheren. De volgende regel stelt de naam van je docker-image in als nginx:latest.De keep_locally = false voorkomt dat het image lokaal op je machine gecached wordt en is een goed idee om dubbele downloads te voorkomen.

voorvertoning van de bronnensectie

  • Deresource “docker_container” “nginx” { demonstreert het gebruik van de terraform CLI door een nieuwe resource aan te maken die docker_container heet. De volgende regel gebruikt de docker_container om een resource aan te maken die nginx heet. Dit zal gebruikt worden om de port mapping van je Docker container te beheren. De volgende regel stelt de naam van je docker container in als tutorial en demonstreert tenslotte hoe je poort 8000 en poort 80 op je host machine op je docker container mapt met het ports blok.

voorvertoning van de bronnensectie

Gebruik de Terraform Command Line Interface (CLI) om je eerste infrastructuur te bouwen

Nu je het terraform projectsjabloon gekloond hebt, kun je je eerste infrastructuur bouwen. Je zult de Terraform CLI gebruiken om een infrastructuur te bouwen met behulp van het main.tf bestand van je project. Je zult een docker container maken en een poort van je host machine aan de docker container toewijzen.

1. Voer eerst het terraform init commando uit om je werkdirectory te initialiseren. Het terraform init commando initialiseert je werkdirectory en downloadt alle vereiste plugins die nodig zijn om Terraform je infrastructuur te laten beheren. Een werkdirectory is de directory waarin je het terraform commando zult gebruiken om je infrastructuur te beheren. Eenmaal geïnitialiseerd bevat deze directory een main.tf bestand en kan meerdere ondersteunende bestanden bevatten.

terraform init

Na het succesvol uitvoeren van het terraform init commando krijg je de volgende uitvoer.

initialiseer je werkdirectory

2. Voer vervolgens het terraform fmt commando uit om je main.tf bestand automatisch te formatteren voor leesbaarheid en consistentie.Het terraform fmt commando zal je main.tf bestand opnieuw formatteren voor leesbaarheid en consistentie. Dit is een goede gewoonte om te volgen, want het maakt je bestanden gemakkelijker leesbaar voor jou en anderen.

terraform fmt

Als het terraform fmt commando je main.tfbestanden, drukt het de naam af van het bestand dat het opnieuw formatteerde. In deze demo is de uitvoer blanco omdat het main.tf bestand al naar de zin van Terraform was geformatteerd, zoals hieronder te zien is.

formatteer je main.tf bestand voor leesbaarheid en consistentie

3. Voer het terraform validate commando uit om er zeker van te zijn dat je infrastructuur gebouwd wordt zoals bedoeld. Het terraform validate commando is een veiligheidscontrole om na te gaan of je infrastructuur gebouwd kan worden zoals de bedoeling is.

terraform validate

Als er geen fouten zijn, krijg je een uitvoer die lijkt op de volgende, die aangeeft dat alles klaar is om je eerste infrastructuur te bouwen.

je infrastructuur valideren

4. Voer het terraform plan commando uit om te zien wat Terraform zal doen om de infrastructuur te bouwen. Het terraform plan commando is een voorproefje van wat Terraform van plan is te bouwen en is niet hetzelfde als terraform apply.

terraform plan

Het terraform plan commando geeft de volgende structuur, waaruit blijkt dat het een instantie van docker_container resource genaamd nginx en een docker_image resource genaamd tutorial zal maken.

Het terravormingsplan bekijken

5. Voer het terraform apply commando uit om de veranderingen die je met terraform plan voorstelde toe te passen. Het terraform apply commando bouwt je infrastructuur. Het terraform apply commando zal alle bronnen aanmaken die beschreven zijn in je Terraform main.tf configuratiebestand.

Dit commando zal de evaluatie van variabelen, beperkingen en mappings uit het terraform plan commando hergebruiken om een zo efficiënt mogelijk plan te produceren. Eventuele extra opties die op de commandoregel met terraform apply worden opgegeven, worden gebruikt bij het uitvoeren van het apply commando. Voer ja in en druk op Enter als gevraagd wordt een Waarde in te voeren.

terraform apply

je verandering toepassen

Als het terraform apply commando slaagt, zie je een bericht dat aangeeft dat je infrastructuur met succes gebouwd is, zoals hieronder. Wanneer dit gebeurt, betekent dit dat je infrastructuur gebouwd werd zoals de bedoeling was en dat je configuratiebestand up-to-date is.

Bouwen aan je infrastructuur

6. Voer het ls commando uit om alle bestanden in je werkdirectory op te sommen. Je zult een nieuw bestand zien met de naam terraform.tfstate, zoals hieronder te zien is. Een bestand met deze naam wordt aangemaakt om veranderingen aan je infrastructuur bij te houden. Het terraform plan commando slaat de veranderingen die zullen worden toegepast bij het uitvoeren van terraform apply op in een tussenliggend bestand met de naam .tfstate. Het toestandsbestand bevat de volledige toestand van de infrastructuur zoals Terraform die ziet. Dit bestand is nodig om eender welke configuratie toe te passen en moet bij wijzigingen overgezet worden, zelfs als het doel zich binnen dezelfde aanbieder bevindt.

ls

maak een lijst van alle bestanden in je werkdirectory

7. Het bouwproces is nu voorbij. Voer het terraform destroy commando uit om de infrastructuur die je net bouwde te vernietigen. Voerjain en druk op Enter wanneer je gevraagd wordt een Waarde in te voeren.Het terraform destroy commando zal alle middelen wissen die door deze demo zijn gemaakt. Het terraform destroy commando zal alle middelen wissen die beschreven zijn in je Terraform main.tf configuratiebestand. Als de middelen eenmaal vernietigd zijn, kunnen ze niet meer hersteld worden.

Je moet ongebruikte middelen verwijderen om de configuratie voor een omgeving in toom te houden. Het gaat er niet om mislukkingen te verdoezelen – het gaat erom mislukkingen te voorkomen door de opeenhoping van ongebruikte middelen te voorkomen.

 terraform destroy

de infrastructuur vernietigen

Conclusie

In deze tutorial heb je geleerd hoe je de meest voorkomende Terraform concepten, gedemonstreerd in een voorbeeld, kunt gebruiken om je eerste infrastructuur te bouwen. Je leerde hoe je de Terraform CLI kunt gebruiken om infrastructuur te bouwen met behulp van het main.tf bestand van je project. De CLI kan gebruikt worden om je infrastructuur te plannen, toe te passen, en te vernietigen.

Je hebt nu de gereedschappen om je eigen infrastructuur te bouwen. Je kunt met gemak een grote verscheidenheid aan middelen beheren, dankzij Terraform’s uitgebreide en expressieve configuratietaal.

Je kunt je nieuw verworven kennis in infrastructuurbeheer, die al in gebruik is voor Docker containers, Kubernetes, en OpenStack, inzetten om meer efficiëntie en consistentie in je infrastructure-as-code praktijk te brengen.