allow_duplicates et idempotence des rôles
Contrôlez l’exécution répétée des rôles.
allow_duplicates et idempotence des rôles est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 4 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.
Les rôles ne s’exécutent qu’une fois par défaut
Si deux rôles dépendent tous deux du rôle common, Ansible est assez intelligent pour n’exécuter common qu’une seule fois, et non deux, au cours d’une même exécution.
Pourquoi la déduplication existe
Cette déduplication empêche les rôles de configuration partagés de répéter un travail coûteux, comme le renforcement d’un rôle de base pour chaque rôle applicatif.
Même rôle, mêmes paramètres
Le saut ne s’applique que lorsque le rôle est demandé avec les mêmes paramètres. Les appels identiques sont considérés comme déjà effectués.
Des paramètres différents entraînent une nouvelle exécution
Appelez le même rôle avec des variables différentes et Ansible l’exécutera à nouveau. Un rôle d’hôte virtuel avec deux configurations est appliqué deux fois, comme vous le souhaitez.
roles:
- role: vhost
vars: { name: site_a }
- role: vhost
vars: { name: site_b }Découvrez allow_duplicates
Le paramètre allow_duplicates de meta/main.yml contrôle ce comportement. Définissez-le à true et le rôle pourra s’exécuter plusieurs fois au cours d’une exécution.
# meta/main.yml
allow_duplicates: trueQuand autoriser les doublons
Activez cette option pour les rôles conçus pour être appliqués plusieurs fois, comme lors de la création de plusieurs utilisateurs ou hôtes virtuels, chaque appel réalisant un travail réellement nouveau.
La valeur par défaut est false
Par défaut, allow_duplicates vaut false : un rôle appelé avec des paramètres identiques ne s’exécute donc qu’une seule fois. Laissez cette option désactivée pour les rôles de configuration ponctuelle.
La déduplication n’est pas l’idempotence
Ignorer un appel en double est une commodité d’exécution. La véritable idempotence signifie que chaque tâche converge vers un état donné, quelle que soit la fréquence de son exécution.
Concevez des tâches idempotentes
Dans un rôle, préférez les modules fondés sur l’état aux commandes brutes. Un rôle réellement idempotent peut être appliqué deux fois sans conséquence néfaste.
include_role s’exécute toujours à nouveau
Attention : include_role ne respecte pas la logique de déduplication de la même manière. Un rôle inclus dynamiquement s’exécute chaque fois que vous l’atteignez.
Composable et sûr
Combinez la déduplication, allow_duplicates et des tâches idempotentes pour créer des hiérarchies de rôles qui se composent proprement et restent sûres à réexécuter.
Vérification rapide
Rappelez-vous le paramètre qui permet à un rôle de s’exécuter plusieurs fois dans un scénario.
Récapitulatif
Ansible élimine les appels identiques à un rôle ; définissez allow_duplicates sur true pour en répéter un, et veillez à rendre les tâches idempotentes pour des réexécutions sûres. ♻️
Questions Fréquemment Posées
La leçon « allow_duplicates et idempotence des rôles » est-elle gratuite ?
Oui — le texte complet de « allow_duplicates et idempotence des rôles » 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 « allow_duplicates et idempotence des rôles » ?
Contrôlez l’exécution répétée des rôles. 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 4 sur 4.
Combien de temps prend la leçon « allow_duplicates et idempotence des rôles » ?
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
- Dépendances de rôles dans meta/main.yml
- defaults ou vars : ordre de remplacement
- include_role et import_role à l’exécution
- allow_duplicates et idempotence des rôles