Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Terraform ermöglicht die Definition, Vorschau und Bereitstellung der Cloudinfrastruktur. Terraform ermöglicht das Erstellen von Konfigurationsdateien mit HCL-Syntax. Mit der HCL-Syntax können Sie den Cloudanbieter ( z. B. Azure ) und die Elemente angeben, aus denen Ihre Cloudinfrastruktur besteht. Nach der Erstellung Ihrer Konfigurationsdateien erstellen Sie einen Ausführungsplan, mit dem Sie eine Vorschau Ihrer Infrastrukturänderungen anzeigen können, bevor diese bereitgestellt werden. Nachdem Sie die Änderungen überprüft haben, wenden Sie den Ausführungsplan an, um die Infrastruktur bereitzustellen.
Terraform ist ein Infrastructure-as-Code (IaC)-Werkzeug. Diese Kategorie von Tool bezieht sich auf die Tatsache, dass Sie Ihre Terraform-Dateien wie den Quellcode des Projekts behandeln. Ein Teil dieses Prozesses umfasst Versionsverwaltung und Quellcodeverwaltung. Außerdem sollten Tests Teil Ihres Prozesses sein. Dieser Artikel gibt einen Überblick über die verschiedenen Arten von Tests, die Sie für ein Terraform-Projekt ausführen können.
Implementieren von Integrationstests
Integrationstests überprüfen, ob eine neu eingeführte Codeänderung den vorhandenen Code nicht unterbricht. In DevOps bezieht sich die kontinuierliche Integration (CI) auf einen Prozess, der das gesamte System erstellt, wenn sich die Codebasis ändert – z. B. jemand, der eine PR in einem Git-Repository zusammenführen möchte. Die folgende Liste enthält allgemeine Beispiele für Integrationstests:
- Tools für die statische Codeanalyse, z. B. „lint“ und „format“
- Ausführen von terraform validate, um die Syntax der Konfigurationsdateien zu überprüfen
- Führen Sie terraform Plan aus, um sicherzustellen, dass die Konfiguration wie erwartet funktioniert.
Implementieren von Komponententests
Komponententests stellen sicher, dass sich ein bestimmter Teil oder eine bestimmte Funktion eines Programms ordnungsgemäß verhält. Der Entwickler der Funktionalität schreibt Komponententests. Manchmal auch als testgesteuerte Entwicklung oder TDD bezeichnet, umfasst diese Art von Tests kontinuierliche kurze Entwicklungszyklen. Im Rahmen von Terraform-Projekten können Unit-Tests mithilfe von terraform plan durchgeführt werden, um sicherzustellen, dass die tatsächlichen Werte im generierten Plan den erwarteten Werten entsprechen.
Komponententests können besonders nützlich sein, wenn Ihre Terraform-Module komplexer werden:
- Generieren dynamischer Blöcke
- Schleifen verwenden
- Berechnen lokaler Variablen
Wie bei Integrationstests sind im kontinuierlichen Integrationsprozess oft Komponententests enthalten.
Implementieren von Compliancetests
Verwenden Sie Compliancetests, um sicherzustellen, dass die Konfiguration den Richtlinien folgt, die Sie für das Projekt definieren. Beispielsweise können Sie geopolitische Benennungskonventionen für Ihre Azure-Ressourcen definieren. Oder Sie möchten, dass virtuelle Computer aus einer definierten Teilmenge von Images erstellt werden. Verwenden Sie Compliancetests, um diese Regeln zu erzwingen.
Definieren Sie in der Regel Compliancetests als Teil des kontinuierlichen Integrationsprozesses.
Implementieren von End-to-End-Tests (E2E)
E2E-Tests überprüfen, ob ein Programm funktioniert, bevor es in der Produktion bereitgestellt wird. Ein Beispielszenario könnte ein Terraform-Modul sein, das zwei virtuelle Computer in einem virtuellen Netzwerk bereitstellt. Möglicherweise möchten Sie verhindern, dass die beiden Computer miteinander pingen. In diesem Beispiel können Sie einen Test definieren, um das beabsichtigte Ergebnis vor der Bereitstellung zu überprüfen.
E2E-Tests sind in der Regel ein dreistufiger Prozess. Wenden Sie zunächst die Konfiguration auf eine Testumgebung an. Führen Sie dann Code aus, um die Ergebnisse zu überprüfen. Schließlich können Sie die Testumgebung neu initialisieren oder abbauen (z. B. die Zuordnung einer virtuellen Maschine aufheben).