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 für ein Terraform-Projekt ausgeführt werden 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 fortlaufende Integration (CI) auf einen Prozess, der das gesamte System erstellt, wenn die Codebasis geändert wird – 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. Komponententests werden vom Entwickler der Funktionalität geschrieben. 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
- Verwenden von Schleifen
- Berechnen lokaler Variablen
Wie bei Integrationstests sind im kontinuierlichen Integrationsprozess oft Komponententests enthalten.
Implementieren von Compliancetests
Compliancetests werden verwendet, um sicherzustellen, dass die Konfiguration den Richtlinien folgt, die Sie für das Projekt definiert haben. 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. Compliance-Tests würden genutzt, um diese Regeln durchzusetzen.
Compliancetests werden in der Regel auch als Teil des kontinuierlichen Integrationsprozesses definiert.
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. Zunächst wird die Konfiguration auf eine Testumgebung angewendet. Der Code wird dann ausgeführt, um die Ergebnisse zu überprüfen. Zum Schluss wird die Testumgebung entweder erneut initialisiert oder entfernt (z. B. durch Aufheben der Zuordnung einer VM).