Hacemos una revisión exhaustiva cada reseñas en nuestra web con la meta de enseñarte siempre la información con la mayor veracidad y certera.
Solución:
Puede lograr esto usando dependencias de roles.
En el mailinglist
rol bajo roles/mailinglist/meta/main.yml
agrega algo como esto:
---
dependencies:
- role: mailserver, transport_config: ...
Haga lo mismo para cualquier otro rol similar.
En respuesta a su comentario sobre un “constructor de configuración”, consulte el módulo ensamblar ansible. La parte complicada podría ser colocar todos los archivos en un solo lugar, antes de ejecutar el módulo ensamblado.
De lo contrario, la sugerencia de tima de host_ y group_vars tiene sentido.
Sé que esto tiene una respuesta larga, pero acabo de encontrar una solución viable y es un poco engañosa.
yo uso un tercero settings
rol, que no tiene tareas, solo variables en un defaults/main.yml
. Los documentos son un poco vagos al respecto, pero los valores aquí se propagan a todos. dependiente roles, por lo que si ambos roles dependen de settings
a través de su meta/main.yml
archivos, ambos obtienen un conjunto común de valores. Estos son reemplazables en las formas habituales, a través de un group_vars
expediente.
La sorpresa para mí fue que dado que, sí, el settings
role se usa más de una vez, no importa porque no hay tareas en él, y los datos pueden fluir desde allí hacia arriba en la cadena de dependencias.
Es una forma completamente nueva de flujo de datos en Ansible que no sabía que era posible.
Tienes la posibilidad recomendar esta noticia si te valió la pena.