Wofür brauchen Sie Terraform?

Wir haben unseren eigenen Terraform-Anbieter gestartet.

Jetzt ist es noch einfacher, die Gcore Cloud-Infrastruktur zu verwalten.

Mit diesem Tool können Sie in unserer Cloud unter Verwendung der „Infrastructure as Code“-Methodik Ressourcen erstellen, ändern und löschen.

Wir werden im Folgenden erläutern, was Terraform ist und wie man es zusammen mit Gcore verwendet.

Was ist Terraform?

Terraform ist ein Open-Source-Tool, das von HashiCorp im Jahr 2014 entwickelt wurde. Der „Infrastructure as Code“ (IaC)-Ansatz ermöglicht es, die Cloud-Infrastruktur durch ein Set aus Konfigurationsdateien zu definieren und so die Regeln festzulegen, wie alles konfiguriert werden soll.

Wofür brauchen Sie Terraform?

Sie schreiben den Code. Terraform liest diesen und bringt durch API-Aufrufe alles in den beschriebenen Zustand.

Vorteile von Terraform:

  • Es ist nicht mehr nötig, Ressourcen manuell im Bedienfeld des Anbieters zu erstellen, zu ändern und zu löschen.
  • Der Code verwaltet die Cloud-Netzwerke und -Ressourcen und ist gleichzeitig die Dokumentation.

Terraform verwendet die Programmiersprache „HashiCorp Configuration Language“. Sie ist relativ einfach und logisch. Sie können stattdessen aber auch JSON verwenden, wenn Sie möchten.

Drei Vorteile von Terraform

  1. Vielseitigkeit. Dieses Tool wird von vielen verschiedenen Cloud-Anbietern unterstützt. Deshalb können Sie mit Terraform die Infrastruktur mehrerer Clouds gleichzeitig verwalten. Darüber hinaus arbeitet Terraform mit Docker, Kubernetes, Chef und anderen Systemen. Mit Terraform können Sie jede Anwendung in jeder Sprache in Ihre Architektur einbetten.
  1. Sicherheit. Ohne Terraform muss jede Softwareanwendung am gleichen Ort aktualisiert werden, an dem sie auch installiert ist. So sammelt jeder Server eine eigene, einzigartige Software-Update-Historie. Geringe Unterschiede in den Programmen der verschiedenen Systeme führen zur „Konfigurationsabweichung“, die Schwachstellen für Hackerangriffe schafft.

Terraform basiert auf einem Konzept der unveränderlichen Infrastruktur. Das bedeutet, dass jede Aktualisierung des Codes zu einer neuen Konfiguration führt. So kann die gesamte Software einfach und schnell über das gesamte System hinweg gleichzeitig aktualisiert werden.

  1. Benutzerfreundlichkeit und Klarheit. Das unveränderliche Infrastrukturkonzept macht auch Rollbacks sehr viel einfacher. Mit Terraform müssen Sie nur noch eine Konfiguration aus einer Liste auswählen.

Zudem ist Terraform deklarativer Code, um die Infrastruktur zu verwalten, müssen Sie also nur angeben, welche Ausprägung sie annehmen soll, und das Tool ermittelt die besten Wege, um das System in diesen Zustand zu bringen.

Ein weiterer Vorteil von Terraform ist, dass es die Architektur über die API aufbaut. Keine Agent-Software erforderlich, kein separater Server für die Konfigurationsverwaltung und keine unnötigen Sicherheitsüberprüfungen. Die Kommunikation mit dem System ist direkt, sodass Sie fast freie Hand bei der Orchestrierung haben.

Wie arbeitet man mit Terraform in der Gcore Cloud?

Mit unserem Terraform-Anbieter können Sie Ihre gesamte Cloud-Infrastruktur verwalten:

  • virtuelle Maschinen
  • Bare-Metal-Server
  • Laufwerke
  • Firewallgruppen
  • Load Balancer
  • Netzwerke
  • IP-Adressen mit Floating
  • Reservierte IP-Adressen

Werfen wir einen Blick auf die Grundeinstellungen, damit Sie mit Terraform loslegen können.

Wie installiert und konfiguriert man Terraform?

Um Terraform zu installieren, laden Sie das Distributionspaket für Ihr Betriebssystem herunter, entpacken Sie die Binärdatei aus dem Archiv und fügen Sie diese dem Pfad hinzu. Auf der Webseite von HashiCorp finden Sie detaillierte Installationsanweisungen für die einzelnen Betriebssysteme.

Die Arbeit mit Terraform beginnt mit der Erstellung von Konfigurationsdateien mit der Endung .tf. Hier beschreiben Sie Ihre Infrastruktur mit Code.

Um Terraform in der Gcore Cloud-Architektur zu verwenden, geben Sie den Anbieter in der Konfigurationsdatei an und konfigurieren seine Einstellungen:

terraform {
  required_version = ">= 0.13.0"
  required_providers {
    gcore = {
      source = "local.gcore.com/repo/gcore"
      version = "~>0.0.15"
    }
  }
}
provider gcore {
  user_name = "test"
  password = "test"
  gcore_platform = "https://api.gcore.com/id"
  gcore_api = "https://api.gcore.com/cloud"
}

Danach führen Sie den Befehl terraform init aus. Dadurch wird der Provider initialisiert und ein Set von Modulen heruntergeladen, die für die Arbeit mit unseren Ressourcen benötigt werden.

Danach können Sie Ressourcen erstellen und verschiedene Befehle ausführen.

Wie Sie Terraform verwenden

Nach der Konfiguration des Providers werden die Ressourcenkonfigurationen in der Datei eingestellt.

So wird zum Beispiel ein Cloud-Netzwerk erstellt:

resource "gcore_network" "network" {
  name = "network_example"
  mtu = 1450
  type = "vxlan"
  region_id = 1
  project_id = 1
}

Nützliche Befehle und Tools

Sobald Sie Ihre Infrastruktur eingerichtet haben, ist es Zeit, den Befehl terraform plan zu verwenden. Diese Funktion wird hauptsächlich zum Testen benötigt. Sie zeigt, welche Änderungen Terraform demnächst vornehmen wird. Wenn Sie beim Erstellen der Konfiguration Fehler machen, wird Terraform Sie darauf hinweisen.

Korrigieren Sie eventuelle Fehler. Nun können Sie zum nächsten Schritt übergehen: terraform apply. Dieser Befehl nimmt Änderungen an der bestehenden Infrastruktur vor. Nachdem Sie diesen eingegeben haben, werden Sie von Terraform aufgefordert, die Handlung zu bestätigen. Geben Sie „yes“ ein.

Mit dem terraform import-Befehl können Sie die manuell im Bedienfeld erstellte Ressourcenkonfiguration in den Code übertragen.

Der Befehl terraform refresh wird verwendet, wenn Sie eine fertige Ressourcenkonfiguration in Ihrem Code haben, aber manuell Änderungen im Bedienfeld vorgenommen haben und diese Änderungen nun in den Konfigurationsdateien berücksichtigt werden sollen. Terraform nutzt die bestehende Architektur als Referenz und korrigiert den Code.

Abgesehen davon bietet der Terraform-Syntax viele nützliche Werkzeuge. module bieten z.B. die Möglichkeit, verschiedene Sets an Ressourcen zu logischen Blöcken zusammenzufassen und diese Blöcke später wieder zu verwenden. Anhand von expressions können Sie verschiedene Daten im Code suchen und abrufen: z.B. ein Element aus einer Liste nehmen oder einen Wert anhand einer Bedingung finden.

Weitere Informationen zur Arbeit mit unserem Terraform-Anbieter finden Sie auf GitHub.

Sie sind noch nicht mit der Gcore Cloud verbunden? Vereinfachen Sie jetzt Ihr Infrastrukturmanagement mit unserem Cloud- und Terraform-Anbieter, oder beginnen Sie mit einer kostenlosen Beratung.

Mehr über Gcore Cloud

Erhalten sie eine kostenlose Beratung

Melden Sie sich an, um die neuesten Updates, Nachrichten und Funktionen zu erhalten.

Wir respektieren Ihren Posteingang und bemühen uns, Spam zu vermeiden