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/hosts
archivo 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.cfg
vivir 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?
tasks
hacer cosas. playbooks
organizar y lanzar tareas. roles
organizar grupos de tareas, manipuladores, etc. que realizan una función particular. Se playbook
necesita algo para iniciar el role
(los). ¿Cómo llamarías una colección de roles
y playbooks
? Digamos, por ejemplo, uno que gestiona la configuración de todos los hosts de su sitio.