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 planWorkflow 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-colorManuelle 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-approveInfrastruktur 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."
fiKontrollierte 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-approveBewä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 applyundterraform 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
- IaC mit Terraform und GitHub Actions
- Cloud-Ressourcen verwalten
- Infrastrukturaktualisierungen automatisieren
- Terraform-Status und Remote-Backends verwalten