Terraform udbydere

Terraform Udbydere



Et af de populære og open source Infrastructure as a Code-værktøjer er Terraform. Det giver udviklerne mulighed for at definere og administrere din infrastruktur deklarativt. Det sætter dem i stand til at oprette, administrere og ændre infrastrukturressourcerne ved hjælp af en enkel og ensartet syntaks, uanset den underliggende cloud-platform eller tjenesteudbyder.

Denne artikel diskuterer, hvordan man bruger og konfigurerer de forskellige udbydere til at interagere med forskellige cloud-platforme og -tjenester.

Introduktion til Terraform-udbydere

Terraform-udbydere er plugins, der giver os mulighed for at interagere med forskellige cloud-platforme og tjenester ved hjælp af Terraform. Disse udbydere er ansvarlige for at oversætte Terraform-konfigurationen til API-kald, som er nødvendige for at administrere ressourcerne på en specifik cloud-platform eller -tjeneste.







Typer af udbydere i Terraform

I Terraform register , kan vi se tre typer udbydere:



Officielle udbydere

Officielle udbydere vedligeholdes af HashiCorp-selskabet, som ejer Terraform. Disse udbydere er den bedst tilgængelige mulighed, hvis vi har brug for de veldokumenterede og opdaterede udbydere.



AWS-, Microsoft Azure- og Google Cloud Platform-udbydere kan være eksempler på officielle udbydere i Terraform.





Partner udbydere

Tredjepartsorganisationer opretholder disse udbydere og har indgået partnerskab med HashiCorp for at yde officiel support til deres tjenester.

GitLab-, MongoDB- og CloudFlare-udbydere er nogle partnerudbydere, der er tilgængelige for brugere.



Fællesskabsudbydere

Fællesskabsudbydere er typisk oprettet af enkeltpersoner eller organisationer i Terraform-fællesskabet, som ønsker at administrere ressourcerne på en cloud-platform eller -tjeneste, der ikke understøttes af en officiel udbyder eller partnerudbyder.

Nogle eksempler på fællesskabsudbydere er vist på følgende billede:

Sådan bruger du en Terraform-udbyder

For at bruge en Terraform-udbyder skal vi inkludere en udbyderblok i vores konfigurationsfil, som specificerer den udbyder, vi ønsker at bruge, og eventuelle nødvendige konfigurationsparametre såsom legitimationsoplysninger eller region.

Når udbyderen er konfigureret, kan vi bruge de ressourcer og datakilder, der leveres af udbyderen i vores Terraform-konfiguration til at administrere ressourcerne på cloud-platformen eller -tjenesten.

Lad os oprette en simpel Terraform-konfigurationsfil, der opretter en EC2-instans i AWS-skyplatformen.

udbyder 'åh' {

version = '~> 3,0'

region = 'os-øst-2'

}

ressource 'aws_instance' 'myEC2' {

hvilket = 'ami-0a561b65214a47cac'

instance_type = 't3. lille'

tags = {

Navn = 'ny-instans'

}

}

Først definerer vi udbyderblokken, og specificerer AWS-udbyderen og den region, hvor ressourcerne oprettes. Derefter definerer vi vores ressourceblok som bestående af aws_instance som ressourcetypen, 'myEC2' som ressourcenavnet og 'ami', 'instance_type' og 'tags' som attributterne. Ressourcetypen kan opdeles i to dele: Udbyder og Ressource. I dette tilfælde er 'aws' udbyderen, og 'instans' er ressourcen. Hvis nogen har brug for at klargøre ti EC2-instanser, kan 'count'-attributten bruges med ti som værdi.

Nu kan vi udføre Terraform-flowet, som omfatter udførelse af terraform-init, terraform-planen og terraform-anvendelseskommandoer for at skabe den ressource, vi definerede.

Ved at bruge Terraform AWS-udbyderen kan vi få adgang til AWS-skyplatformen og interagere med dens tjenester effektivt uden at bruge AWS Management Console.

Brug af flere udbydere i Terraform

I stedet for at bruge en enkelt udbyder giver Terraform os mulighed for at bruge flere udbydere inden for den samme Terraform-konfigurationsfil til at interagere med forskellige typer tjenester og cloud-platforme.

For din forståelse, lad os have et eksempel, hvor vi implementerer en beregningsmotor i Google Cloud Platform, et lager i GitHub og en S3-bøtte i AWS-skyplatformen.

udbyder 'google' {

projekt = 'første projekt'

region = 'os-vest1'

}

udbyder 'github' {

token = 'DIN_GITHUB_TOKEN'

}

udbyder 'åh' {

version = '~> 3,0'

region = 'os-vest-2'

}

ressource 'google_compute_instance' 'gcpInstance' {

navn = 'ny-instans'

machine_type = 'n1-standard-1'

zone = 'os-vest1-a'

boot_disk {

initialize_params {

billede = 'debian-cloud/debian-10'

}

}

}

ressource 'github_repository' 'gitRepo' {

navn = 'ny-repo'

beskrivelse = 'Dette er mit nye lager'

}

ressource 'aws_s3_bucket' 'awsBucket' {

spand = 'ny-spand'

acl = 'privat'

}

Som det første trin definerer vi vores udbyderblokke for at specificere udbyderne (Google, GitHub og AWS) og de nødvendige oplysninger som region, projektnavn osv. Derefter erklærer vi vores ressourcer ved hjælp af tre ressourceblokke: 'gcpInstance', ' gitRepo', og 'awsBucket'.

Først opretter vi en beregningsmotor i Google Cloud Platform med 'ny-instansen' som navn, 'n1-standard-1' som maskintype og 'us-west1-a' som tilgængelighedszonen. Den bruger Debian som værts-OS. Derefter opretter vi et GitHub-depot med navnet 'new-repo' og en passende beskrivelse. Til sidst laves en S3-spand med 'new-bucket' som navn og 'privat' som ACL-værdien (Access Control List).

Med disse tre Terraform-udbydere kan vi nemt interagere med cloud-platforme og deres tjenester.

Bedste praksis for at arbejde med Terraform-udbydere

Udbyder versionering

Vi bør specificere udbyderens version, da den hjælper med at sikre konsistens og undgår uventet adfærd på grund af brydende ændringer i nyere versioner.

Udbydergodkendelse

Vi kan bruge de sikre autentificeringsmekanismer såsom API-nøgler og adgangstokens til at godkende og autorisere Terraform til at interagere med den respektive cloud-platform eller -tjeneste.

Udbyder dokumentation

Udbydere har ofte specifikke konfigurationsmuligheder, funktioner og begrænsninger. At forstå denne tutorial hjælper os med at bruge udbyderen effektivt og undgå almindelige faldgruber.

Udbyderopdateringer

Udbydere kan frigive fejlrettelser, ydeevneforbedringer og nye funktioner. At holde sig opdateret giver os mulighed for at drage fordel af de seneste forbedringer og opretholde kompatibilitet med udbyderens økosystem.

Fællesskabsstøtte

Vi kan bruge online-fora, diskussionsfora og fællesskabskanaler til at løse de daglige udfordringer, som du støder på, mens du bruger udbyderne.

Fejlhåndtering og fejlfinding

Det er en god praksis at gøre os bekendt med udbyderens fejlmeddelelser, logfiler og fejlfindingsteknikker, så det vil hjælpe os med at diagnosticere og løse problemerne mere effektivt.

Konklusion

Vi tog en kort introduktion til Terraform-udbydere. Vi diskuterede, hvordan man bruger og konfigurerer dem til at interagere med forskellige cloud-platforme og -tjenester, og hvordan man bruger flere udbydere til at styre ressourcerne på tværs af forskellige cloud-platforme og -tjenester gennem letforståelige eksempler.