Was genau ist Terraform? Lass es uns herausfinden.
„Infrastructure as Code“ (IaC), also Infrastruktur als Code, ist ein Begriff, der in der DevOps-Welt weit verbreitet ist. Es bezeichnet den Prozess, die gesamte IT-Infrastruktur (sowohl physische als auch virtuelle Maschinen) mithilfe von maschinenlesbaren Definitionsdateien zu verwalten und bereitzustellen. Es handelt sich um einen softwaretechnischen Ansatz für den Betrieb, der die Automatisierung des gesamten Rechenzentrums durch den Einsatz von Programmierscripts ermöglicht.
Trotz der vielen Vorteile, die Infrastructure as Code bietet, gibt es auch einige Herausforderungen:
- Notwendigkeit, Programmieren zu erlernen
- Unsicherheit über die Auswirkungen von Änderungen
- Komplexität bei der Rückgängigmachung von Änderungen
- Schwierigkeiten bei der Nachverfolgung von Änderungen
- Unmöglichkeit, bestimmte Ressourcen zu automatisieren
- Herausforderungen bei der Verwaltung mehrerer Infrastrukturumgebungen
Terraform wurde entwickelt, um genau diese Herausforderungen zu bewältigen.
Was ist Terraform?
Terraform ist ein Open-Source-Tool für Infrastructure as Code, das von HashiCorp entwickelt wurde. Es ermöglicht die Definition und Bereitstellung einer vollständigen Infrastruktur durch eine leicht erlernbare, deklarative Sprache.
Terraform ist ein Werkzeug zur Bereitstellung von Infrastruktur, bei dem die Konfiguration der Cloud-Infrastruktur als Code gespeichert wird. Es ähnelt Tools wie CloudFormation, das zur Automatisierung der AWS-Infrastruktur verwendet wird. CloudFormation ist jedoch auf AWS beschränkt. Terraform hingegen kann auf verschiedenen Cloud-Plattformen eingesetzt werden.
Hier sind einige der Vorteile der Verwendung von Terraform:
- Bietet Orchestrierung, nicht nur Konfigurationsmanagement
- Unterstützt eine Vielzahl von Anbietern wie AWS, Azure, GCP, DigitalOcean und viele mehr
- Ermöglicht die Bereitstellung einer unveränderlichen Infrastruktur, bei der Konfigurationsänderungen reibungslos ablaufen
- Verwendet HCL (HashiCorp Configuration Language), eine leicht verständliche Sprache
- Einfache Übertragung auf andere Anbieter
- Verwendet eine Client-Architektur, wodurch keine zusätzliche Konfigurationsverwaltung auf einem Server erforderlich ist
Terraform Kernkonzepte
Im Folgenden werden die wichtigsten Konzepte und Begriffe aufgeführt, die in Terraform verwendet werden:
- Variablen: Auch als Eingabevariablen bekannt. Dies sind Schlüssel-Wert-Paare, die von Terraform-Modulen verwendet werden, um Anpassungen zu ermöglichen.
- Anbieter: Ein Plugin zur Interaktion mit den APIs eines Dienstes und zum Zugriff auf die zugehörigen Ressourcen.
- Modul: Ein Ordner mit Terraform-Vorlagen, der alle Konfigurationen enthält.
- Zustand: Eine zwischengespeicherte Information über die von Terraform verwaltete Infrastruktur und die zugehörigen Konfigurationen.
- Ressourcen: Bezeichnet einen Block von einem oder mehreren Infrastrukturobjekten (Recheninstanzen, virtuelle Netzwerke usw.), die zur Konfiguration und Verwaltung der Infrastruktur verwendet werden.
- Datenquelle: Wird von Anbietern implementiert, um Informationen über externe Objekte an Terraform zurückzugeben.
- Ausgabewerte: Rückgabewerte eines Terraform-Moduls, die von anderen Konfigurationen verwendet werden können.
- Planen: Eine Phase, in der festgelegt wird, was erstellt, aktualisiert oder gelöscht werden muss, um vom tatsächlichen Zustand der Infrastruktur zum gewünschten Zustand zu gelangen.
- Anwenden: Eine Phase, in der die Änderungen des tatsächlichen Zustands der Infrastruktur angewendet werden, um den gewünschten Zustand zu erreichen.
Terraform Lebenszyklus
Der Lebenszyklus von Terraform besteht aus Initialisieren, Planen, Anwenden und Zerstören.
terraform init
initialisiert das Arbeitsverzeichnis, das alle Konfigurationsdateien enthält.terraform plan
wird verwendet, um einen Ausführungsplan zu erstellen, der den gewünschten Zustand der Infrastruktur erreichen soll. Änderungen in den Konfigurationsdateien werden vorgenommen, um den gewünschten Zustand zu erreichen.terraform apply
setzt die im Plan definierten Änderungen an der Infrastruktur um und die Infrastruktur erreicht den gewünschten Zustand.terraform destroy
wird verwendet, um alle alten Infrastrukturressourcen zu löschen, die nach der Apply-Phase als „tainted“ markiert wurden.
Wie funktioniert Terraform?
Die Architektur von Terraform besteht aus zwei Hauptkomponenten:
Terraform Kern
Der Terraform-Kern verwendet zwei Eingabequellen für seine Arbeit.
Die erste Quelle ist eine Terraform-Konfiguration, die vom Benutzer konfiguriert wird. Hier wird definiert, was erstellt oder bereitgestellt werden soll. Die zweite Quelle ist der Zustand, in dem Terraform den aktuellen Stand der Infrastruktur speichert.
Der Terraform-Kern nimmt diese Eingaben entgegen und erstellt einen Plan. Er vergleicht den aktuellen Zustand mit der gewünschten Konfiguration und ermittelt, welche Schritte erforderlich sind, um den gewünschten Zustand zu erreichen. Dies beinhaltet die Erstellung, Aktualisierung und Löschung von Ressourcen.
Anbieter
Die zweite Komponente der Architektur sind Anbieter für bestimmte Technologien. Dies können Cloud-Anbieter wie AWS, Azure, GCP oder andere Infrastructure-as-a-Service-Plattformen sein. Es gibt auch Anbieter für höherwertige Komponenten wie Kubernetes oder andere Platform-as-a-Service-Tools, sogar für einige Software-as-a-Service-Lösungen.
Dies ermöglicht die Erstellung von Infrastruktur auf verschiedenen Ebenen.
Beispielsweise kann eine AWS-Infrastruktur erstellt, Kubernetes darauf bereitgestellt und dann Dienste/Komponenten innerhalb dieses Kubernetes-Clusters aufgebaut werden.
Terraform bietet über hundert Anbieter für verschiedene Technologien, die den Zugriff auf ihre jeweiligen Ressourcen ermöglichen. So können über den AWS-Anbieter Hunderte von AWS-Ressourcen wie EC2-Instanzen verwaltet werden. Der Kubernetes-Anbieter ermöglicht den Zugriff auf Ressourcen wie Dienste, Deployments und Namespaces.
Auf diese Weise versucht Terraform, die gesamte Anwendungsbereitstellung von der Infrastruktur bis zur Anwendung zu ermöglichen.
Lass uns ein paar praktische Übungen machen! 👨💻
Wir werden Terraform auf Ubuntu installieren und eine einfache Infrastruktur bereitstellen.
Terraform installieren
Laden Sie das neueste Terraform-Paket herunter.
Beziehen Sie sich auf die offizielle Downloadseite, um die aktuelle Version für Ihr Betriebssystem zu erhalten.
[email protected]:~$ wget https://releases.hashicorp.com/terraform/0.13.0/terraform_0.13.0_linux_amd64.zip --2020-08-14 16:55:38-- https://releases.hashicorp.com/terraform/0.13.0/terraform_0.13.0_linux_amd64.zip Auflösen von releases.hashicorp.com (releases.hashicorp.com)... 151.101.153.183, 2a04:4e42:24::439 Verbindungsaufbau zu releases.hashicorp.com (releases.hashicorp.com)|151.101.153.183|:443... verbunden. HTTP-Anforderung gesendet, warte auf Antwort... 200 OK Länge: 34851622 (33M) [application/zip] Speichere nach: ‘terraform_0.13.0_linux_amd64.zip’ terraform_0.13.0_linux_amd64.zip 100%[=================================================================>] 33.24M 90.3KB/s in 5m 28s 2020-08-14 17:01:06 (104 KB/s) - ‘terraform_0.13.0_linux_amd64.zip’ gespeichert [34851622/34851622]
Extrahieren Sie das heruntergeladene Paket.
[email protected]:~$ unzip terraform_0.13.0_linux_amd64.zip Archiv: terraform_0.13.0_linux_amd64.zip entpacke: terraform
Verschieben Sie die ausführbare Terraform-Datei in den angegebenen Pfad. Überprüfen Sie die Terraform-Version.
[email protected]:~$ sudo mv terraform /usr/local/bin/ [sudo] Passwort für wdzwdz: [email protected]:~$ terraform -v Terraform v0.13.0
Die verfügbaren Befehle in Terraform werden wie folgt angezeigt:
[email protected]:~$ terraform Verwendung: terraform [-version] [-help] <Befehl> [Argumente] Die verfügbaren Befehle zur Ausführung sind unten aufgeführt. Die gängigsten und nützlichsten Befehle werden zuerst angezeigt, gefolgt von weniger gebräuchlichen oder fortgeschritteneren Befehlen. Wenn Sie gerade erst mit Terraform beginnen, halten Sie sich an die gängigen Befehle. Für die anderen Befehle lesen Sie bitte die Hilfe und Dokumente vor der Verwendung. Gängige Befehle: apply Erstellt oder ändert Infrastruktur console Interaktive Konsole für Terraform-Interpolationen destroy Zerstört von Terraform verwaltete Infrastruktur env Arbeitsbereichsmanagement fmt Schreibt Konfigurationsdateien in ein kanonisches Format um get Lädt Module für die Konfiguration herunter und installiert sie graph Erstellt ein visuelles Diagramm von Terraform-Ressourcen import Importiert vorhandene Infrastruktur in Terraform init Initialisiert ein Terraform-Arbeitsverzeichnis login Erlangt und speichert Anmeldedaten für einen Remote-Host logout Entfernt lokal gespeicherte Anmeldedaten für einen Remote-Host output Liest eine Ausgabe aus einer Zustandsdatei plan Generiert und zeigt einen Ausführungsplan an providers Gibt einen Baum der in der Konfiguration verwendeten Anbieter aus refresh Aktualisiert die lokale Zustandsdatei anhand von realen Ressourcen show Inspiziert den Terraform-Zustand oder -Plan taint Markiert eine Ressource manuell zur Neuerstellung untaint Markiert eine Ressource manuell als nicht "tainted" validate Validiert die Terraform-Dateien version Gibt die Terraform-Version aus workspace Arbeitsbereichsmanagement Alle anderen Befehle: 0.12upgrade Schreibt Modulquellcode vor Version 0.12 für Version 0.12 um 0.13upgrade Schreibt Modulquellcode vor Version 0.13 für Version 0.13 um debug Debug-Ausgabemanagement (experimentell) force-unlock Entsperrt den Terraform-Zustand manuell push Veralteter Befehl für Terraform Enterprise Legacy (v1) state Erweitertes Zustandsmanagement
Bereitstellen einer AWS EC2-Instanz mit Terraform
In dieser Demo werde ich eine neue AWS EC2-Instanz mit Terraform starten.
Erstellen Sie ein Arbeitsverzeichnis für diese Terraform-Demo.
[email protected]:~$ mkdir terraform_demo
Wechseln Sie in das Verzeichnis und erstellen Sie eine Terraform-Konfigurationsdatei, in der Sie den Anbieter und die Ressourcen zum Starten einer AWS EC2-Instanz definieren.
[email protected]:~$ cd terraform_demo/ [email protected]:~/terraform_demo$ gedit awsec2.tf provider "aws" { access_key = "B5KG6Fe5GUKIATUF5UD" secret_key = "R4gb65y56GBF6765ejYSJA4YtaZ+T6GY7H" region = "us-west-2" } resource "aws_instance" "terraform_demo" { ami = "ami-0a634ae95e11c6f91" instance_type = "t2.micro" }
Hinweis: Die Zugangs- und Geheimschlüssel habe ich geändert 😛, Sie müssen Ihre eigenen verwenden.
In der obigen Konfiguration wird der Anbieter als AWS definiert. Innerhalb des Anbieters werden die AWS-Benutzeranmeldeinformationen und die Region angegeben, in der die Instanz gestartet werden soll.
In den Ressourcen werden die AMI-Details von Ubuntu (ami-0a634ae95e11c6f91) und der Instanztyp t2.micro angegeben.
Die Konfigurationsdatei ist einfach und lesbar, auch wenn man kein Programmierer ist.
Terraform init
Der erste Schritt ist die Initialisierung von Terraform.
[email protected]:~/terraform_demo$ terraform init Initialisiere das Backend... Initialisiere Anbieter-Plugins... - Verwende zuvor installierten hashicorp/aws v3.2.0 Die folgenden Anbieter haben keine Versionsbeschränkungen in der Konfiguration. daher wurde die neueste Version installiert. Um automatische Upgrades auf neue Hauptversionen zu verhindern, die möglicherweise Breaking Changes enthalten, empfehlen wir, Versionsbeschränkungen in einem required_providers-Block in Ihrer Konfiguration mit den unten vorgeschlagenen Beschränkungszeichenfolgen hinzuzufügen. * hashicorp/aws: version = "~> 3.2.0" Terraform wurde erfolgreich initialisiert! Sie können nun mit Terraform arbeiten. Versuchen Sie, "terraform plan" auszuführen, um alle Änderungen zu sehen, die für Ihre Infrastruktur erforderlich sind. Alle Terraform-Befehle sollten jetzt funktionieren. Wenn Sie jemals Module oder die Backend-Konfiguration für Terraform festgelegt oder geändert haben, führen Sie diesen Befehl erneut aus, um Ihr Arbeitsverzeichnis neu zu initialisieren. Wenn Sie es vergessen, werden andere Befehle es erkennen und Sie gegebenenfalls daran erinnern, dies zu tun.
Terraform plan
Als nächstes kommt die Planungsphase. Sie erstellt das Ausführungsdiagramm zum Erstellen und Bereitstellen der Infrastruktur.
[email protected]:~/terraform_demo$ terraform plan Aktualisiere den Terraform-Zustand im Speicher vor dem Plan... Der aktualisierte Zustand wird verwendet, um diesen Plan zu berechnen, wird aber nicht im lokalen oder Remote-Zustandsspeicher persistent gespeichert. ------------------------------------------------------------------------ Ein Ausführungsplan wurde generiert und wird unten angezeigt. Ressourcenaktionen werden mit folgenden Symbolen angezeigt: + erstellen Terraform wird die folgenden Aktionen ausführen: # aws_instance.terraform_demo wird erstellt + resource "aws_instance" "terraform_demo" { + ami = "ami-0a634ae95e11c6f91" + arn = (bekannt nach apply) + associate_public_ip_address = (bekannt nach apply) + availability_zone = (bekannt nach apply) + cpu_core_count = (bekannt nach apply) + cpu_threads_per_core = (bekannt nach apply) + get_password_data = false + host_id = (bekannt nach apply) + id = (bekannt nach apply) + instance_state = (bekannt nach apply) + instance_type = "t2.micro" + ipv6_address_count = (bekannt nach apply) + ipv6_addresses = (bekannt nach apply) + key_name = (bekannt nach apply) + outpost_arn = (bekannt nach apply) + password_data = (bekannt nach apply) + placement_group = (bekannt nach apply) + primary_network_interface_id = (bekannt nach apply) + private_dns = (bekannt nach apply) + private_ip = (bekannt nach apply) + public_dns = (bekannt nach apply) + public_ip = (bekannt nach apply) + secondary_private_ips = (bekannt nach apply) + security_groups = (bekannt nach apply) + source_dest_check = true + subnet_id = (bekannt nach apply) + tenancy = (bekannt nach apply) + volume_tags = (bekannt nach apply) + vpc_security_group_ids = (bekannt nach apply) + ebs_block_device { + delete_on_termination = (bekannt nach apply) + device_name = (bekannt nach apply) + encrypted = (bekannt nach apply) + iops = (bekannt nach apply) + kms_key_id = (bekannt nach apply) + snapshot_id = (bekannt nach apply) + volume_id = (bekannt nach apply) + volume_size = (bekannt nach apply) + volume_type = (bekannt nach apply) } + ephemeral_block_device { + device_name = (bekannt nach apply) + no_device = (bekannt nach apply) + virtual_name = (bekannt nach apply) } + metadata_options { + http_endpoint = (bekannt nach apply) + http_put_response_hop_limit = (bekannt nach apply) + http_tokens = (bekannt nach apply) } + network_interface { + delete_on_termination = (bekannt nach apply) + device_index = (bekannt nach apply) + network_interface_id = (bekannt nach apply) } + root_block_device { + delete_on_termination = (bekannt nach apply) + device_name = (bekannt nach apply) + encrypted = (bekannt nach apply) + iops = (bekannt nach apply) + kms_key_id = (bekannt nach apply) + volume_id = (bekannt nach apply) + volume_size = (bekannt nach apply) + volume_type = (bekannt nach apply) } } Plan: 1 zu hinzufügen, 0 zu ändern, 0 zu zerstören. ------------------------------------------------------------------------ Hinweis: Sie haben keinen "-out"-Parameter angegeben, um diesen Plan zu speichern, daher kann Terraform nicht garantieren, dass genau diese Aktionen ausgeführt werden, wenn "terraform apply" anschließend ausgeführt wird.
Terraform apply
Die Apply-Phase führt die Konfigurationsdatei aus und startet eine AWS EC2-Instanz. Wenn Sie den Befehl apply
ausführen, werden Sie gefragt: „Möchten Sie diese Aktionen ausführen?“, Sie müssen yes
eingeben und die Eingabetaste drücken.
[email protected]:~/terraform_demo$ terraform apply Ein Ausführungsplan wurde generiert und wird unten angezeigt. Ressourcenaktionen werden mit folgenden Symbolen angezeigt: + erstellen Terraform wird die folgenden Aktionen ausführen: # aws_instance.terraform_demo wird erstellt + resource "aws_instance" "terraform_demo" { + ami = "ami-0a634ae95e11c6f91" + arn = (bekannt nach apply) + associate_public_ip_address = (bekannt nach apply) + availability_zone = (bekannt nach apply) + cpu_core_count = (bekannt nach apply) + cpu_threads_per_core = (bekannt nach apply) + get_password_data = false + host_id = (bekannt nach apply) + id = (bekannt nach apply) + instance_state = (bekannt nach apply) + instance_type = "t2.micro" + ipv6_address_count = (bekannt nach apply) + ipv6_addresses = (bekannt nach apply) + key_name = (bekannt nach apply) + outpost_arn = (bekannt nach apply) + password_data = (bekannt nach apply) + placement_group = (bekannt nach apply) + primary_network_interface_id = (bekannt nach apply) + private_dns = (bekannt nach apply) + private_ip = (bekannt nach apply) + public_dns = (bekannt nach apply) + public_ip = (bekannt nach apply) + secondary_private_ips = (bekannt nach apply) + security_groups = (bekannt nach apply) + source_dest_check = true + subnet_id = (bekannt nach apply) + tenancy = (bekannt nach apply) + volume_tags = (bekannt nach apply) + vpc_security_group_ids = (bekannt nach apply) + ebs_block_device { + delete_on_termination = (bekannt nach apply) + device_name = (bekannt nach apply) + encrypted = (bekannt nach apply) + iops = (bekannt nach apply) + kms_key_id = (bekannt nach apply) + snapshot_id = (bekannt nach apply) + volume_id = (bekannt nach apply) + volume_size = (bekannt nach apply) + volume_type = (bekannt nach apply) } + ephemeral_block_device { + device_name = (bekannt nach apply) + no_device = (bekannt nach apply) + virtual_name = (bekannt nach apply) } + metadata_options { + http_endpoint = (bekannt nach apply) + http_put_response_hop_limit = (bekannt nach apply) + http_tokens = (bekannt nach apply) } + network_interface { + delete_on_termination = (bekannt nach apply) + device_index = (bekannt nach apply) + network_interface_id = (bekannt nach apply) } + root_block_device { + delete_on_termination = (bekannt nach apply) + device_name = (bekannt nach apply) + encrypted = (bekannt nach apply) + iops = (bekannt nach apply) + kms_key_id = (bekannt nach apply) + volume_id = (bekannt nach apply) + volume_size = (bekannt nach apply) + volume_type = (bekannt nach apply) } } Plan: 1 zu hinzufügen, 0 zu ändern, 0 zu zerstören. Möchten Sie diese Aktionen ausführen? Terraform wird die oben beschriebenen Aktionen ausführen. Nur 'yes' wird akzeptiert, um zu genehmigen. Geben Sie einen Wert ein: yes aws_instance.terraform_demo: Erstelle... aws_instance.terraform_demo: Erstelle immer noch... [10s vergangen] aws_instance.terraform_demo: Erstelle immer noch... [20s vergangen] aws_instance.terraform_demo: Erstelle immer noch... [30s vergangen] aws_instance.terraform_demo: Erstelle immer noch... [40s vergangen] aws_instance.terraform_demo: Erstellung abgeschlossen nach 44s [id=i-0eec33286ea4b0740] Apply abgeschlossen! Ressourcen: 1 hinzugefügt, 0 geändert, 0 zerstört.
Gehen Sie zu Ihrem AWS EC2-Dashboard, und Sie werden sehen, dass eine neue Instanz mit der Instanz-ID erstellt wurde, die am Ende des Apply-Befehls angegeben wurde.
Sie haben erfolgreich eine AWS EC2-Instanz mit Terraform gestartet.
Terraform zerstören
Wenn Sie schließlich die Infrastruktur löschen möchten, müssen Sie den Befehl „destroy“ ausführen.
[email protected]:~/terraform_demo$ terraform destroy aws_instance.terraform_demo: Aktualisiere den Zustand... [id=i-0eec33286ea4b0740] Ein Ausführungsplan wurde generiert und wird unten angezeigt. Ressourcenaktionen werden mit folgenden Symbolen angezeigt: - zerstören Terraform wird die folgenden Aktionen ausführen: # aws_instance.terraform_demo wird zerstört - resource "aws_instance" "terraform_demo" { - ami = "ami-0a634ae95e11c6f91" -> null - arn = "arn:aws:ec2:us-west-2:259212389929:instance/i-0eec33286ea4b0740" -> null - associate_public_ip_address = true -> null - availability_zone = "us-west-2c" -> null - cpu_core_count = 1 -> null - cpu_threads_per_core = 1 -> null - disable_api_termination = false -> null - ebs_optimized = false -> null - get_password_data = false -> null - hibernation = false -> null - id = "i-0eec33286ea4b0740" -> null - instance_state = "running" -> null - instance_type = "t2.micro" -> null - ipv6_address_count = 0 -> null - ipv6_addresses = [] -> null - monitoring = false -> null - primary_network_interface_id = "eni-02a46f2802fd15634" -> null - private_dns = "ip-172-31-13-160.us-west-2.compute.internal" -> null - private_ip = "172.31.13.160" -> null - public_dns = "ec2-34-221-77-94.us-west-2.compute.amazonaws.com" -> null - public_ip = "34.221.77.94" -> null - secondary_private_ips = [] -> null - security_groups = [ - "default", ] -> null - source_dest_check = true -> null - subnet_id = "subnet-5551200c" -> null - tags = {} -> null - tenancy = "default" -> null - volume_tags = {} -> null - vpc_security_group_ids = [ - "sg-b5b480d1", ] -> null - credit_specification { - cpu_credits = "standard" -> null } - metadata_options { - http_endpoint = "enabled" -> null - http_put_response_hop_limit = 1 -> null - http_tokens = "optional" -> null } - root_block_device { - delete_on_termination = true -> null - device_name = "/dev/sda1" -> null - encrypted = false -> null - iops = 100 -> null - volume_id = "vol-0be2673afff6b1a86" -> null - volume_size = 8 -> null - volume_type = "gp2" -> null } } Plan: 0 zu hinzufügen, 0 zu ändern, 1 zu zerstören. Möchten Sie wirklich alle Ressourcen zerstören? Terraform wird Ihre gesamte verwaltete Infrastruktur wie oben gezeigt zerstören. Es gibt keine Möglichkeit, dies rückgängig zu machen. Nur 'yes' wird zur Bestätigung akzeptiert. Geben Sie einen Wert ein: yes aws_instance.terraform_demo: Zerstöre... [id=i-0eec33286ea4b0740] aws_instance.terraform_demo: Zerstöre immer noch... [id=i-0eec33286ea4b0740, 10s vergangen] aws_instance.terraform_demo: Zerstöre immer noch... [id=i-0eec33286ea4b0740, 20s vergangen] aws_instance.terraform_demo: Zerstöre immer noch... [id=i-0eec33286ea4b0740, 30s vergangen] aws_instance.terraform_demo: Zerstörung abgeschlossen nach 34s Zerstörung abgeschlossen! Ressourcen: 1 zerstört.
Wenn Sie das EC2-Dashboard erneut überprüfen, werden Sie feststellen, dass die Instanz beendet wurde.
Fazit
Ich hoffe, die obige Anleitung hat Ihnen einen Einblick in den Einstieg in Terraform gegeben. Machen Sie weiter und probieren Sie das gezeigte Beispiel aus.
Sie sollten sich auch mit anderen Tools für die Infrastrukturautomatisierung beschäftigen.
Falls Sie mehr darüber erfahren möchten, empfehle ich diesen DevOps-Kurs mit Terraform.