En aquest article s'explica com utilitzar i configurar els diferents proveïdors per interactuar amb diverses plataformes i serveis al núvol.
Introducció als proveïdors de Terraform
Els proveïdors de Terraform són connectors que ens permeten interactuar amb diferents plataformes i serveis al núvol mitjançant Terraform. Aquests proveïdors són els responsables de traduir la configuració de Terraform en trucades d'API, que són necessàries per gestionar els recursos en una plataforma o servei al núvol específic.
Tipus de proveïdors a Terraform
En el Registre Terraform , podem veure tres tipus de proveïdors:
Proveïdors oficials
Els proveïdors oficials els manté l'empresa HashiCorp propietària de Terraform. Aquests proveïdors són la millor opció disponible si necessitem els proveïdors ben documentats i actualitzats.
Els proveïdors d'AWS, Microsoft Azure i Google Cloud Platform poden ser exemples de proveïdors oficials a Terraform.
Proveïdors associats
Les organitzacions de tercers mantenen aquests proveïdors i s'han associat amb HashiCorp per oferir un suport oficial per als seus serveis.
Els proveïdors de GitLab, MongoDB i CloudFlare són alguns proveïdors associats que estan disponibles per als usuaris.
Proveïdors comunitaris
Els proveïdors comunitaris solen ser creats per persones o organitzacions de la comunitat Terraform que volen gestionar els recursos en una plataforma o servei al núvol que no és compatible amb un proveïdor oficial o soci.
A la imatge següent es mostren alguns exemples de proveïdors comunitaris:
Com utilitzar un proveïdor de Terraform
Per utilitzar un proveïdor de Terraform, hem d'incloure un bloc de proveïdor al nostre fitxer de configuració que especifiqui el proveïdor que volem utilitzar i qualsevol paràmetre de configuració necessari, com ara les credencials o la regió.
Un cop configurat el proveïdor, podem utilitzar els recursos i les fonts de dades que ens proporciona el proveïdor a la nostra configuració de Terraform per gestionar els recursos a la plataforma o servei al núvol.
Creem un fitxer de configuració senzill de Terraform que creï una instància EC2 a la plataforma de núvol AWS.
proveïdor 'aws' {versió = '~> 3.0'
regió = 'us-est-2'
}
recurs 'aws_instance' 'el meuEC2' {
quin = 'ami-0a561b65214a47cac'
instància_tipus = 't3. petit'
etiquetes = {
Nom = 'nova instància'
}
}
En primer lloc, definim el bloc del proveïdor, especificant el proveïdor AWS i la regió on es creen els recursos. Aleshores, definim el nostre bloc de recursos com a format d'aws_instance com a tipus de recurs, 'myEC2' com a nom del recurs i 'ami', 'instance_type' i 'etiquetes' com a atributs. El tipus de recurs es pot dividir en dues parts: Proveïdor i Recurs. En aquest cas, 'aws' és el proveïdor i 'instància' és el recurs. A més, si algú necessita subministrar deu instàncies EC2, l'atribut 'count' es pot utilitzar amb deu com a valor.
Ara, podem realitzar el flux de Terraform que inclou l'execució de les ordres d'inici de terraform, terraform plan i terraform per crear el recurs que hem definit.
Mitjançant el proveïdor Terraform AWS, podem accedir a la plataforma de núvol AWS i interactuar amb els seus serveis de manera eficient sense utilitzar la Consola de gestió d'AWS.
Ús de diversos proveïdors a Terraform
En lloc d'utilitzar un sol proveïdor, Terraform ens permet utilitzar diversos proveïdors dins del mateix fitxer de configuració de Terraform per interactuar amb diversos tipus de serveis i plataformes de núvol.
Per a la vostra comprensió, tinguem un exemple en què despleguem un motor de càlcul a Google Cloud Platform, un dipòsit a GitHub i un bucket S3 a la plataforma de núvol AWS.
proveïdor 'Google' {projecte = 'primer projecte'
regió = 'us-oest1'
}
proveïdor 'github' {
testimoni = 'YOUR_GITHUB_TOKEN'
}
proveïdor 'aws' {
versió = '~> 3.0'
regió = 'us-oest-2'
}
recurs 'google_compute_instance' 'gcpInstance' {
nom = 'nova instància'
tipus_màquina = 'n1-estàndard-1'
zona = 'us-west1-a'
disc_arrencada {
initialize_params {
imatge = 'debian-cloud/debian-10'
}
}
}
recurs 'github_repository' 'gitRepo' {
nom = 'nou repo'
descripció = 'Aquest és el meu nou repositori'
}
recurs 'aws_s3_bucket' 'awsBucket' {
galleda = 'cubeta nova'
acl = 'privat'
}
Com a primer pas, definim els nostres blocs de proveïdors per especificar els proveïdors (Google, GitHub i AWS) i la informació necessària com la regió, el nom del projecte, etc. A continuació, declarem els nostres recursos mitjançant tres blocs de recursos: 'gcpInstance', ' gitRepo' i 'awsBucket'.
Primer, creem un motor de càlcul a Google Cloud Platform amb la 'instància nova' com a nom, 'n1-estàndard-1' com a tipus de màquina i 'us-west1-a' com a zona de disponibilitat. Utilitza Debian com a sistema operatiu amfitrió. A continuació, creem un dipòsit de GitHub anomenat 'new-repo' i una descripció adequada. Finalment, es fa un bucket S3 amb el 'new-bucket' com a nom i 'private' com a valor ACL (Access Control List).
Amb aquests tres proveïdors de Terraform, podem interactuar fàcilment amb les plataformes al núvol i els seus serveis.
Bones pràctiques per treballar amb proveïdors de Terraform
Versions del proveïdor
Hem d'especificar la versió del proveïdor, ja que ajuda a garantir la coherència i evita comportaments inesperats a causa dels canvis de ruptura de les versions més noves.
Autenticació del proveïdor
Podem utilitzar els mecanismes d'autenticació segurs, com ara les claus de l'API i els testimonis d'accés per autenticar i autoritzar Terraform a interactuar amb la plataforma o servei al núvol corresponent.
Documentació del proveïdor
Els proveïdors solen tenir opcions de configuració, funcions i limitacions específiques. Entendre aquest tutorial ens ajuda a utilitzar el proveïdor de manera eficaç i evitar inconvenients habituals.
Actualitzacions del proveïdor
Els proveïdors poden publicar correccions d'errors, millores de rendiment i funcions noves. Mantenir-nos al dia ens permet aprofitar les últimes millores i mantenir la compatibilitat amb l'ecosistema del proveïdor.
Suport comunitari
Podem utilitzar els fòrums en línia, els taulers de discussió i els canals de la comunitat per resoldre els reptes quotidians que es troben en utilitzar els proveïdors.
Tractament d'errors i resolució de problemes
És una bona pràctica familiaritzar-nos amb els missatges d'error, els registres i les tècniques de depuració del proveïdor perquè ens ajudi a diagnosticar i resoldre els problemes de manera més eficient.
Conclusió
Hem fet una breu introducció als proveïdors de Terraform. Hem parlat de com utilitzar-los i configurar-los per interactuar amb diverses plataformes i serveis al núvol i com utilitzar diversos proveïdors per gestionar els recursos en diferents plataformes i serveis al núvol mitjançant exemples fàcils d'entendre.