Terragrunt-Units ausführen, ohne den Kontext neu aufzubauen

Behalten Sie Ihre Terragrunt-Struktur in Git. Speichern Sie Verzeichnis, Workspace und Eingaben in Semaphore und geben Sie Ihrem Team einen klaren Weg, jeden Vorgang zu planen und auszuführen.

Welche Infrastruktureinheit wird dieser Befehl betreffen?

In einem Terragrunt-Repository bestimmen Startverzeichnis und Argumente den Umfang. Ein nur im Gedächtnis gespeicherter Befehl reicht nicht aus, um den Vorgang an andere zu übergeben.

Unit und Eingaben zum Bestandteil des Jobs machen

  • Das Verzeichnis mit terragrunt.hcl speichern
  • Workspace und Terraform- oder OpenTofu-Laufzeit wählen
  • Betroffene Units in der Task-Ausgabe prüfen

Terragrunt-Vorgänge leichter wiederholen

Eine Infrastruktureinheit planen

Richten Sie eine Vorlage auf eine Netzwerk-, Datenbank- oder Anwendungseinheit aus. Machen Sie ihren Umfang vor dem Start des Plans sichtbar.

Einen vorbereiteten Job teilen

Dasselbe Repository in mehreren Umgebungen verwenden

Erstellen Sie benannte Vorlagen für die passenden Umgebungsverzeichnisse und Variable Groups. Behalten Sie gemeinsame Konfigurationen in Git.

Einen vorbereiteten Job teilen

Eine umfassendere Infrastrukturänderung koordinieren

Konfigurieren Sie die von Ihrer Terragrunt-Version unterstützten Argumente für mehrere Units. Terragrunt wertet Modulabhängigkeiten aus und Semaphore zeichnet die Aufgabenausgabe auf.

Jobs in einem Workflow verbinden

Eine Terragrunt-Unit wählen und ihren Plan prüfen

Einen Terragrunt-Rollout bis zur Dienstbereitschaft führen

Belassen Sie Modulabhängigkeiten in Terragrunt. Verwenden Sie einen Workflow, um dessen Ausgaben an die Ansible-Konfiguration zu übergeben, und führen Sie anschließend Python-Dienstprüfungen aus. Ergänzen Sie einen Diagnosezweig für fehlgeschlagene Tasks.

Infrastruktur-RolloutWorkflow
Infrastruktureinheiten ausführen
Bei ErfolgAusgaben → Eingaben
Die Systeme konfigurieren
Bei ErfolgAusgaben → Eingaben
Dienst prüfen
Bei Fehler
Diagnosedaten sammeln

Verzeichnis, Toolchain und Zustand hinter jeder Ausführung

Einstiegsverzeichnis speichern

Wählen Sie das Repository-Unterverzeichnis mit terragrunt.hcl. Verwenden Sie separate benannte Vorlagen, wenn unterschiedliche Units oder Umgebungen eigene Einstiegspunkte benötigen.

Terragrunt und die zugrunde liegende Binärdatei einrichten

Aktivieren Sie Terragrunt Code unter Applications. Installieren Sie terragrunt und die Terraform- oder OpenTofu-Binärdatei auf dem Server oder Runner und testen Sie die von Ihrem Repository verwendete Versionskombination.

Variablen und Workspace-Einstellungen wiederverwenden

Variable Groups liefern Umgebungseingaben einschließlich TF_VAR_-Werten. Wählen Sie ein Terragrunt-Workspace-Inventar und verwenden Sie das für den Vorgang konfigurierte Backend.

Modulabhängigkeiten in Terragrunt belassen

Terragrunt wertet die Abhängigkeiten in seiner Konfiguration aus. Semaphore Workflows koordinieren getrennte Task Templates. Konfigurieren Sie CLI-Argumente für mehrere Units passend zur installierten Terragrunt-Version.

FAQ

Warum fehlt Terragrunt in der Anwendungsauswahl?

Aktivieren Sie Terragrunt Code unter Applications, bevor Sie die Vorlage anlegen. Die Anwendung ist standardmäßig deaktiviert. Installieren Sie außerdem terragrunt und die verwendete Terraform- oder OpenTofu-Binärdatei auf dem Server oder Runner, der den Task ausführt.

Welches Repository-Verzeichnis sollte eine Terragrunt-Vorlage verwenden?

Wählen Sie das Unterverzeichnis mit der terragrunt.hcl für den beabsichtigten Vorgang. Verzeichnis und Befehlsargumente bestimmen den Umfang. Verwenden Sie benannte Vorlagen für unterschiedliche Units oder Umgebungen, damit das Team vor dem Start erkennt, worauf ein Task wirkt.

Kann Terragrunt im Hintergrund OpenTofu statt Terraform verwenden?

Ja. Die Semaphore-Integration unterstützt Terraform oder OpenTofu als zugrunde liegende Binärdatei. Richten Sie Terragrunt und die gewählte Binärdatei in der Ausführungsumgebung ein. Testen Sie ihre Versionskombination mit Ihrer Konfiguration und stellen Sie den benötigten Modul-, Provider- und Backend-Zugriff bereit.

Kann ich mehrere Terragrunt-Units über eine Vorlage ausführen?

Sie können Vorgänge mit mehreren Units über die CLI-Argumente der Vorlage konfigurieren. Verwenden Sie die von Ihrer installierten Terragrunt-Version unterstützte Befehlssyntax. Arbeitsverzeichnis und Argumente bestimmen die betroffenen Units; Terragrunt wertet ihre Modulabhängigkeiten aus.

Kann ich einen Terragrunt-Plan für eine bestimmte Unit zeitlich planen?

Ja. Speichern Sie das vorgesehene Unit-Verzeichnis und den Workspace in einem Terragrunt Task Template, konfigurieren Sie eine reine Plan-Ausführung und ergänzen Sie einen Zeitplan. Jeder geplante Task behält seine eigene Ausgabe. Prüfen Sie den Befehlsumfang vor dem Einsatz für wiederkehrende Arbeit mit mehreren Units.

Wie unterscheiden sich Terragrunt-Abhängigkeiten von Semaphore Workflows?

Terragrunt wertet Abhängigkeiten zwischen seinen Infrastrukturmodulen aus. Ein Semaphore Workflow koordiniert Task Templates, die unterschiedliche Tools verwenden können. Auf einen Terragrunt-Rollout können beispielsweise Ansible-Konfiguration und Python-Prüfungen folgen, ohne Terragrunts internen Modulabhängigkeitsgraphen zu ersetzen.

Können andere Teams einen gespeicherten Terragrunt-Vorgang ausführen?

Ja. Geben Sie Teammitgliedern den zum Ausführen der vorbereiteten Vorlage erforderlichen Projektzugriff. Speichern Sie ein klares Einstiegsverzeichnis, einen Workspace und Eingaben, damit sie den Umfang erkennen. Benutzerdefinierte Enterprise-Rollen können Zugriff auf ausgewählte Vorlagen beschränken, wenn breiterer Projektzugriff unnötig ist.

Wie übergebe ich Variablen an einen Terragrunt-Job?

Verknüpfen Sie Variable Groups für Umgebungseingaben, einschließlich der von der Konfiguration verwendeten TF_VAR_-Werte. Zusätzliche Variablen und Survey Variables werden als unterstützte Ausführungseingaben übergeben. Bewahren Sie Provider- und Backend-Zugangsdaten in Secret-Einträgen auf, statt sie im Repository zu speichern.