0Pricing
Ansible Academy · Leçon

Déploiement progressif derrière l’équilibreur de charge

Déployez en série sans interruption de service.

Déploiement progressif derrière l’équilibreur de charge est une leçon Ansible Academy 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 Ansible Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ansible Academy comprend 4 leçons au total.

L’absence d’interruption est la promesse

Mettez à jour tous les nœuds web sans perdre une seule requête. L’astuce est un déploiement progressif : modifier quelques hôtes à la fois. 🔄

serial contrôle le lot

Ajoutez serial à votre play afin qu’Ansible traite les hôtes par petites vagues plutôt que tous en même temps.

- hosts: web
  serial: 1
  tasks:
    - import_role:
        name: webapp

Les pourcentages fonctionnent aussi

serial accepte un pourcentage ou une liste de tailles, ce qui vous permet de progresser par étapes : d’abord un canari, puis des lots plus importants.

serial:
  - 1
  - 25%
  - 50%

Drainer avant d’intervenir

Avant de mettre à jour un nœud, retirez-le de la rotation. Utilisez delegate_to pour demander au répartiteur de charge de cesser de lui envoyer du trafic.

- name: Drain node
  community.general.haproxy:
    state: disabled
    host: "{{ inventory_hostname }}"
  delegate_to: lb1

Pourquoi utiliser delegate_to pour le LB

L’hôte web ne peut pas se désactiver lui-même dans le répartiteur ; c’est le répartiteur de charge qui doit le faire. delegate_to exécute cette tâche sur lb1 pour chaque hôte web.

Déployer la nouvelle version

Une fois le nœud drainé, déployez le code, générez la configuration et laissez un gestionnaire recharger le service applicatif pour cet hôte uniquement.

- name: Pull release
  ansible.builtin.git:
    repo: "{{ app_repo }}"
    version: "{{ app_version }}"
    dest: /srv/app
  notify: Reload app

Vérifier l’état avant la réactivation

Vérifiez que le nœud est sain avec uri avant d’y renvoyer les utilisateurs. Ne réintégrez jamais un hôte défaillant au pool.

- name: Wait for health
  ansible.builtin.uri:
    url: http://localhost:8080/health
    status_code: 200
  retries: 5
  delay: 3

Réactiver dans le répartiteur

Une fois le nœud sain, remettez-le dans la rotation, à nouveau via delegate_to vers le répartiteur de charge. Le trafic est alors dirigé vers la nouvelle version.

- name: Enable node
  community.general.haproxy:
    state: enabled
    host: "{{ inventory_hostname }}"
  delegate_to: lb1

max_fail_percentage vous protège

Définissez max_fail_percentage afin que le déploiement s’arrête si trop d’hôtes échouent, empêchant une mauvaise version de continuer à se propager.

- hosts: web
  serial: 1
  max_fail_percentage: 20

run_once pour les étapes partagées

Certaines étapes, comme une migration unique de la base de données, ne doivent être exécutées qu’une seule fois. Utilisez run_once afin qu’un seul hôte les exécute.

- name: Migrate db
  ansible.builtin.command: /srv/app/migrate
  run_once: true

La boucle complète

Pour chaque hôte : drainer, déployer, vérifier l’état, réactiver. serial répète cette boucle par vagues sûres jusqu’à la mise à jour du parc. ✅

Vérification rapide

Un mot-clé permet à l’étape LB de fonctionner.

Récapitulatif

Vous avez créé un déploiement progressif : des lots contrôlés par serial, le drainage et la réactivation via delegate_to, des contrôles d’état et une protection contre les échecs. Aucune interruption. 🟢

Questions Fréquemment Posées

La leçon « Déploiement progressif derrière l’équilibreur de charge » est-elle gratuite ?

Oui — le texte complet de « Déploiement progressif derrière l’équilibreur de charge » 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 Ansible Academy, passe à CoddyKit PRO. Le cours Ansible Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Déploiement progressif derrière l’équilibreur de charge » ?

Déployez en série sans interruption de service. Tu pratiques Ansible Academy 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 Ansible Academy ?

Aucune expérience préalable n'est requise. Ansible Academy 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 « Déploiement progressif derrière l’équilibreur de charge » ?

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 Ansible Academy ?

Oui. Chaque leçon Ansible Academy 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. Concevoir le projet : rôles et inventaire
  2. Provisionner, renforcer et amorcer les hôtes
  3. Déploiement progressif derrière l’équilibreur de charge
  4. Tests rapides, restauration et notifications
← Retour à Ansible Academy