Terraform-Änderungen an einem gemeinsamen Ort ausführen

Verbinden Sie Ihren Terraform-Code mit Semaphore. Wählen Sie einen Workspace, prüfen Sie die Plan-Ausgabe, führen Sie Apply aus und halten Sie den Ausführungsverlauf für Ihr Team verfügbar.

Die Änderung ist geprüft. Ist die Ausführung wiederholbar?

Der Code liegt in Git, aber Workspace, Variablen und Zugangsdaten können sich zwischen Terminalsitzungen unterscheiden. Der nächste Verantwortliche benötigt denselben Ausgangspunkt.

Jeden Infrastrukturvorgang mit einer gespeicherten Konfiguration versehen

  • Konfigurationsverzeichnis und Workspace speichern
  • Variablen über wiederverwendbare Variable Groups bereitstellen
  • Plan und Apply als getrennte aufgezeichnete Tasks prüfen

Terraform-Vorgänge in den Prozess Ihres Teams integrieren

Eine Anwendungsumgebung bereitstellen

Erstellen Sie eine Vorlage für Ihr Konfigurationsverzeichnis und Ihren Workspace. Übergeben Sie Umgebungseingaben über Variable Groups.

Einen vorbereiteten Job teilen

Eine vorgeschlagene Infrastrukturänderung prüfen

Starten Sie einen Plan-Task und teilen Sie seine Ausgabe. Führen Sie Apply als separate Aktion aus, wenn das Team bereit für die Änderung ist.

Einen vorbereiteten Job teilen

Infrastruktur erneut auf Abweichungen prüfen

Planen Sie eine Vorlage ausschließlich für Plan-Ausführungen, um Konfiguration mit Infrastruktur zu vergleichen, und bewahren Sie jede Planausgabe auf. Prüfen Sie den Plan auf Unterschiede.

Einen Zeitplan einrichten

Terraform konfigurieren und eine reine Plan-Ausführung starten

Von der Provisionierung zum konfigurierten Dienst fortfahren

Ein erfolgreicher Terraform-Schritt veröffentlicht Infrastruktur-Ausgaben automatisch. Ordnen Sie diese Werte den Eingaben einer Ansible-Aufgabe zu und prüfen Sie den konfigurierten Dienst anschließend mit Python. Workflows verbinden Jobs, ihre Daten sowie Erfolgs- und Fehlerpfade.

Anwendungsumgebung bereitstellenWorkflow
Infrastruktur bereitstellen
Bei ErfolgAusgaben → Eingaben
Dienste konfigurieren
Bei ErfolgAusgaben → Eingaben
Bereitstellung prüfen
Bei Fehler
Diagnosedaten sammeln

Workspaces, Eingaben und Zustand für Terraform-Jobs

Planung von Übernahme trennen

Wählen Sie Plan, um vorgeschlagene Änderungen zu prüfen, ohne sie anzuwenden. Apply ist eine getrennte Ausführung. Ein späteres Apply verwendet nicht automatisch die gespeicherte Ausgabe einer früheren Plan-Aufgabe.

Workspace und Eingaben wählen

Wählen Sie einen Terraform-Workspace über das Inventar-Feld der Vorlage. Nutzen Sie Variable Groups mit TF_VAR_-Namen für Eingaben. Die Workspace-Auswahl wählt nicht automatisch andere Variablen oder Zugangsdaten aus.

Eigenes Backend beibehalten oder das von Semaphore nutzen

Verwenden Sie das Backend aus Ihrem Terraform-Code weiter. Pro kann es durch das HTTP-Backend von Semaphore ersetzen, das Sperren, State-Versionen und Verwaltung über die Oberfläche bereitstellt.

Eine einheitliche Terraform-Laufzeitumgebung einrichten

Semaphore führt vor der Ausführung init aus. Richten Sie Terraform-Version, Provider, Zugangsdaten für private Module und API-Zugriff auf dem Server oder Runner ein, der den Job ausführt.

FAQ

Kann ich meine bestehenden Terraform-Konfigurationen in Semaphore ausführen?

Ja. Erstellen Sie ein Terraform Task Template mit Verweisen auf Repository und Konfigurationsverzeichnis. Wählen Sie seinen Workspace, übergeben Sie Eingaben über Variable Groups und richten Sie die erforderliche Terraform-Laufzeitumgebung ein. Semaphore führt Ihre Konfiguration aus und speichert Task-Ausgabe und Ausführungsstatus.

Muss ich Terraform-State nach Semaphore verlagern?

Nein. Terraform kann weiterhin das in Ihrem Code konfigurierte Backend verwenden. In Pro können Sie das HTTP-Backend von Semaphore für Zustandssperren, Versionshistorie und Verwaltung über die Oberfläche auswählen. Wählen Sie das Backend, das zu Ihrem bestehenden Zugriffs- und Wiederherstellungsverfahren passt.

Ändert die Auswahl eines Terraform-Workspace auch Variablen und Zugangsdaten?

Nein. Die Workspace-Auswahl bestimmt den Zustands-Workspace. Konfigurieren Sie benötigte Variablen und Zugangsdaten separat. Verwenden Sie bewusst kombinierte Task Templates und Variable Groups für Umgebungen mit unterschiedlichen Eingaben und machen Sie den vorgesehenen Umfang im Vorlagennamen deutlich.

Verwendet Apply den Plan eines früheren Tasks?

Ein späteres Apply verwendet nicht automatisch die gespeicherte Ausgabe einer früheren Plan-Aufgabe. Es sind getrennte Ausführungen. Prüfen Sie die vorgeschlagenen Änderungen mit Plan und wählen Sie anschließend den gewünschten Apply-Vorgang. Der Aufgabenverlauf bewahrt Ausgabe und Ergebnis jeder Ausführung auf.

Kann ein zeitgesteuerter Terraform-Plan helfen, Drift zu prüfen?

Ja. Planen Sie eine reine Plan-Vorlage und prüfen Sie ihre Ausgabe auf Unterschiede zwischen Konfiguration und Infrastruktur. Jede Ausführung wird aufgezeichnet. Das liefert einen wiederkehrenden Plan zur Prüfung, keine automatische Benachrichtigung für jede im Plan erkannte Abweichung.

Kann auf eine Terraform-Provisionierung die Konfiguration mit Ansible folgen?

Ja. Platzieren Sie das Terraform Task Template in einem Workflow vor einer Ansible-Vorlage und ergänzen Sie Prüfungen wie einen Python-Bereitschaftsjob. Konfigurieren Sie die Startbedingungen jedes Schritts. Terraform-Plan und -Zustand bleiben von der Workflow-Koordination getrennt.

Wie kann ich Terraform Variablen und Zugangsdaten übergeben?

Verknüpfen Sie Variable Groups mit der Vorlage. Verwenden Sie TF_VAR_-Namen für Terraform-Eingabevariablen und die von Ihren Providern erwarteten Umgebungswerte zur Authentifizierung. Bewahren Sie sensible Werte in Secret-Einträgen auf und richten Sie Modul- sowie Backend-Zugriff in der Ausführungsumgebung ein.

Ist das dasselbe wie der Semaphore-Terraform-Provider?

Nein. Diese Integration führt Ihre Terraform-Infrastrukturkonfigurationen als Semaphore-Tasks aus. Der Semaphore-Terraform-Provider arbeitet in die andere Richtung und verwaltet mit Terraform unterstützte Semaphore-Ressourcen. Beide Ansätze lassen sich unabhängig verwenden oder in Ihrer Einrichtung kombinieren.