Ponudniki Terraform

Ponudniki Terraform



Eno izmed priljubljenih in odprtokodnih orodij Infrastructure as a Code je Terraform. Razvijalcem omogoča, da deklarativno definirajo in upravljajo vašo infrastrukturo. Omogoča jim ustvarjanje, upravljanje in spreminjanje infrastrukturnih virov z uporabo preproste in dosledne sintakse, ne glede na osnovno platformo v oblaku ali ponudnika storitev.

Ta članek obravnava, kako uporabljati in konfigurirati različne ponudnike za interakcijo z različnimi platformami in storitvami v oblaku.

Uvod v ponudnike Terraform

Ponudniki Terraform so vtičniki, ki nam omogočajo interakcijo z različnimi oblačnimi platformami in storitvami z uporabo Terraform. Ti ponudniki so odgovorni za prevajanje konfiguracije Terraform v klice API, ki so potrebni za upravljanje virov na določeni platformi ali storitvi v oblaku.







Vrste ponudnikov v Terraform

V Terraform register , lahko opazimo tri vrste ponudnikov:



Uradni ponudniki

Uradne ponudnike vzdržuje podjetje HashiCorp, ki ima v lasti Terraform. Ti ponudniki so najboljša razpoložljiva možnost, če potrebujemo dobro dokumentirane in posodobljene ponudnike.



Ponudniki AWS, Microsoft Azure in Google Cloud Platform so lahko primeri uradnih ponudnikov v Terraform.





Partnerski ponudniki

Organizacije tretjih oseb vzdržujejo te ponudnike in sodelujejo s podjetjem HashiCorp, da zagotovijo uradno podporo za njihove storitve.

Ponudniki GitLab, MongoDB in CloudFlare so nekateri partnerski ponudniki, ki so na voljo uporabnikom.



Skupnostni ponudniki

Ponudnike skupnosti običajno ustvarijo posamezniki ali organizacije skupnosti Terraform, ki želijo upravljati vire na platformi ali storitvi v oblaku, ki je ne podpira uradni ali partnerski ponudnik.

Nekaj ​​primerov ponudnikov skupnosti je prikazanih na naslednji sliki:

Kako uporabljati ponudnika Terraform

Za uporabo ponudnika Terraform moramo v našo konfiguracijsko datoteko vključiti blok ponudnika, ki določa ponudnika, ki ga želimo uporabiti, in vse zahtevane konfiguracijske parametre, kot so poverilnice ali regija.

Ko je ponudnik konfiguriran, lahko uporabljamo vire in vire podatkov, ki jih ponuja ponudnik v naši konfiguraciji Terraform, za upravljanje virov na platformi ali storitvi v oblaku.

Ustvarimo preprosto konfiguracijsko datoteko Terraform, ki ustvari primerek EC2 v oblačni platformi AWS.

ponudnik 'aws' {

različica = '~> 3,0'

regija = 'us-vzhod-2'

}

vir 'aws_instance' 'mojEC2' {

ki = 'ami-0a561b65214a47cac'

instance_type = 't3. majhen'

oznake = {

Ime = 'nov primerek'

}

}

Najprej definiramo blok ponudnika, pri čemer navedemo ponudnika AWS in regijo, kjer so viri ustvarjeni. Nato definiramo naš blok virov, ki ga sestavljajo aws_instance kot vrsta vira, »myEC2« kot ime vira in »ami«, »instance_type« in »tags« kot atributi. Vrsto vira lahko razdelimo na dva dela: Ponudnik in Vir. V tem primeru je »aws« ponudnik, »primer« pa vir. Poleg tega, če mora nekdo zagotoviti deset primerkov EC2, se lahko atribut »count« uporabi z deset kot vrednostjo.

Zdaj lahko izvedemo potek Terraform, ki vključuje izvajanje ukazov terraform init, terraform plan in terraform apply, da ustvarimo vir, ki smo ga definirali.

Z uporabo ponudnika Terraform AWS lahko dostopamo do oblačne platforme AWS in učinkovito komuniciramo z njenimi storitvami brez uporabe upravljalne konzole AWS.

Uporaba več ponudnikov v Terraform

Namesto uporabe enega ponudnika nam Terraform omogoča uporabo več ponudnikov znotraj iste konfiguracijske datoteke Terraform za interakcijo z različnimi vrstami storitev in platformami v oblaku.

Za vaše razumevanje si oglejmo primer, kjer uvedemo računalniški mehanizem v Google Cloud Platform, repozitorij v GitHub in vedro S3 v platformi v oblaku AWS.

ponudnik 'google' {

projekt = 'prvi projekt'

regija = 'us-west1'

}

ponudnik 'github' {

žeton = 'VAŠ_GITHUB_TOKEN'

}

ponudnik 'aws' {

različica = '~> 3,0'

regija = 'us-west-2'

}

vir 'google_compute_instance' 'gcpInstance' {

ime = 'nov primerek'

vrsta_stroja = 'n1-standard-1'

cona = 'us-west1-a'

zagonska_diska {

initialize_params {

slika = 'debian-cloud/debian-10'

}

}

}

vir 'github_repository' 'gitRepo' {

ime = 'nov-repo'

opis = 'To je moje novo skladišče'

}

vir 'aws_s3_bucket' 'awsBucket' {

vedro = 'novo-vedro'

acl = 'zasebno'

}

Kot prvi korak definiramo naše bloke ponudnikov, da določimo ponudnike (Google, GitHub in AWS) in potrebne informacije, kot so regija, ime projekta itd. Nato svoje vire prijavimo s tremi bloki virov: »gcpInstance«, » gitRepo« in »awsBucket«.

Najprej ustvarimo računalniški mehanizem v platformi Google Cloud Platform z imenom »new-instance«, »n1-standard-1« kot vrsto stroja in »us-west1-a« kot območjem razpoložljivosti. Kot gostiteljski OS uporablja Debian. Nato ustvarimo repozitorij GitHub z imenom »new-repo« in ustreznim opisom. Na koncu se naredi vedro S3 z imenom »new-bucket« in vrednostjo ACL (Access Control List) »private«.

S temi tremi ponudniki Terraform lahko preprosto komuniciramo s platformami v oblaku in njihovimi storitvami.

Najboljše prakse za delo s ponudniki Terraform

Različice ponudnika

Določiti moramo različico ponudnika, saj pomaga zagotoviti doslednost in se izogne ​​nepričakovanemu vedenju zaradi pokvarjenih sprememb v novejših različicah.

Preverjanje pristnosti ponudnika

Uporabimo lahko varne mehanizme za preverjanje pristnosti, kot so ključi API in žetoni za dostop, da preverimo pristnost in pooblastimo Terraform za interakcijo z ustrezno platformo ali storitvijo v oblaku.

Dokumentacija ponudnika

Ponudniki imajo pogosto posebne konfiguracijske možnosti, funkcije in omejitve. Razumevanje te vadnice nam pomaga učinkovito uporabljati ponudnika in se izogniti pogostim pastem.

Posodobitve ponudnika

Ponudniki lahko izdajo popravke napak, izboljšave zmogljivosti in nove funkcije. Če smo na tekočem, lahko izkoristimo najnovejše izboljšave in ohranimo združljivost z ekosistemom ponudnika.

Podpora skupnosti

Za reševanje vsakodnevnih izzivov, s katerimi se srečujemo pri uporabi ponudnikov, lahko uporabimo spletne forume, diskusijske deske in kanale skupnosti.

Obravnava napak in odpravljanje težav

Dobro je, da se seznanimo s ponudnikovimi sporočili o napakah, dnevniki in tehnikami odpravljanja napak, da nam bodo pomagali pri diagnosticiranju in učinkovitejšem reševanju težav.

Zaključek

Na kratko smo predstavili ponudnike Terraform. Razpravljali smo o tem, kako jih uporabiti in konfigurirati za interakcijo z različnimi platformami in storitvami v oblaku ter o tem, kako uporabiti več ponudnikov za upravljanje virov v različnih platformah in storitvah v oblaku prek enostavno razumljivih primerov.