Terraform

  • Authentifizierung
    Zugangsschlüssel und privater Schlüssel
  • Ausführungspläne
    Übersicht der Infrastrukturmanipulation
  • Ressourcen-Graph
    Erhalten Sie Einblicke in Ihre Abhängigkeiten
  • Automatisierung von Änderungen
    Automatisieren Sie komplexe Changesets
  • Offene Quelle
    Gehostet auf Github
  • Standards
    S3-konform
  • Versionierung der Infrastruktur
    Beitragen, überprüfen oder zurücksetzen
  • Syntax
    HashiCorp Configuration Language (HCL)
Bereitstellung der Pipeline
Konsistenz der Umgebung
Änderungen nachverfolgen
Verfügbare Regionen
  • Paris
  • Amsterdam
  • Infrastruktur als Code
  • Automatisierung der Bereitstellung
  • Validiert durch HashiCorp
Kostenloses Tool

Verfügbare Ressourcen

  • Konto Ressourcen
  • Virtuelle Instanzen
  • Bare Metal Server
  • Object Storage
  • Block Storage Volumen
  • Kubernetes-Cluster
  • Load Balancer
  • Container Registries

Automatisieren Sie die Bereitstellung Ihrer Infrastruktur mit Terraform

Verwalten Sie Ihre Infrastruktur präzise mit dem Terraform Provider Plugin von Scaleway

Authentifizierung

Die Scaleway-Authentifizierung basiert auf einem Zugangsschlüssel und einem geheimen Schlüssel. Um neue Schlüsselpaare zu erstellen, navigieren Sie zum Abschnitt „API Tokens“ unter der Registerkarte „Zugangsdaten“ in Ihrer Scaleway-Console . Scaleway bietet 3 Möglichkeiten, Zugangsdaten bereitzustellen: Statische Zugangsdaten, Umgebungsvariablen und gemeinsame Konfigurationsdatei.

Ausführungspläne

Terraform hat eine „Planungsphase„, in der ein Ausführungsplan erstellt wird. Dieser Ausführungsplan zeigt, was Terraform tun wird, wenn Sie den „apply“-Befehl aufrufen. Dieser Schritt kann Überraschungen vermeiden, wenn Terraform die Infrastruktur manipuliert.

Ressourcen-Graph

Terraform baut einen Graphen aller Ihrer Ressourcen auf und parallelisiert die Erstellung und Änderung aller nicht abhängigen Ressourcen. Als Ergebnis baut Terraform die Infrastruktur so effizient wie möglich auf, so dass Sie einen Einblick in die Abhängigkeiten in Ihrer Infrastruktur erhalten können.

Automatisierung von Änderungen

Komplexe Changesets können mit minimaler menschlicher Interaktion auf Ihre Infrastruktur angewendet werden. Mit dem obigen Ausführungsplan und dem Ressourcendiagramm wissen Sie genau, was Terraform ändern wird und in welcher Reihenfolge, wodurch viele mögliche menschliche Fehler vermieden werden.

Offene Quelle

Da Terraform ein Open-Source-Projekt ist, ist auch das Plugin des Scaleway Terraform Providers Open Source, wird auf Github gehostet und sowohl von unseren DevOps als auch von der Community gepflegt. Dieses Plugin ist in Go geschrieben – zögern Sie nicht, zu diesem Plugin beizutragen oder die Entwicklung einer neuen Funktion anzufragen. Um mehr über unsere Terraform Roadmap zu erfahren, sehen Sie sich unsere öffentliche Roadmap auf GitHub an.

Kompatibilität mit Standards

Scaleway Object Storage kann zur Speicherung Ihres Terraform-Status verwendet werden. Konfigurieren Sie dazu Ihr Backend als S3-Backend. Beachten Sie, dass noch keine Locking-Mechanismen unterstützt werden, wenn Sie Ihre tfstate-Datei mit einem AWS S3-kompatiblen Bucket speichern. Wenn Sie einen Locking-Mechanismus benötigen, können Sie auch Scaleway Managed Database verwenden.

Versionierung der Infrastruktur

Ihre Infrastruktur ist nun explizit als Konfigurationsdatei definiert und Sie können, wie bei jedem anderen Stück Code auch, Ihr Terraform-Repository versionieren. Das Hinzufügen einer Strategie zur Versionierung wird Ihren Prozess zur Verwaltung der Infrastruktur verändern. In der Tat wird jeder Beteiligte in der Lage sein, Ihren Code zu übertragen und zu überprüfen. Ein weiterer großer Vorteil der Versionierung der Infrastruktur ist die Möglichkeit, im Falle eines Fehlers zu einer früheren Version zurückzukehren.

Syntax

HCL (HashiCorp Configuration Language) ist eine Konfigurationssprache, die von HashiCorp entwickelt wurde. Das Ziel von HCL ist es, eine strukturierte Konfigurationssprache zu erstellen, die sowohl menschen- als auch maschinenfreundlich ist und mit Befehlszeilen-Tools verwendet werden kann, aber speziell auf DevOps-Tools, Server usw. ausgerichtet ist.

Grundlegende Terraform Befehle

Verwalten Sie Ihre Infrastruktur, ohne Ihr Terminal zu verlassen

$

Die Kraft von „Infrastruktur als Code“

Automatisieren Sie Ihre Bereitstellungspipeline

Eine CI/CD-Pipeline wird oft durch eine Änderung im Code ausgelöst (wie ein Post-Commit-Hook in Git) und kann dabei helfen, die Änderung zusammenzuführen, indem sie Schritte zum Testen, Genehmigen und Bereitstellen bietet. Beachten Sie, dass Terraform eher als Orchestrierungstool denn als Automatisierungstool angesehen wird. Dennoch ist es durchaus möglich, Terraform in einen globaleren Arbeitsablauf zu integrieren, bei dem Terraform die Infrastruktur einrichtet und andere ergänzende Tools wie Chef, Puppet oder Ansible dann die Anwendungen konfigurieren, die auf der neuen / aktualisierten Infrastruktur laufen.

Konsistenz über Umgebungen hinweg

Wenn Sie Ihre gesamte Infrastruktur als Terraform Module oder Templates definieren, ist es einfach, die gleichen Templates mit leicht unterschiedlichen Variablen wiederzuverwenden. Dies ist ideal für eine richtige DevOps-Umgebung, die Umgebungskonsistenz in der Entwicklung/Stage/Produktion verlangt.
Zusätzlich kann bei der Verwendung von Infrastruktur als Coding Tools wie Terraform der Code automatisch als klare Beschreibung des gewünschten Zustands der Infrastruktur dienen. Dadurch wird es einfacher, neue Entwickler in die Projekte einzubinden.

Verfolgen Sie alle Änderungen

Wenn die Versionierung durchgesetzt wird, wird das Repository, das den Code enthält, zu einer Single Source of Truth.
Diesen einzigen Kontrollpunkt über die Infrastruktur zu haben, hilft bei der Introspektion und der Entdeckung, wie die Infrastruktur aufgebaut ist. Entwicklungs- und Betriebsteams verwenden das gleiche Quellcode-Repository. Folglich können beide Teams Änderungen überprüfen und anwenden. Dies senkt das Risiko von Missverständnissen zwischen den Teams, da sie alle den gleichen Kontext teilen und die gleichen Dateien sehen.

Vertiefen Sie Ihr Wissen über „Infrastruktur als Code“ mit unseren Blog-Artikeln

Sie haben ein Projekt? Kontaktieren Sie uns:

Entdecken Sie unsere mit Terraform verfügbaren Compute-Ressourcen

Häufig gestellte Fragen

Was ist Terraform?

Terraform ist ein Open-Source Software-Tool für Infrastruktur als Code, das von HashiCorp erstellt wurde. Es wurde entwickelt, um Infrastrukturen sicher und effizient zu erstellen, zu ändern und zu versionieren. Terraform kann bestehende und beliebte Service-Provider wie Scaleway, aber auch viele andere wie AWS, AZURE, GCP, OpenStack oder sogar eigene Inhouse-Lösungen verwalten.

Wie funktioniert Terraform?

Terraform generiert einen Ausführungsplan, der genau beschreibt, was das Tool tun wird, um den gewünschten Zustand zu erreichen. Terraform führt dann diesen Plan aus, um die beschriebene Infrastruktur aufzubauen. Wenn sich die Konfiguration ändert, ist Terraform in der Lage, festzustellen, was sich geändert hat und inkrementelle Ausführungspläne zur Anwendung zu erstellen.

Kann ich mit Terraform Multi-Cloud-Infrastrukturen bereitstellen?

Ja, Terraform unterstützt Multi-Cloud-Konfiguration. Damit können Sie Infrastrukturen und Ressourcen von mehreren Cloud-Anbietern mit einem einzigartigen Tool für die effiziente Bereitstellung, Änderung und Versionierung verwalten.

Was passiert, wenn ich Änderungen an einer von Terraform verwalteten Infrastruktur von außerhalb von Terraform vornehme?

Terraform ist dafür ausgelegt, Ihre Infrastruktur zu verwalten. Wenn Sie manuelle Änderungen daran vornehmen, werden diese bei der nächsten Anwendung der Terraform-Konfiguration überschrieben. Um dieses Verhalten zu vermeiden, fügen Sie der Ressource in der Konfigurationsdatei den Parameter „ignore_changes“ hinzu.

Kann ich meine „tfstate“-Datei in der Cloud speichern?

Ja, Sie können Ihre Terraform-Statusdatei auf Scaleway Object Storage speichern, indem Sie das S3 Backend benutzen

Dieses Produkt ist Open Source

Sie haben ein Projekt? Kontaktieren Sie uns: