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: webappLes 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: lb1Pourquoi 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 appVé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: 3Ré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: lb1max_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: 20run_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: trueLa 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
- Concevoir le projet : rôles et inventaire
- Provisionner, renforcer et amorcer les hôtes
- Déploiement progressif derrière l’équilibreur de charge
- Tests rapides, restauration et notifications