Automatisation des mises à jour de l’infrastructure
Mettez en œuvre des flux de travail pour planifier, appliquer et annuler en toute sécurité les modifications de l’infrastructure, avec des étapes de revue et d’approbation.
Automatisation des mises à jour de l’infrastructure est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.
Pourquoi automatiser les mises à jour de l'IaC
La gestion manuelle de l'infrastructure peut être lente et sujette aux erreurs. L'infrastructure sous forme de code (IaC) vous aide en définissant votre infrastructure dans du code.
L'automatisation des mises à jour de l'IaC avec des outils tels que GitHub Actions apporte cohérence et rapidité, tout en réduisant les erreurs humaines. Elle garantit que votre infrastructure correspond toujours à sa définition.
Le cycle de vie d'un flux de travail IaC
L'automatisation de l'IaC suit un cycle clair : planification, application et parfois destruction. Chaque étape peut être intégrée à votre chaîne CI/CD.
- Planification : Examinez les modifications proposées sans les appliquer.
- Application : Mettez en œuvre les modifications planifiées dans votre infrastructure.
- Destruction : Supprimez les ressources de l'infrastructure (à utiliser avec une extrême prudence !).
GitHub Actions vous aide à gérer ces étapes en toute sécurité.
Planifier les modifications avec Terraform
Avant d'effectuer des modifications, il est essentiel de savoir ce qui va se passer. La commande plan de Terraform vous aide à prévisualiser les modifications de l'infrastructure.
Elle compare l'état souhaité (défini dans le code) à l'état actuel de votre infrastructure et vous indique quelles ressources seront ajoutées, modifiées ou détruites.
Essayez d'exécuter ces commandes dans un projet Terraform simple :
echo "Initializing Terraform..."
terraform init
echo "Running terraform plan..."
terraform planFlux de travail pour `terraform plan`
Créons un flux de travail GitHub Actions qui exécute automatiquement terraform plan chaque fois que du code est envoyé vers votre branche principale. Vous obtenez ainsi immédiatement un retour sur les modifications proposées.
La sortie de la planification peut ensuite être examinée directement dans la demande de tirage ou les journaux du flux de travail.
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-colorApprobation manuelle avec des environnements
L'application automatique de modifications à l'infrastructure peut être risquée. Les environnements GitHub permettent d'ajouter des étapes d'approbation manuelle à vos flux de travail.
Vous pouvez définir des environnements (par exemple, « préproduction » et « production ») et configurer des règles, comme l'obligation de faire intervenir certains réviseurs ou de respecter des délais d'attente avant qu'une tâche de déploiement puisse se poursuivre.
Cela ajoute une barrière essentielle de contrôle humain avant les opérations sensibles.
Flux de travail pour appliquer les modifications
Pour appliquer les modifications en toute sécurité, nous allons configurer un flux de travail qui cible un environnement GitHub protégé. La tâche se mettra en pause et attendra l'approbation de membres désignés de l'équipe.
La commande terraform apply ne s'exécutera qu'après l'approbation et mettra alors votre infrastructure à jour.
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-approveDétruire l'infrastructure en toute sécurité
La commande terraform destroy supprime définitivement toutes les ressources définies dans votre configuration Terraform. Il s'agit d'une opération très puissante et potentiellement dangereuse.
Elle ne doit être utilisée que dans des scénarios précis et contrôlés, comme la suppression d'un environnement temporaire d'essai. Vérifiez toujours attentivement les éléments concernés avant de continuer !
N'automatisez jamais un `destroy` sans barrières manuelles strictes et confirmations multiples.
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."
fiDestruction contrôlée de l'infrastructure
Même pour `destroy`, vous pouvez tirer parti des environnements GitHub afin d'ajouter un niveau de protection supplémentaire. Cela garantit que personne ne puisse détruire accidentellement ou malicieusement des ressources de production sans autorisation appropriée.
Le flux de travail doit exiger une approbation et ne pouvoir être déclenché que manuellement, idéalement par des rôles précis.
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-approveBonnes pratiques d'automatisation de l'IaC
Pour maintenir une chaîne IaC robuste et sécurisée :
- Revues de code : Exigez toujours des revues de code pour les modifications de l'IaC.
- Moindre privilège : Accordez aux jetons des flux de travail et aux comptes de service uniquement les autorisations minimales nécessaires.
- Verrouillage de l'état : Assurez-vous que votre outil IaC, comme Terraform, utilise le verrouillage de l'état afin d'empêcher les modifications concurrentes.
- Modifications petites et progressives : Évitez les mises à jour importantes et monolithiques de l'infrastructure.
- Environnements séparés : Utilisez des environnements distincts (développement, préproduction, production) avec des règles d'approbation différentes.
Vérification du flux de travail IaC
Vous avez appris à automatiser les mises à jour de l'IaC grâce à la planification, à l'application et à la destruction des ressources. À présent, vérifions votre compréhension de la sécurisation de ces processus.
Récapitulatif : mises à jour automatisées de l'IaC
Dans cette leçon, vous avez appris à automatiser vos flux de travail d'infrastructure sous forme de code avec GitHub Actions. Nous avons vu :
- Exécuter
terraform planpour prévisualiser les modifications en toute sécurité. - Utiliser les environnements GitHub comme barrières d'approbation manuelle avant d'appliquer ou de détruire l'infrastructure.
- Mettre en œuvre des flux de travail pour contrôler les opérations
terraform applyetterraform destroy. - Les principales bonnes pratiques pour une automatisation IaC sécurisée et fiable.
L'automatisation de l'IaC vous aide à gérer vos ressources infonuagiques efficacement et en toute confiance !
Questions Fréquemment Posées
La leçon « Automatisation des mises à jour de l’infrastructure » est-elle gratuite ?
Oui — le texte complet de « Automatisation des mises à jour de l’infrastructure » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Automatisation des mises à jour de l’infrastructure » ?
Mettez en œuvre des flux de travail pour planifier, appliquer et annuler en toute sécurité les modifications de l’infrastructure, avec des étapes de revue et d’approbation. Tu pratiques DevOps Bootcamp avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer DevOps Bootcamp ?
Aucune expérience préalable n'est requise. DevOps Bootcamp sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Automatisation des mises à jour de l’infrastructure » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon DevOps Bootcamp ?
Oui. Chaque leçon DevOps Bootcamp inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- IaC avec Terraform et GitHub Actions
- Gestion des ressources infonuagiques
- Automatisation des mises à jour de l’infrastructure
- Gérer l’état Terraform et les services dorsaux distants