0Pricing
CI/CD with GitHub Actions & DevOps Pipelines · Leçon

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 CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours CI/CD with GitHub Actions & DevOps Pipelines 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 plan

Flux 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-color

Approbation 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-approve

Dé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."
fi

Destruction 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-approve

Bonnes 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 plan pour 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 apply et terraform 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 CI/CD with GitHub Actions & DevOps Pipelines, passe à CoddyKit PRO. Le cours CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines ?

Aucune expérience préalable n'est requise. CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines ?

Oui. Chaque leçon CI/CD with GitHub Actions & DevOps Pipelines 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

  1. IaC avec Terraform et GitHub Actions
  2. Gestion des ressources infonuagiques
  3. Automatisation des mises à jour de l’infrastructure
  4. Gérer l’état Terraform et les services dorsaux distants
← Retour à CI/CD with GitHub Actions & DevOps Pipelines