allow_duplicates e idempotencia de roles
Controle la ejecución repetida de roles
allow_duplicates e idempotencia de roles es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.
Los roles se ejecutan una vez de forma predeterminada
Si dos roles dependen del mismo rol common, Ansible actúa de forma inteligente: ejecuta common una sola vez, no dos, durante un mismo play.
Por qué existe la deduplicación
Esta deduplicación evita que los roles de configuración compartidos repitan trabajo costoso, como volver a ejecutar un rol base de refuerzo de seguridad para cada rol de aplicación.
Mismo rol, mismos parámetros
El salto solo se aplica cuando el rol se solicita con los mismos parámetros. Las llamadas idénticas se consideran ya completadas.
Con parámetros distintos, se ejecuta de nuevo
Llame al mismo rol con variables diferentes y Ansible lo ejecutará otra vez. Un rol de hosts virtuales con dos configuraciones se aplicará dos veces, tal como necesita.
roles:
- role: vhost
vars: { name: site_a }
- role: vhost
vars: { name: site_b }Conozca allow_duplicates
La opción allow_duplicates de meta/main.yml controla este comportamiento. Establézcala en true y el rol podrá ejecutarse varias veces dentro de un play.
# meta/main.yml
allow_duplicates: trueCuándo permitir duplicados
Actívela para roles pensados para aplicarse muchas veces, como los que crean varios usuarios o hosts virtuales, cuando cada llamada realice trabajo nuevo.
El valor predeterminado es false
De forma predeterminada, allow_duplicates es false, por lo que un rol con parámetros idénticos se ejecuta una sola vez. Déjelo desactivado para los roles de configuración que solo se ejecutan una vez.
La deduplicación no es idempotencia
Omitir una llamada duplicada es una comodidad de ejecución. La verdadera idempotencia consiste en que cada tarea alcance un estado determinado, independientemente de cuántas veces se ejecute.
Cree tareas idempotentes
Dentro de un rol, prefiera módulos basados en el estado en lugar del módulo command sin procesar. Un rol realmente idempotente se puede aplicar dos veces sin causar daños.
include_role siempre se vuelve a ejecutar
Tenga cuidado: include_role no respeta la lógica de deduplicación de la misma manera. Un rol incluido dinámicamente se ejecuta cada vez que se llega a él.
Componibles y seguros
Combine la deduplicación, allow_duplicates y las tareas idempotentes para crear jerarquías de roles que se integren correctamente y sigan siendo seguras al volver a ejecutarse.
Comprobación rápida
Recuerde cuál es la configuración que permite ejecutar un rol más de una vez en un play.
Resumen
Ansible elimina las llamadas idénticas a un rol; establezca allow_duplicates en true para repetir una y mantenga las tareas idempotentes para poder ejecutarlas de nuevo de forma segura. ♻️
Preguntas frecuentes
¿La lección «allow_duplicates e idempotencia de roles» es gratis?
Sí — el texto completo de «allow_duplicates e idempotencia de roles» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué aprenderé en «allow_duplicates e idempotencia de roles»?
Controle la ejecución repetida de roles Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «allow_duplicates e idempotencia de roles»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Dependencias de roles en meta/main.yml
- defaults frente a vars: orden de sobrescritura
- include_role e import_role en tiempo de ejecución
- allow_duplicates e idempotencia de roles