HashiCorp Terraform ist ein IaC-Tool (Infrastructure as Code), mit dem Sie eine Cloud-Infrastruktur bereitstellen und verwalten können. Terraform bietet Plug-ins, die als Anbieter bezeichnet werden und mit denen Sie mit Cloud-Anbietern und anderen APIs interagieren können. Sie können den Terraform-Provider für Trusted Cloud verwenden, um Trusted Cloud by S3NS -Ressourcen wie Compute Engine bereitzustellen und zu verwalten.
Auf dieser Seite wird die Verwendung von Terraform mit Compute Engine beschrieben. Sie enthält eine Einführung in die Funktionsweise von Terraform und einige Ressourcen, die Ihnen den Einstieg in die Verwendung von Terraform mit Trusted Clouderleichtern. Außerdem finden Sie Links zur Terraform-Referenzdokumentation für Compute Engine, Codebeispiele und Anleitungen zum Bereitstellen von Compute Engine-Ressourcen mit Terraform.
Eine Anleitung für die ersten Schritte mit Terraform für Trusted Cloudfinden Sie unter Terraform installieren und konfigurieren oder im Terraform-Schnellstart für Trusted Cloud .
So funktioniert Terraform
Terraform hat eine deklarative, konfigurationsorientierte Syntax, mit der Sie die Infrastruktur beschreiben können, die Sie in Ihrem Trusted Cloud -Projekt bereitstellen möchten. Nachdem Sie diese Konfiguration in einer oder mehreren Terraform-Konfigurationsdateien erstellt haben, können Sie die Konfiguration mit der Terraform-Befehlszeile auf Ihre Compute Engine-Ressourcen anwenden.
In den folgenden Schritten wird die Funktionsweise von Terraform erläutert:
- Sie beschreiben die Infrastruktur, die Sie bereitstellen möchten, in einer Terraform-Konfigurationsdatei. Sie müssen keinen Code schreiben, der beschreibt, wie die Infrastruktur bereitgestellt wird. Terraform stellt die Infrastruktur für Sie bereit.
- Sie führen den Befehl
terraform plan
aus, der Ihre Konfiguration auswertet und einen Ausführungsplan generiert. Sie können den Plan prüfen und bei Bedarf Änderungen vornehmen. -
Anschließend führen Sie den Befehl
terraform apply
aus, der die folgenden Aktionen ausführt:- Ihre Infrastruktur wird basierend auf Ihrem Ausführungsplan bereitgestellt, indem die entsprechenden Compute Engine APIs im Hintergrund aufgerufen werden.
- Es wird eine Terraform-Zustandsdatei erstellt, eine JSON-Datei, die die Ressourcen in Ihrer Konfigurationsdatei den Ressourcen in der realen Infrastruktur zuordnet. Terraform verwendet diese Datei, um den aktuellen Status Ihrer Infrastruktur zu erfassen und zu bestimmen, wann Ressourcen erstellt, aktualisiert und gelöscht werden müssen.
-
Wenn Sie anschließend
terraform apply
ausführen, verwendet Terraform die Zuordnung in der Zustandsdatei, um die vorhandene Infrastruktur mit dem Code zu vergleichen und bei Bedarf Aktualisierungen vorzunehmen:- Wenn ein Ressourcenobjekt in der Konfigurationsdatei definiert, aber in der Zustandsdatei nicht vorhanden ist, wird es von Terraform erstellt.
- Wenn ein Ressourcenobjekt in der Zustandsdatei vorhanden ist, aber eine andere Konfiguration als die Konfigurationsdatei hat, aktualisiert Terraform die Ressource entsprechend Ihrer Konfigurationsdatei.
- Wenn ein Ressourcenobjekt in der Zustandsdatei mit der Konfigurationsdatei übereinstimmt, lässt Terraform die Ressource unverändert.
Terraform-Ressourcen für Compute Engine
Ressourcen sind die grundlegenden Elemente der Terraform-Sprache. Jeder Ressourcenblock beschreibt ein oder mehrere Infrastrukturobjekte, z. B. virtuelle Netzwerke oder Compute-Instanzen.
In der folgenden Tabelle sind die Terraform-Ressourcen aufgeführt, die für Compute Engine verfügbar sind:
Terraform-basierte Anleitungen für Compute Engine
In der folgenden Tabelle sind alle Terraform-basierten Anleitungen und Tutorials für Compute Engine aufgeführt:
Leitfaden | Details |
---|---|
Compute Engine-Instanz erstellen und starten | Hier wird beschrieben, wie Sie eine VM-Instanz erstellen. |
VM mit lokalen SSD-Laufwerken erstellen | Hier wird beschrieben, wie Sie eine VM mit lokalem SSD-Festplattenspeicher erstellen. |
Laufwerk-Snapshots erstellen | Hier wird beschrieben, wie Sie Standard-Snapshots erstellen, um regelmäßig Daten von Laufwerken zu sichern. |
Laufwerk mit Klonen duplizieren | Hier erfahren Sie, wie Sie zonale Laufwerkklone eines vorhandenen Laufwerks erstellen. |
Regionale Laufwerke erstellen und verwalten | Hier wird beschrieben, wie Sie regionale Laufwerke erstellen und verwalten. |
Spot-VMs erstellen und verwenden | Hier wird beschrieben, wie Sie Spot-VMs erstellen und verwalten. Spot-VMs sind VM-Instanzen, die überschüssige Compute Engine-Kapazität darstellen. Spot-VMs sind im Vergleich zum On-Demand-Preis für Standard-VMs wesentlich günstiger. |
SSH-Schlüssel zu VMs hinzufügen | Beschreibt, wie Sie SSH-Schlüssel zu VM-Instanzen hinzufügen, die OS Login und VMs mit metadatenbasierten SSH-Schlüsseln verwenden. |
Shutdown-Skripts ausführen | Hier wird beschrieben, wie Sie Shutdown-Skripts erstellen und ausführen, die Befehle ausführen, bevor eine VM-Instanz beendet oder neu gestartet wird. |
Reservierung für ein Einzelprojekt erstellen | Hier wird beschrieben, wie Sie eine Reservierung für ein einzelnes Projekt erstellen, die nur von VM-Instanzen im selben Projekt genutzt werden kann. |
Instanzvorlagen erstellen | Hier wird beschrieben, wie Sie Instanzvorlagen erstellen und verwalten. |
Anhand von Zeitplänen skalieren | Hier erfahren Sie, wie Sie Skalierungspläne für eine vorhandene MIG erstellen. Mit dem zeitplanbasierten Autoscaling lässt sich die Verfügbarkeit von Arbeitslasten verbessern, da die Kapazität anhand der erwarteten Last im Voraus geplant werden kann. |
Nichtflüchtigen Speicher zu VM hinzufügen | Hier wird beschrieben, wie Sie ein leeres, nicht bootfähiges zonales Persistent Disk-Volume erstellen und an Ihre VM anhängen. |
OS Login einrichten | ERläutert, wie Sie OS Login einrichten. |
Nicht-Bootlaufwerk an eine VM anhängen | Hier wird beschrieben, wie Sie ein zonales Nicht-Bootlaufwerk an Ihre VM anhängen. |
VM mit einem vom Nutzer verwalteten Dienstkonto erstellen | Hier wird beschrieben, wie Sie eine VM-Instanz erstellen, die für die Verwendung eines nutzerverwalteten Dienstkontos konfiguriert ist. Ein Dienstkonto ist eine spezielle Art von Konto, das in der Regel von einer Anwendung oder einer Computing-Arbeitslast für autorisierte API-Aufrufe verwendet wird. |
Größe eines nichtflüchtigen Speichers erhöhen | Hier wird beschrieben, wie Sie die Größe eines nichtflüchtigen Speichers erhöhen. |
Virtuelle Anzeigen auf einer VM aktivieren | Beschreibt, wie Sie virtuelle Anzeigen auf einer VM-Instanz aktivieren. |
MIG in einer einzelnen Zone erstellen | Informationen zum Erstellen einer verwalteten Instanzgruppe (MIG) in einer einzelnen Zone. Durch das Platzieren aller VMs Ihrer MIG in einer einzelnen Zone wird die Latenz minimiert. Dies ist für bestimmte Arbeitslasten nützlich, z. B. Batch-Arbeitslasten. |
VM-Instanz mit einem benutzerdefinierten Hostnamen erstellen | Hier wird beschrieben, wie Sie eine VM-Instanz mit einem benutzerdefinierten Hostnamen erstellen. |
Anwendungsbasierte Systemdiagnose und automatische Reparatur einrichten | Hier wird beschrieben, wie Sie eine anwendungsbasierte Systemdiagnose für die automatische Reparatur von VMs in einer MIG einrichten. |
MIG erstellen, die VMs auf Abruf verwendet | Beschreibt, wie Sie eine MIG erstellen, die VM-Instanzen auf Abruf verwendet. VMs auf Abruf sind nützlich, wenn Ihre Arbeitslast Unterbrechungen tolerieren kann und Sie von den Kosteneinsparungen profitieren möchten, die mit VMs auf Abruf verbunden sind. |
VMs zu einer MIG hinzufügen und daraus entfernen | Hier wird beschrieben, wie Sie VMs zu einer MIG hinzufügen und daraus entfernen. |
MIG mit aktiviertem Autoscaling erstellen | Hier wird beschrieben, wie Sie eine automatisch skalierte MIG erstellen, die VMs anhand der durchschnittlichen CPU-Auslastung in der Gruppe automatisch hinzufügt und entfernt. |
MIG mit zustandsorientierten Laufwerken erstellen | Beschreibt, wie Sie eine MIG erstellen, die VM-Instanzen auf Abruf verwendet. VMs auf Abruf sind nützlich, wenn Ihre Arbeitslast Unterbrechungen tolerieren kann und Sie von den Kosteneinsparungen profitieren möchten, die mit VMs auf Abruf verbunden sind. |
SQL Server-VM-Instanzen erstellen | Hier erfahren Sie, wie Sie Microsoft SQL Server-VM-Instanzen erstellen. Microsoft SQL Server ist ein Datenbanksystem, das auf Windows Server und einigen Linux-Distributionen ausgeführt wird. SQL Server auf Compute Engine eignet sich gut als Teil des Back-Ends für Ihre Anwendungen, als flexible Entwicklungs- und Testumgebung oder zusätzlich zu Ihren lokalen Systemen für die Datensicherung und Notfallwiederherstellung. |
Zuweisung von Betriebssystemrichtlinien erstellen | Hier erfahren Sie, wie Sie eine Zuweisung von Betriebssystemrichtlinien erstellen. Sie können Betriebssystemrichtlinien verwenden, um konsistente Softwarekonfigurationen für Linux- und Windows-VM-Instanzen zu verwalten. |
Zustandsorientierte Metadaten in MIGs konfigurieren | Hier wird beschrieben, wie Sie zustandsorientierte Metadaten in MIGs konfigurieren. Mit Instanz-Metadaten können Sie Attribute für Ihre Anwendungen festlegen und über den Metadatenserver mit diesen Anwendungen kommunizieren. |
Zustandsorientierte nichtflüchtige Speicher in MIGs konfigurieren | Hier erfahren Sie, wie Sie zustandsorientierte nichtflüchtige Speicher in MIGs konfigurieren. Wenn Sie nichtflüchtige Speicher zustandsorientiert konfigurieren, profitieren Sie von automatischen Reparaturen und automatischen Updates der VM-Instanzen, wobei der Status der Laufwerke beibehalten wird. |
Zustandsorientierte IP-Adressen in MIGs konfigurieren | Beschreibt, wie zustandsorientierte IP-Adressen in MIGs konfiguriert werden. Durch das Konfigurieren der zustandsorientierten IP-Adressen in einer MIG sorgen Sie dafür, dass IP-Adressen beibehalten werden, wenn VM-Instanzen in der Gruppe automatisch repariert, aktualisiert und neu erstellt werden. |
Zielverteilungsform für VMs in einer regionalen MIG festlegen | Hier erfahren Sie, wie Sie eine Zielverteilungsform für VMs festlegen. |
MIG mit VMs in mehreren Zonen in einer Region erstellen | Beschreibt, wie Sie eine MIG erstellen, deren VMs auf mehrere Zonen in einer Region verteilt sind. Durch das Verteilen der Anwendungslast auf mehrere Zonen wird Ihre Arbeitslast vor Zonenausfällen geschützt. |
Proaktive Umverteilung von VMs in einer regionalen MIG deaktivieren und wieder aktivieren | Hier wird beschrieben, wie Sie die proaktive Umverteilung von VMs in einer regionalen MIG deaktivieren und wieder aktivieren. Verwenden Sie in einer regionalen MIG die proaktive Umverteilung von Instanzen, um eine gleichmäßige Anzahl von VM-Instanzen in den ausgewählten Zonen in der Region beizubehalten. Mit dieser Konfigurationsoption bleiben Anwendungen im Falle eines Ausfalls auf Zonenebene maximal verfügbar. |
Terraform-Module und -Blueprints für Compute Engine
Mithilfe von Modulen und Blueprints können Sie die Bereitstellung und Verwaltung von Trusted Cloud -Ressourcen in großem Maßstab automatisieren. Ein Modul ist ein wiederverwendbarer Satz von Terraform-Konfigurationsdateien, der eine logische Abstraktion von Terraform-Ressourcen erstellt. Ein Blueprint ist ein Paket aus bereitstellbaren und wiederverwendbaren Modulen und einer Richtlinie, mit der eine bestimmte Lösung implementiert und dokumentiert wird.
In der folgenden Tabelle sind Module und Blueprints aufgeführt, die mit Compute Engine zusammenhängen:
Modul oder Blueprint | Details |
---|---|
terraform-google-vm |
Sammlung von berechtigten Untermodulen, die Sie als Bausteine zum Bereitstellen von VMs in Trusted Cloudverwenden können. |
terraform-google-startup-scripts |
Stellt eine Bibliothek mit nützlichen Startskripts zum Einbetten in VMs bereit |
terraform-google-container-vm |
Stellt Container auf Compute Engine-Instanzen bereit |
Nächste Schritte
- Terraform-Codebeispiele für Compute Engine
- Dokumentation zu Terraform Trusted Cloud
- Trusted Cloud -Anbieterdokumentation in HashiCorp
- Infrastruktur als Code für Trusted Cloud