Fornitori di terraforma

Fornitori Di Terraforma



Uno degli strumenti Infrastructure as a Code popolari e open source è Terraform. Consente agli sviluppatori di definire e gestire la tua infrastruttura in modo dichiarativo. Consente loro di creare, gestire e modificare le risorse dell'infrastruttura utilizzando una sintassi semplice e coerente, indipendentemente dalla piattaforma cloud sottostante o dal fornitore di servizi.

Questo articolo illustra come utilizzare e configurare i diversi provider per interagire con varie piattaforme e servizi cloud.

Introduzione ai provider Terraform

I fornitori di Terraform sono plug-in che ci consentono di interagire con diverse piattaforme e servizi cloud utilizzando Terraform. Questi provider sono responsabili della traduzione della configurazione Terraform in chiamate API necessarie per gestire le risorse su una specifica piattaforma o servizio cloud.







Tipi di provider in Terraform

Nel Registro terraforma , possiamo vedere tre tipi di fornitori:



Fornitori ufficiali

I fornitori ufficiali sono mantenuti dalla società HashiCorp proprietaria di Terraform. Questi fornitori sono la migliore opzione disponibile se abbiamo bisogno di fornitori ben documentati e aggiornati.



I provider AWS, Microsoft Azure e Google Cloud Platform possono essere esempi di provider ufficiali in Terraform.





Fornitori partner

Le organizzazioni di terze parti mantengono questi fornitori e hanno collaborato con HashiCorp per fornire un supporto ufficiale per i loro servizi.

I provider GitLab, MongoDB e CloudFlare sono alcuni provider partner disponibili per gli utenti.



Fornitori di comunità

I provider della community vengono in genere creati da individui o organizzazioni della community Terraform che desiderano gestire le risorse su una piattaforma o un servizio cloud non supportato da un provider ufficiale o partner.

Alcuni esempi di fornitori di comunità sono mostrati nell'immagine seguente:

Come utilizzare un provider Terraform

Per utilizzare un provider Terraform, dobbiamo includere un blocco provider nel nostro file di configurazione che specifichi il provider che vogliamo utilizzare e tutti i parametri di configurazione richiesti come le credenziali o la regione.

Una volta configurato il provider, possiamo utilizzare le risorse e le origini dati fornite dal provider nella nostra configurazione Terraform per gestire le risorse sulla piattaforma o sul servizio cloud.

Creiamo un semplice file di configurazione Terraform che crei un'istanza EC2 nella piattaforma cloud AWS.

fornitore 'aws' {

versione = '~> 3.0'

regione = 'noi-est-2'

}

risorsa 'istanza_aws' 'mioEC2' {

quale = 'ami-0a561b65214a47cac'

tipo_istanza = 't3. piccolo'

tag = {

Nome = 'nuova istanza'

}

}

Innanzitutto, definiamo il blocco provider, specificando il provider AWS e la regione in cui vengono create le risorse. Quindi, definiamo il nostro blocco di risorse come composto da aws_instance come tipo di risorsa, 'myEC2' come nome della risorsa e 'ami', 'instance_type' e 'tags' come attributi. Il tipo di risorsa può essere suddiviso in due parti: Provider e Resource. In questo caso, 'aws' è il provider e 'instance' è la risorsa. Inoltre, se qualcuno deve eseguire il provisioning di dieci istanze EC2, l'attributo 'count' può essere utilizzato con ten come valore.

Ora possiamo eseguire il flusso Terraform che include l'esecuzione dei comandi terraform init, terraform plan e terraform apply per creare la risorsa che abbiamo definito.

Utilizzando il provider Terraform AWS, possiamo accedere alla piattaforma cloud AWS e interagire con i suoi servizi in modo efficiente senza utilizzare la Console di gestione AWS.

Utilizzo di più provider in Terraform

Anziché utilizzare un singolo provider, Terraform ci consente di utilizzare più provider all'interno dello stesso file di configurazione Terraform per interagire con vari tipi di servizi e piattaforme cloud.

Per tua comprensione, facciamo un esempio in cui distribuiamo un motore di calcolo in Google Cloud Platform, un repository in GitHub e un bucket S3 nella piattaforma cloud AWS.

fornitore 'Google' {

progetto = 'primo progetto'

regione = 'noi-ovest1'

}

fornitore 'gihub' {

gettone = 'IL TUO_GITHUB_TOKEN'

}

fornitore 'aws' {

versione = '~> 3.0'

regione = 'noi-ovest-2'

}

risorsa 'istanza_google_compute' 'istanza gcp' {

nome = 'nuova istanza'

tipo_macchina = 'n1-standard-1'

zona = 'noi-ovest1-a'

disco di avvio {

initialize_params {

immagine = 'debian-cloud/debian-10'

}

}

}

risorsa 'github_repository' 'gitRepo' {

nome = 'nuovo-repo'

descrizione = 'Questo è il mio nuovo archivio'

}

risorsa 'aws_s3_bucket' 'awsBucket' {

secchio = 'nuovo secchio'

acl = 'privato'

}

Come primo passo, definiamo i nostri blocchi di provider per specificare i provider (Google, GitHub e AWS) e le informazioni necessarie come regione, nome del progetto, ecc. Quindi, dichiariamo le nostre risorse utilizzando tre blocchi di risorse: 'gcpInstance', ' gitRepo' e 'awsBucket'.

Innanzitutto, creiamo un motore di calcolo in Google Cloud Platform con 'new-instance' come nome, 'n1-standard-1' come tipo di macchina e 'us-west1-a' come zona di disponibilità. Utilizza Debian come sistema operativo host. Quindi, creiamo un repository GitHub denominato 'new-repo' e una descrizione adeguata. Infine, viene creato un bucket S3 con 'new-bucket' come nome e 'private' come valore ACL (Access Control List).

Con questi tre fornitori Terraform, possiamo facilmente interagire con le piattaforme cloud e i loro servizi.

Best practice per lavorare con i provider Terraform

Controllo delle versioni del provider

Dovremmo specificare la versione del provider poiché aiuta a garantire la coerenza ed evita comportamenti imprevisti dovuti a modifiche sostanziali nelle versioni più recenti.

Autenticazione del fornitore

Possiamo utilizzare i meccanismi di autenticazione sicura come le chiavi API e i token di accesso per autenticare e autorizzare Terraform a interagire con la rispettiva piattaforma o servizio cloud.

Documentazione del fornitore

I provider hanno spesso opzioni di configurazione, funzionalità e limitazioni specifiche. La comprensione di questo tutorial ci aiuta a utilizzare il provider in modo efficace ed evitare le insidie ​​comuni.

Aggiornamenti del fornitore

I provider possono rilasciare correzioni di bug, miglioramenti delle prestazioni e nuove funzionalità. Rimanere aggiornati ci consente di sfruttare gli ultimi miglioramenti e mantenere la compatibilità con l'ecosistema del provider.

Supporto comunitario

Possiamo utilizzare i forum online, i forum di discussione e i canali della community per risolvere le sfide quotidiane che si incontrano durante l'utilizzo dei provider.

Gestione degli errori e risoluzione dei problemi

È buona norma familiarizzare con i messaggi di errore, i registri e le tecniche di debug del provider, in modo da aiutarci a diagnosticare e risolvere i problemi in modo più efficiente.

Conclusione

Abbiamo fatto una breve introduzione ai fornitori di Terraform. Abbiamo discusso su come utilizzarli e configurarli per interagire con varie piattaforme e servizi cloud e su come utilizzare più provider per gestire le risorse su diverse piattaforme e servizi cloud attraverso esempi di facile comprensione.