Infrastructuurupdates automatiseren
Implementeer workflows om infrastructuurwijzigingen veilig te plannen, toe te passen en ongedaan te maken, met stappen voor beoordeling en goedkeuring.
Infrastructuurupdates automatiseren is een gratis CI/CD met GitHub Actions en DevOps-pijplijnen-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject CI/CD met GitHub Actions en DevOps-pijplijnen. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus CI/CD met GitHub Actions en DevOps-pijplijnen bevat in totaal 4 lessen.
Waarom IaC-updates automatiseren?
Infrastructuur handmatig beheren kan traag zijn en fouten veroorzaken. Infrastructure as Code (IaC) helpt hierbij door je infrastructuur in code te definiëren.
Het automatiseren van IaC-updates met hulpmiddelen zoals GitHub Actions zorgt voor consistentie en snelheid en vermindert menselijke fouten. Zo komt je infrastructuur altijd overeen met de definitie ervan.
De levenscyclus van een IaC-workflow
IaC-automatisering volgt een duidelijke levenscyclus: plannen, toepassen en soms vernietigen. Elke stap kan worden geïntegreerd in je CI/CD-pijplijn.
- Plannen: Bekijk voorgestelde wijzigingen zonder ze door te voeren.
- Toepassen: Voer de geplande wijzigingen door in je infrastructuur.
- Vernietigen: Verwijder infrastructuurresources (gebruik dit uiterst voorzichtig!).
GitHub Actions helpt je deze stappen veilig te beheren.
Wijzigingen plannen met Terraform
Voordat je wijzigingen aanbrengt, is het belangrijk om te weten wat er zal gebeuren. De opdracht plan van Terraform helpt je infrastructuurwijzigingen vooraf te bekijken.
De opdracht vergelijkt de gewenste toestand (uit de code) met de huidige toestand van je infrastructuur en laat zien welke resources worden toegevoegd, gewijzigd of vernietigd.
Probeer deze opdrachten uit te voeren in een eenvoudig Terraform-project:
echo "Initializing Terraform..."
terraform init
echo "Running terraform plan..."
terraform planWorkflow voor `terraform plan`
Laten we een GitHub Actions-workflow maken die automatisch terraform plan uitvoert wanneer code naar je hoofdtak wordt gepusht. Zo krijg je direct feedback over voorgestelde wijzigingen.
De uitvoer van het plan kan vervolgens rechtstreeks in de pull request of in de workflowlogboeken worden gecontroleerd.
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-colorHandmatige goedkeuring met omgevingen
Infrastructuurwijzigingen automatisch toepassen kan riskant zijn. GitHub Environments bieden een manier om stappen voor handmatige goedkeuring aan je workflows toe te voegen.
Je kunt omgevingen definiëren, bijvoorbeeld "staging" en "production", en regels instellen zoals de vereiste goedkeuring door specifieke beoordelaars of wachttijden voordat een implementatietaak mag doorgaan.
Zo voeg je een belangrijke menselijke controle toe voordat gevoelige bewerkingen worden uitgevoerd.
Workflow voor het toepassen van wijzigingen
Om wijzigingen veilig toe te passen, configureren we een workflow die is gericht op een beveiligde GitHub Environment. De taak wordt onderbroken en wacht op goedkeuring van aangewezen teamleden.
Pas na goedkeuring wordt de opdracht terraform apply uitgevoerd en je infrastructuur bijgewerkt.
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-approveInfrastructuur veilig vernietigen
De opdracht terraform destroy verwijdert permanent alle resources die in je Terraform-configuratie zijn gedefinieerd. Dit is een zeer krachtige en mogelijk gevaarlijke bewerking.
Gebruik deze opdracht alleen in specifieke, gecontroleerde situaties, zoals het afbreken van een tijdelijke testomgeving. Controleer altijd alles zorgvuldig voordat je doorgaat!
Automatiseer `destroy` nooit zonder strenge handmatige controles en meerdere bevestigingen.
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."
fiGecontroleerde vernietiging van infrastructuur
Zelfs voor `destroy` kunnen we GitHub Environments gebruiken voor een extra beveiligingslaag. Zo kan niemand per ongeluk of met kwade bedoelingen productieresources vernietigen zonder de juiste autorisatie.
De workflow moet goedkeuring vereisen en alleen handmatig kunnen worden gestart, bij voorkeur door specifieke 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-approveBest practices voor IaC-automatisering
Zo houd je een robuuste en veilige IaC-pijplijn in stand:
- Codebeoordelingen: Vereis altijd codebeoordelingen voor IaC-wijzigingen.
- Minimale bevoegdheden: Geef workflowtokens en serviceaccounts alleen de minimaal noodzakelijke rechten.
- Statusvergrendeling: Zorg ervoor dat je IaC-hulpmiddel, zoals Terraform, statusvergrendeling gebruikt om gelijktijdige wijzigingen te voorkomen.
- Kleine, stapsgewijze wijzigingen: Vermijd grote, monolithische infrastructuurupdates.
- Gescheiden omgevingen: Gebruik afzonderlijke omgevingen (dev, staging, prod) met verschillende goedkeuringsregels.
Controle van de IaC-workflow
Je hebt geleerd hoe je IaC-updates automatiseert door resources te plannen, toe te passen en te vernietigen. Laten we nu testen of je begrijpt hoe je deze processen beveiligt.
Samenvatting: geautomatiseerde IaC-updates
In deze les heb je geleerd hoe je je Infrastructure as Code-workflows automatiseert met GitHub Actions. We hebben het volgende behandeld:
- Veilig wijzigingen vooraf bekijken met
terraform plan. - GitHub Environments gebruiken voor handmatige goedkeuringscontroles voordat je infrastructuur toepast of vernietigt.
- Workflows implementeren voor gecontroleerde bewerkingen met
terraform applyenterraform destroy. - Belangrijke best practices voor veilige en betrouwbare IaC-automatisering.
Met IaC-automatisering beheer je je cloudresources efficiënt en met vertrouwen!
Leer CI/CD met GitHub Actions en DevOps-pijplijnen met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Infrastructuurupdates automatiseren” gratis?
Ja — de volledige tekst van “Infrastructuurupdates automatiseren” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus CI/CD met GitHub Actions en DevOps-pijplijnen wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus CI/CD met GitHub Actions en DevOps-pijplijnen bevat in totaal 4 lessen.
Wat leer ik in “Infrastructuurupdates automatiseren”?
Implementeer workflows om infrastructuurwijzigingen veilig te plannen, toe te passen en ongedaan te maken, met stappen voor beoordeling en goedkeuring. Je oefent met CI/CD met GitHub Actions en DevOps-pijplijnen door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met CI/CD met GitHub Actions en DevOps-pijplijnen te beginnen?
Ervaring vooraf is niet nodig. CI/CD met GitHub Actions en DevOps-pijplijnen op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Infrastructuurupdates automatiseren”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over CI/CD met GitHub Actions en DevOps-pijplijnen?
Ja. Elke les over CI/CD met GitHub Actions en DevOps-pijplijnen bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- IaC met Terraform en GitHub Actions
- Cloudresources beheren
- Infrastructuurupdates automatiseren
- Terraform-state en remote backends beheren