Según los documentos de Ansible, un Playbook es:
... la base para un sistema de implementación de múltiples máquinas y administración de configuración realmente simple, diferente a todos los que ya existen, y que es muy adecuado para implementar aplicaciones complejas.
Y, nuevamente, de acuerdo con esos mismos documentos, los roles son:
... formas de cargar automáticamente ciertos vars_files, tareas y manejadores basados en una estructura de archivo conocida. La agrupación de contenido por funciones también permite compartir funciones fácilmente con otros usuarios.
Sin embargo, la distinción entre estos y sus diferentes casos de uso no me resulta inmediatamente obvia. Por ejemplo, si configuro mi /etc/ansible/hostsarchivo para que se vea así:
[databases]
mydb01.example.org
mydb02.example.org
[mail_servers]
mymail01.example.org
mymail_dr.example.org
... entonces, ¿qué es esta " [databases]" entrada ... un rol ? ¿O el nombre de un archivo YAML de libro de jugadas en alguna parte? ¿¡¿O algo mas?!?
Si alguien pudiera explicarme las diferencias entre estos, ¡mi comprensión de Ansible mejoraría enormemente!
- Playbook vs Role vs
[databases]y entradas similares en/etc/ansible/hosts - Si los Playbooks se definen dentro de los archivos YAML, ¿dónde se definen los roles?
- Aparte de
ansible.cfgvivir en el servidor de Ansible, ¿cómo agrego / configuro Ansible con Playbooks / Roles disponibles? Por ejemplo, cuando corroansible-playbook someplaybook.yaml, ¿cómo sabe Ansible dónde encontrar ese libro de jugadas?
taskshacer cosas. playbooksorganizar y lanzar tareas. rolesorganizar grupos de tareas, manipuladores, etc. que realizan una función particular. Se playbooknecesita algo para iniciar el role(los). ¿Cómo llamarías una colección de rolesy playbooks? Digamos, por ejemplo, uno que gestiona la configuración de todos los hosts de su sitio.