Terraform-leverandører

Terraform Leverandorer



Et av de populære og åpen kildekode-verktøyene for infrastruktur som kode er Terraform. Det lar utviklerne definere og administrere infrastrukturen din deklarativt. Det gjør dem i stand til å opprette, administrere og endre infrastrukturressursene ved hjelp av en enkel og konsistent syntaks, uavhengig av den underliggende skyplattformen eller tjenesteleverandøren.

Denne artikkelen diskuterer hvordan du bruker og konfigurerer de forskjellige leverandørene til å samhandle med ulike skyplattformer og tjenester.

Introduksjon til Terraform-leverandører

Terraform-leverandører er plugins som lar oss samhandle med forskjellige skyplattformer og tjenester ved hjelp av Terraform. Disse leverandørene er ansvarlige for å oversette Terraform-konfigurasjonen til API-anrop som er nødvendige for å administrere ressursene på en spesifikk skyplattform eller tjeneste.







Typer leverandører i Terraform

I Terraform-registeret , kan vi se tre typer leverandører:



Offisielle leverandører

Offisielle leverandører vedlikeholdes av HashiCorp-selskapet som eier Terraform. Disse leverandørene er det beste tilgjengelige alternativet hvis vi trenger de godt dokumenterte og oppdaterte leverandørene.



AWS-, Microsoft Azure- og Google Cloud Platform-leverandører kan være eksempler på offisielle leverandører i Terraform.





Partnerleverandører

Tredjepartsorganisasjoner opprettholder disse leverandørene og har inngått samarbeid med HashiCorp for å gi offisiell støtte for deres tjenester.

GitLab-, MongoDB- og CloudFlare-leverandører er noen partnerleverandører som er tilgjengelige for brukere.



Fellesskapsleverandører

Fellesskapsleverandører er vanligvis opprettet av enkeltpersoner eller organisasjoner i Terraform-fellesskapet som ønsker å administrere ressursene på en skyplattform eller tjeneste som ikke støttes av en offisiell eller partnerleverandør.

Noen eksempler på fellesskapsleverandører er vist i følgende bilde:

Slik bruker du en Terraform-leverandør

For å bruke en Terraform-leverandør må vi inkludere en leverandørblokk i konfigurasjonsfilen vår som spesifiserer leverandøren vi ønsker å bruke og eventuelle nødvendige konfigurasjonsparametere som legitimasjon eller region.

Når leverandøren er konfigurert, kan vi bruke ressursene og datakildene som tilbys av leverandøren i vår Terraform-konfigurasjon for å administrere ressursene på skyplattformen eller tjenesten.

La oss lage en enkel Terraform-konfigurasjonsfil som lager en EC2-forekomst i AWS-skyplattformen.

forsørger 'aws' {

versjon = '~> 3.0'

region = 'oss-øst-2'

}

ressurs 'aws_instance' 'myEC2' {

som = 'ami-0a561b65214a47cac'

instanstype = 't3. liten'

tagger = {

Navn = 'ny instans'

}

}

Først definerer vi leverandørblokken, og spesifiserer AWS-leverandøren og regionen der ressursene opprettes. Deretter definerer vi ressursblokken vår som bestående av aws_instance som ressurstypen, 'myEC2' som ressursnavnet og 'ami', 'instance_type' og 'tags' som attributtene. Ressurstypen kan deles inn i to deler: Leverandør og Ressurs. I dette tilfellet er 'aws' leverandøren, og 'instans' er ressursen. Hvis noen trenger å klargjøre ti EC2-forekomster, kan «count»-attributtet brukes med ti som verdi.

Nå kan vi utføre Terraform-flyten som inkluderer å utføre terraform-initieringen, terraform-planen og terraform-brukskommandoer for å lage ressursen vi definerte.

Ved å bruke Terraform AWS-leverandøren kan vi få tilgang til AWS-skyplattformen og samhandle effektivt med tjenestene uten å bruke AWS Management Console.

Bruke flere leverandører i Terraform

I stedet for å bruke en enkelt leverandør, lar Terraform oss bruke flere leverandører innenfor samme Terraform-konfigurasjonsfil for å samhandle med ulike typer tjenester og skyplattformer.

For din forståelse, la oss ta et eksempel der vi distribuerer en beregningsmotor i Google Cloud Platform, et depot i GitHub og en S3-bøtte i AWS-skyplattformen.

forsørger 'Google' {

prosjekt = 'første prosjekt'

region = 'us-vest1'

}

forsørger 'github' {

token = 'YOUR_GITHUB_TOKEN'

}

forsørger 'aws' {

versjon = '~> 3.0'

region = 'oss-vest-2'

}

ressurs 'google_compute_instance' 'gcpInstance' {

navn = 'ny instans'

maskintype = 'n1-standard-1'

sone = 'us-vest1-a'

boot_disk {

initialize_params {

bilde = 'debian-cloud/debian-10'

}

}

}

ressurs 'github_repository' 'gitRepo' {

navn = 'ny-repo'

beskrivelse = 'Dette er mitt nye depot'

}

ressurs 'aws_s3_bucket' 'awsBucket' {

bøtte = 'ny bøtte'

acl = 'privat'

}

Som det første trinnet definerer vi leverandørblokkeringene våre for å spesifisere leverandørene (Google, GitHub og AWS) og nødvendig informasjon som region, prosjektnavn osv. Deretter erklærer vi ressursene våre ved å bruke tre ressursblokker: 'gcpInstance', ' gitRepo', og 'awsBucket'.

Først oppretter vi en beregningsmotor i Google Cloud Platform med «new-instance» som navn, «n1-standard-1» som maskintype og «us-west1-a» som tilgjengelighetssone. Den bruker Debian som verts-OS. Deretter lager vi et GitHub-depot kalt 'new-repo' og en passende beskrivelse. Til slutt lages en S3-bøtte med 'new-bucket' som navn og 'private' som ACL-verdi (Access Control List).

Med disse tre Terraform-leverandørene kan vi enkelt samhandle med skyplattformer og deres tjenester.

Beste praksis for å jobbe med Terraform-leverandører

Leverandørversjon

Vi bør spesifisere leverandørens versjon siden den bidrar til å sikre konsistens og unngår uventet oppførsel på grunn av brytende endringer i nyere versjoner.

Leverandørautentisering

Vi kan bruke de sikre autentiseringsmekanismene som API-nøkler og tilgangstokener for å autentisere og autorisere Terraform til å samhandle med den respektive skyplattformen eller tjenesten.

Leverandørdokumentasjon

Leverandører har ofte spesifikke konfigurasjonsalternativer, funksjoner og begrensninger. Å forstå denne opplæringen hjelper oss å bruke leverandøren effektivt og unngå vanlige fallgruver.

Leverandøroppdateringer

Leverandører kan gi ut feilrettinger, ytelsesforbedringer og nye funksjoner. Ved å holde oss oppdatert kan vi dra nytte av de siste forbedringene og opprettholde kompatibilitet med leverandørens økosystem.

Fellesskapsstøtte

Vi kan bruke nettforaene, diskusjonsforaene og fellesskapskanalene for å løse de daglige utfordringene som oppstår mens du bruker leverandørene.

Feilhåndtering og feilsøking

Det er en god praksis å gjøre oss kjent med leverandørens feilmeldinger, logger og feilsøkingsteknikker, slik at det vil hjelpe oss med å diagnostisere og løse problemene mer effektivt.

Konklusjon

Vi tok en kort introduksjon til Terraform-leverandører. Vi diskuterte hvordan du bruker og konfigurerer dem til å samhandle med ulike skyplattformer og tjenester og hvordan du bruker flere leverandører til å administrere ressursene på tvers av ulike skyplattformer og tjenester gjennom enkle å forstå eksempler.