Al crear una nueva función Ansible, la plantilla crea varsun defaultsdirectorio ay un directorio con un main.ymlarchivo vacío . Al definir mi rol, puedo colocar definiciones variables en cualquiera de estos, y estarán disponibles en mis tareas.
¿Cuál es la diferencia entre poner las definiciones en defaultsy vars? ¿Qué debería entrar defaultsy qué debería entrar vars? ¿Tiene sentido usar ambos para los mismos datos?
Sé que hay una diferencia de precedencia / prioridad entre los dos, pero me gustaría entender qué debería ir a dónde.
Digamos que mi rol crearía una lista de directorios en el sistema de destino. Me gustaría proporcionar una lista de directorios predeterminados que se crearán, pero me gustaría permitir que el usuario los anule al usar el rol.
Así es como se vería esto:
---
- directories:
- foo
- bar
- baz
Podría colocar esto en el defaults/main.ymlo en el vars/main.yml, desde una perspectiva de ejecución, no haría ninguna diferencia, pero ¿a dónde debería ir?
defaultsy quévarsmás abajo.