Furnizori Terraform

Furnizori Terraform



Unul dintre instrumentele populare și open-source de Infrastructură ca cod este Terraform. Permite dezvoltatorilor să vă definească și să vă gestioneze infrastructura în mod declarativ. Le permite să creeze, să gestioneze și să modifice resursele infrastructurii folosind o sintaxă simplă și consecventă, indiferent de platforma cloud sau de furnizorul de servicii.

Acest articol discută cum să utilizați și să configurați diferiții furnizori pentru a interacționa cu diverse platforme și servicii cloud.

Introducere în furnizorii Terraform

Furnizorii Terraform sunt plugin-uri care ne permit să interacționăm cu diferite platforme și servicii cloud folosind Terraform. Acești furnizori sunt responsabili pentru traducerea configurației Terraform în apeluri API, care sunt necesare pentru a gestiona resursele pe o anumită platformă sau serviciu cloud.







Tipuri de furnizori în Terraform

În Registrul Terraform , putem vedea trei tipuri de furnizori:



Furnizori oficiali

Furnizorii oficiali sunt întreținuți de compania HashiCorp care deține Terraform. Acești furnizori sunt cea mai bună opțiune disponibilă dacă avem nevoie de furnizori bine documentați și actualizați.



Furnizorii AWS, Microsoft Azure și Google Cloud Platform pot fi exemple de furnizori oficiali în Terraform.





Furnizori parteneri

Organizațiile terțe mențin acești furnizori și au colaborat cu HashiCorp pentru a oferi un suport oficial pentru serviciile lor.

Furnizorii GitLab, MongoDB și CloudFlare sunt furnizori parteneri care sunt disponibili pentru utilizatori.



Furnizorii comunitari

Furnizorii comunitari sunt de obicei creați de persoane sau organizații ale comunității Terraform care doresc să gestioneze resursele pe o platformă sau serviciu cloud care nu este susținut de un furnizor oficial sau partener.

Câteva exemple de furnizori comunitari sunt prezentate în următoarea imagine:

Cum să utilizați un furnizor Terraform

Pentru a folosi un furnizor Terraform, trebuie să includem un bloc de furnizor în fișierul nostru de configurare care specifică furnizorul pe care dorim să-l folosim și orice parametri de configurare necesari, cum ar fi acreditările sau regiunea.

Odată ce furnizorul este configurat, putem folosi resursele și sursele de date care sunt furnizate de furnizor în configurația noastră Terraform pentru a gestiona resursele de pe platforma sau serviciul cloud.

Să creăm un fișier de configurare Terraform simplu care creează o instanță EC2 în platforma cloud AWS.

furnizor 'aws' {

versiune = „~> 3.0”

regiune = 'noi-est-2'

}

resursă 'aws_instance' „myEC2” {

care = „ami-0a561b65214a47cac”

tip_instanță = 't3. mic'

etichete = {

Nume = 'instanță nouă'

}

}

În primul rând, definim blocul furnizorului, specificând furnizorul AWS și regiunea în care sunt create resursele. Apoi, definim blocul nostru de resurse ca fiind format din aws_instance ca tip de resursă, „myEC2” ca numele resursei și „ami”, „instance_type” și „tags” ca atribute. Tipul de resursă poate fi împărțit în două părți: Furnizor și Resurse. În acest caz, „aws” este furnizorul, iar „instanță” este resursa. De asemenea, dacă cineva trebuie să furnizeze zece instanțe EC2, atributul „count” poate fi folosit cu zece ca valoare.

Acum, putem efectua fluxul Terraform care include executarea comenzilor terraform init, terraform plan și terraform apply pentru a crea resursa pe care am definit-o.

Folosind furnizorul Terraform AWS, putem accesa platforma cloud AWS și interacționa eficient cu serviciile acesteia, fără a folosi Consola de management AWS.

Utilizarea furnizorilor multipli în Terraform

În loc să folosim un singur furnizor, Terraform ne permite să folosim mai mulți furnizori în cadrul aceluiași fișier de configurare Terraform pentru a interacționa cu diferite tipuri de servicii și platforme cloud.

Pentru înțelegerea dvs., să avem un exemplu în care implementăm un motor de calcul în Google Cloud Platform, un depozit în GitHub și un bucket S3 în platforma cloud AWS.

furnizor 'Google' {

proiect = 'primul proiect'

regiune = 'noi-vest1'

}

furnizor 'github' {

token = „YOUR_GITHUB_TOKEN”

}

furnizor 'aws' {

versiune = „~> 3.0”

regiune = 'noi-vest-2'

}

resursă „google_compute_instance” „gcpInstance” {

nume = 'instanță nouă'

tip_mașină = „n1-standard-1”

zona = 'us-west1-a'

boot_disk {

initialize_params {

imagine = „debian-cloud/debian-10”

}

}

}

resursă „github_repository” „gitRepo” {

nume = 'nou-repo'

descriere = „Acesta este noul meu depozit”

}

resursă „aws_s3_bucket” 'awsBucket' {

găleată = 'galeata noua'

acl = 'privat'

}

Ca prim pas, definim blocurile furnizorilor noștri pentru a specifica furnizorii (Google, GitHub și AWS) și informațiile necesare precum regiunea, numele proiectului etc. Apoi, ne declarăm resursele folosind trei blocuri de resurse: „gcpInstance”, „ gitRepo” și „awsBucket”.

Mai întâi, creăm un motor de calcul în Google Cloud Platform cu „instanță nouă” ca nume, „n1-standard-1” ca tip de mașină și „us-west1-a” ca zonă de disponibilitate. Utilizează Debian ca sistem de operare gazdă. Apoi, creăm un depozit GitHub numit „new-repo” și o descriere adecvată. În cele din urmă, o găleată S3 este creată cu „new-bucket” ca nume și „privat” ca valoare ACL (Access Control List).

Cu cei trei furnizori Terraform, putem interacționa cu ușurință cu platformele cloud și serviciile acestora.

Cele mai bune practici pentru lucrul cu furnizorii Terraform

Versiune furnizor

Ar trebui să specificăm versiunea furnizorului, deoarece ajută la asigurarea consecvenței și evită comportamentul neașteptat din cauza modificărilor rupturi ale versiunilor mai noi.

Autentificarea furnizorului

Putem folosi mecanismele de autentificare sigure, cum ar fi cheile API și token-urile de acces pentru a autentifica și a autoriza Terraform să interacționeze cu platforma sau serviciul cloud respectiv.

Documentația furnizorului

Furnizorii au adesea opțiuni de configurare, caracteristici și limitări specifice. Înțelegerea acestui tutorial ne ajută să folosim furnizorul în mod eficient și să evităm capcanele comune.

Actualizări ale furnizorului

Furnizorii pot lansa remedieri de erori, îmbunătățiri de performanță și funcții noi. Rămâneți la curent ne permite să profităm de cele mai recente îmbunătățiri și să menținem compatibilitatea cu ecosistemul furnizorului.

Sprijin comunitar

Putem folosi forumurile online, forumurile de discuții și canalele comunității pentru a rezolva provocările de zi cu zi care sunt întâlnite în timpul utilizării furnizorilor.

Tratarea erorilor și depanare

Este o bună practică să ne familiarizăm cu mesajele de eroare, jurnalele și tehnicile de depanare ale furnizorului, astfel încât să ne ajute să diagnosticăm și să rezolvăm problemele mai eficient.

Concluzie

Am făcut o scurtă prezentare a furnizorilor Terraform. Am discutat despre cum să le folosim și să le configuram pentru a interacționa cu diverse platforme și servicii cloud și cum să folosim mai mulți furnizori pentru a gestiona resursele pe diferite platforme și servicii cloud prin exemple ușor de înțeles.