0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Lektion

Infrastrukturaktualisierungen automatisieren

Implementieren Sie Workflows, um Infrastrukturänderungen mit Prüfungs- und Freigabeschritten sicher zu planen, anzuwenden und zu zerstören.

Infrastrukturaktualisierungen automatisieren ist eine kostenlose CI/CD with GitHub Actions & DevOps Pipelines-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des CI/CD with GitHub Actions & DevOps Pipelines-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der CI/CD with GitHub Actions & DevOps Pipelines-Kurs umfasst insgesamt 4 Lektionen.

Warum IaC-Updates automatisieren?

Die manuelle Verwaltung von Infrastruktur kann langsam und fehleranfällig sein. Infrastructure as Code (IaC) hilft, indem die Infrastruktur in Code definiert wird.

Die Automatisierung von IaC-Updates mit Tools wie GitHub Actions sorgt für Konsistenz und Geschwindigkeit und reduziert menschliche Fehler. Sie stellt sicher, dass Ihre Infrastruktur immer ihrer Definition entspricht.

Lebenszyklus des IaC-Workflows

Die Automatisierung von IaC folgt einem klaren Lebenszyklus: plan, apply und manchmal destroy. Jeder Schritt kann in Ihre CI/CD-Pipeline integriert werden.

  • Plan: Überprüfen Sie die geplanten Änderungen, ohne sie anzuwenden.
  • Apply: Wenden Sie die geplanten Änderungen auf Ihre Infrastruktur an.
  • Destroy: Entfernen Sie Infrastrukturressourcen (mit äußerster Vorsicht verwenden!).

GitHub Actions hilft Ihnen, diese Schritte sicher zu verwalten.

Änderungen mit Terraform planen

Bevor Sie Änderungen vornehmen, sollten Sie unbedingt wissen, was geschehen wird. Der Terraform-Befehl plan hilft Ihnen, Änderungen an der Infrastruktur vorab anzuzeigen.

Er vergleicht den gewünschten Zustand (aus dem Code) mit dem aktuellen Zustand Ihrer Infrastruktur und zeigt, welche Ressourcen hinzugefügt, geändert oder zerstört werden.

Führen Sie diese Befehle in einem einfachen Terraform-Projekt aus:

echo "Initializing Terraform..."
terraform init

echo "Running terraform plan..."
terraform plan

Workflow für `terraform plan`

Erstellen Sie einen GitHub-Actions-Workflow, der bei jedem Push von Code in Ihren Main-Branch automatisch terraform plan ausführt. So erhalten Sie sofort eine Rückmeldung zu den geplanten Änderungen.

Die Ausgabe des Plans kann anschließend direkt im Pull Request oder in den Workflow-Protokollen überprüft werden.

name: 'Terraform Plan'

on:
  pull_request:
    branches:
      - main

jobs:
  terraform:
    name: 'Terraform Plan'
    runs-on: ubuntu-latest

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Plan
      id: plan
      run: terraform plan -no-color

Manuelle Genehmigung mit Environments

Die automatische Anwendung von Infrastrukturänderungen kann riskant sein. GitHub Environments bieten eine Möglichkeit, Ihren Workflows Schritte für eine manuelle Genehmigung hinzuzufügen.

Sie können Environments (z. B. "staging" und "production") definieren und Regeln festlegen, etwa die Anforderung bestimmter Prüfer oder Wartezeiten, bevor ein Bereitstellungsjob fortgesetzt werden darf.

So wird vor sensiblen Vorgängen eine wichtige menschliche Prüfstufe eingerichtet.

Workflow zum Anwenden von Änderungen

Um Änderungen sicher anzuwenden, konfigurieren Sie einen Workflow, der auf ein geschütztes GitHub Environment abzielt. Der Job wird angehalten und wartet auf die Genehmigung durch benannte Teammitglieder.

Erst nach der Genehmigung wird der Befehl terraform apply ausgeführt und Ihre Infrastruktur aktualisiert.

name: 'Terraform Apply'

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to deploy to'
        required: true
        default: 'staging'

jobs:
  terraform:
    name: 'Terraform Apply'
    runs-on: ubuntu-latest
    environment: ${{ github.event.inputs.environment }} # Target environment for approval

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Apply
      id: apply
      run: terraform apply -auto-approve

Infrastruktur sicher zerstören

Der Befehl terraform destroy entfernt dauerhaft alle in Ihrer Terraform-Konfiguration definierten Ressourcen. Dies ist ein sehr leistungsfähiger und potenziell gefährlicher Vorgang.

Er sollte nur in bestimmten, kontrollierten Szenarien verwendet werden, etwa zum Stilllegen einer temporären Testumgebung. Überprüfen Sie immer alles sorgfältig, bevor Sie fortfahren!

Automatisieren Sie niemals ein `destroy` ohne strenge manuelle Freigabeschritte und mehrere Bestätigungen.

echo "Preparing to destroy infrastructure..."
terraform init
terraform plan -destroy
read -p "Are you absolutely sure you want to destroy ALL resources? (yes/no): " CONFIRM
if [ "$CONFIRM" = "yes" ]; then
  echo "Destroying infrastructure..."
  terraform destroy -auto-approve
else
  echo "Destroy operation cancelled."
fi

Kontrollierte Zerstörung von Infrastruktur

Auch für `destroy` können wir GitHub Environments als zusätzliche Schutzebene einsetzen. So wird verhindert, dass Produktionsressourcen versehentlich oder böswillig ohne ordnungsgemäße Autorisierung zerstört werden.

Der Workflow sollte eine Genehmigung erfordern und nur manuell ausgelöst werden können, idealerweise durch bestimmte Rollen.

name: 'Terraform Destroy'

on:
  workflow_dispatch:
    inputs:
      environment:
        description: 'Environment to destroy'
        required: true
        default: 'staging'

jobs:
  terraform:
    name: 'Terraform Destroy'
    runs-on: ubuntu-latest
    environment: ${{ github.event.inputs.environment }} # Target environment for approval

    steps:
    - name: Checkout repository
      uses: actions/checkout@v4

    - name: Setup Terraform
      uses: hashicorp/setup-terraform@v3

    - name: Terraform Init
      id: init
      run: terraform init

    - name: Terraform Destroy
      id: destroy
      run: terraform destroy -auto-approve

Bewährte Vorgehensweisen für die IaC-Automatisierung

So bleibt Ihre IaC-Pipeline robust und sicher:

  • Code-Reviews: Verlangen Sie für IaC-Änderungen immer Code-Reviews.
  • Geringste Berechtigungen: Gewähren Sie Workflow-Tokens und Dienstkonten nur die unbedingt erforderlichen Berechtigungen.
  • State-Locking: Stellen Sie sicher, dass Ihr IaC-Tool (z. B. Terraform) State-Locking verwendet, um gleichzeitige Änderungen zu verhindern.
  • Kleine, schrittweise Änderungen: Vermeiden Sie große, monolithische Infrastrukturänderungen.
  • Getrennte Umgebungen: Verwenden Sie separate Umgebungen (dev, staging, prod) mit unterschiedlichen Genehmigungsregeln.

Überprüfung des IaC-Workflows

Sie haben gelernt, wie sich IaC-Updates durch das Planen, Anwenden und Zerstören von Ressourcen automatisieren lassen. Testen wir nun Ihr Verständnis für die Absicherung dieser Prozesse.

Zusammenfassung: Automatisierte IaC-Updates

In dieser Lektion haben Sie gelernt, wie Sie Ihre Infrastructure-as-Code-Workflows mit GitHub Actions automatisieren. Behandelt wurden:

  • Das Ausführen von terraform plan, um Änderungen sicher vorab anzuzeigen.
  • Die Verwendung von GitHub Environments für manuelle Freigabestufen vor dem Anwenden oder Zerstören von Infrastruktur.
  • Die Implementierung von Workflows für kontrollierte Vorgänge mit terraform apply und terraform destroy.
  • Wichtige Best Practices für eine sichere und zuverlässige IaC-Automatisierung.

Mit der Automatisierung von IaC können Sie Ihre Cloud-Ressourcen effizient und sicher verwalten!

Häufig gestellte Fragen

Ist die Lektion „Infrastrukturaktualisierungen automatisieren“ kostenlos?

Ja — der vollständige Text von „Infrastrukturaktualisierungen automatisieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des CI/CD with GitHub Actions & DevOps Pipelines-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der CI/CD with GitHub Actions & DevOps Pipelines-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Infrastrukturaktualisierungen automatisieren“?

Implementieren Sie Workflows, um Infrastrukturänderungen mit Prüfungs- und Freigabeschritten sicher zu planen, anzuwenden und zu zerstören. Du übst CI/CD with GitHub Actions & DevOps Pipelines mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um CI/CD with GitHub Actions & DevOps Pipelines zu starten?

Keine Vorkenntnisse erforderlich. CI/CD with GitHub Actions & DevOps Pipelines auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „Infrastrukturaktualisierungen automatisieren“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser CI/CD with GitHub Actions & DevOps Pipelines-Lektion Code schreiben und ausführen?

Ja. Jede CI/CD with GitHub Actions & DevOps Pipelines-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. IaC mit Terraform und GitHub Actions
  2. Cloud-Ressourcen verwalten
  3. Infrastrukturaktualisierungen automatisieren
  4. Terraform-Status und Remote-Backends verwalten
← Zurück zu CI/CD with GitHub Actions & DevOps Pipelines