Terraform-Anbieter

Terraform Anbieter



Eines der beliebtesten und quelloffenen Infrastructure-as-a-Code-Tools ist Terraform. Es ermöglicht den Entwicklern, Ihre Infrastruktur deklarativ zu definieren und zu verwalten. Es ermöglicht ihnen, die Infrastrukturressourcen mithilfe einer einfachen und konsistenten Syntax zu erstellen, zu verwalten und zu ändern, unabhängig von der zugrunde liegenden Cloud-Plattform oder dem zugrunde liegenden Dienstanbieter.

In diesem Artikel wird erläutert, wie Sie die verschiedenen Anbieter für die Interaktion mit verschiedenen Cloud-Plattformen und -Diensten verwenden und konfigurieren.

Einführung in Terraform-Anbieter

Terraform-Anbieter sind Plugins, die es uns ermöglichen, mithilfe von Terraform mit verschiedenen Cloud-Plattformen und -Diensten zu interagieren. Diese Anbieter sind für die Übersetzung der Terraform-Konfiguration in API-Aufrufe verantwortlich, die zur Verwaltung der Ressourcen auf einer bestimmten Cloud-Plattform oder einem bestimmten Cloud-Dienst erforderlich sind.







Arten von Anbietern in Terraform

Im Terraform-Registrierung können wir drei Arten von Anbietern sehen:



Offizielle Anbieter

Offizielle Anbieter werden von der Firma HashiCorp verwaltet, zu der auch Terraform gehört. Diese Anbieter sind die beste verfügbare Option, wenn wir gut dokumentierte und aktuelle Anbieter benötigen.



AWS-, Microsoft Azure- und Google Cloud Platform-Anbieter können Beispiele für offizielle Anbieter in Terraform sein.





Partneranbieter

Diese Anbieter werden von Drittorganisationen betrieben und sind mit HashiCorp eine Partnerschaft eingegangen, um offiziellen Support für deren Dienste bereitzustellen.

GitLab-, MongoDB- und CloudFlare-Anbieter sind einige Partneranbieter, die Benutzern zur Verfügung stehen.



Community-Anbieter

Community-Anbieter werden in der Regel von Einzelpersonen oder Organisationen der Terraform-Community erstellt, die die Ressourcen auf einer Cloud-Plattform oder einem Cloud-Dienst verwalten möchten, der nicht von einem offiziellen Anbieter oder Partneranbieter unterstützt wird.

Einige Beispiele für Community-Anbieter sind in der folgenden Abbildung dargestellt:

So verwenden Sie einen Terraform-Anbieter

Um einen Terraform-Anbieter zu verwenden, müssen wir einen Anbieterblock in unsere Konfigurationsdatei aufnehmen, der den Anbieter angibt, den wir verwenden möchten, sowie alle erforderlichen Konfigurationsparameter wie Anmeldeinformationen oder Region.

Sobald der Anbieter konfiguriert ist, können wir die vom Anbieter in unserer Terraform-Konfiguration bereitgestellten Ressourcen und Datenquellen verwenden, um die Ressourcen auf der Cloud-Plattform oder dem Cloud-Dienst zu verwalten.

Erstellen wir eine einfache Terraform-Konfigurationsdatei, die eine EC2-Instanz in der AWS-Cloud-Plattform erstellt.

Anbieter „aws“ {

Version = „~> 3.0“

Region = „us-east-2“

}

Ressource „aws_instance“ „myEC2“ {

welches = „ami-0a561b65214a47cac“

Instanztyp = „t3. klein“

Tags = {

Name = „Neue-Instanz“

}

}

Zuerst definieren wir den Anbieterblock und geben den AWS-Anbieter und die Region an, in der die Ressourcen erstellt werden. Dann definieren wir unseren Ressourcenblock so, dass er aus aws_instance als Ressourcentyp, „myEC2“ als Ressourcennamen und „ami“, „instance_type“ und „tags“ als Attributen besteht. Der Ressourcentyp kann in zwei Teile unterteilt werden: Anbieter und Ressource. In diesem Fall ist „aws“ der Anbieter und „instance“ die Ressource. Wenn jemand zehn EC2-Instanzen bereitstellen muss, kann außerdem das Attribut „count“ mit zehn als Wert verwendet werden.

Jetzt können wir den Terraform-Ablauf ausführen, der die Ausführung der Befehle „Terraform Init“, „Terraform Plan“ und „Terraform Apply“ umfasst, um die von uns definierte Ressource zu erstellen.

Mit dem Terraform AWS-Anbieter können wir auf die AWS-Cloud-Plattform zugreifen und effizient mit ihren Diensten interagieren, ohne die AWS-Managementkonsole zu verwenden.

Verwendung mehrerer Anbieter in Terraform

Anstatt einen einzelnen Anbieter zu verwenden, können wir mit Terraform mehrere Anbieter innerhalb derselben Terraform-Konfigurationsdatei verwenden, um mit verschiedenen Arten von Diensten und Cloud-Plattformen zu interagieren.

Zum besseren Verständnis sehen wir uns ein Beispiel an, in dem wir eine Compute-Engine in der Google Cloud Platform, ein Repository in GitHub und einen S3-Bucket in der AWS-Cloud-Plattform bereitstellen.

Anbieter 'Google' {

Projekt = „Erstes Projekt“

Region = „us-west1“

}

Anbieter „github“ {

Token = „YOUR_GITHUB_TOKEN“

}

Anbieter „aws“ {

Version = „~> 3.0“

Region = „us-west-2“

}

Ressource „google_compute_instance“ „gcpInstance“ {

Name = „Neue-Instanz“

machine_type = „n1-standard-1“

Zone = „us-west1-a“

Boot-Diskette {

initialize_params {

Bild = „debian-cloud/debian-10“

}

}

}

Ressource „github_repository“ „gitRepo“ {

Name = „neues-repo“

Beschreibung = „Das ist mein neues Repository“

}

Ressource „aws_s3_bucket“ „awsBucket“ {

Eimer = „neuer Eimer“

acl = 'Privatgelände'

}

Im ersten Schritt definieren wir unsere Anbieterblöcke, um die Anbieter (Google, GitHub und AWS) und die erforderlichen Informationen wie Region, Projektname usw. anzugeben. Anschließend deklarieren wir unsere Ressourcen mithilfe von drei Ressourcenblöcken: „gcpInstance“, „ gitRepo“ und „awsBucket“.

Zuerst erstellen wir eine Rechenmaschine in der Google Cloud Platform mit „new-instance“ als Namen, „n1-standard-1“ als Maschinentyp und „us-west1-a“ als Verfügbarkeitszone. Es verwendet Debian als Host-Betriebssystem. Anschließend erstellen wir ein GitHub-Repository mit dem Namen „new-repo“ und einer passenden Beschreibung. Schließlich wird ein S3-Bucket mit „new-bucket“ als Namen und „private“ als ACL-Wert (Access Control List) erstellt.

Mit diesen drei Terraform-Anbietern können wir problemlos mit Cloud-Plattformen und ihren Diensten interagieren.

Best Practices für die Zusammenarbeit mit Terraform-Anbietern

Anbieterversionierung

Wir sollten die Version des Anbieters angeben, da dies zur Gewährleistung der Konsistenz beiträgt und unerwartetes Verhalten aufgrund von Breaking Changes in neueren Versionen vermeidet.

Anbieterauthentifizierung

Wir können die sicheren Authentifizierungsmechanismen wie API-Schlüssel und Zugriffstoken nutzen, um Terraform zu authentifizieren und zu autorisieren, mit der jeweiligen Cloud-Plattform oder dem jeweiligen Cloud-Dienst zu interagieren.

Anbieterdokumentation

Anbieter verfügen häufig über spezifische Konfigurationsoptionen, Funktionen und Einschränkungen. Das Verständnis dieses Tutorials hilft uns, den Anbieter effektiv zu nutzen und häufige Fallstricke zu vermeiden.

Anbieter-Updates

Anbieter können Fehlerbehebungen, Leistungsverbesserungen und neue Funktionen veröffentlichen. Indem wir auf dem neuesten Stand bleiben, können wir von den neuesten Verbesserungen profitieren und die Kompatibilität mit dem Ökosystem des Anbieters aufrechterhalten.

Gemeinschaftliche Unterstützung

Wir können die Online-Foren, Diskussionsforen und Community-Kanäle nutzen, um die alltäglichen Herausforderungen zu lösen, die bei der Nutzung der Anbieter auftreten.

Fehlerbehandlung und Fehlerbehebung

Es empfiehlt sich, sich mit den Fehlermeldungen, Protokollen und Debugging-Techniken des Anbieters vertraut zu machen, damit wir die Probleme effizienter diagnostizieren und lösen können.

Abschluss

Wir haben eine kurze Einführung in die Terraform-Anbieter gegeben. Anhand leicht verständlicher Beispiele haben wir besprochen, wie man sie für die Interaktion mit verschiedenen Cloud-Plattformen und -Diensten verwendet und konfiguriert und wie man mehrere Anbieter nutzt, um die Ressourcen über verschiedene Cloud-Plattformen und -Dienste hinweg zu verwalten.