L'exemple que tu donne n'est pas un role, c'est un playbook normal que tu as mis dans le répertoire roles, mais n'importe où d'autre aurait fait l'affaire (puisque tu donne son chemin complet à ansible-playbook).
Les roles sont des répertoires (placés par défaut dans le répertoire roles que tu indique) avec une structure de sous-répertoires conventionnelle pour limiter les boilerplate. cf http://docs.ansible.com/ansible/playbooks_roles.html
Voici comment restructurer ton exemple en un vrai role (je fais ça de tête, je n'ai pas testé):
Tu crée un répertoire /etc/ansible/roles/common (common sera donc le nom de ce role), dedans tu fais un répertoire tasks dans lequel tu met un fichier mail.yml avec le contenu
-name:install common packages for all serversapt:update_cache=yesstate=latestname={{item}}with_items:-curl-htop-ncdu-pwgen-strace-sudo-tar-unzip-vim-wget-whois-screen
Ensuite, dans un fichier skhn.yml (que tu met où tu veux) tu met ceci:
-hosts:allremote_user:rootroles:[common]
Avec un exemple aussi simple, l'intérêt d'un role est simité par rapport à l'instruction include, ça devient plus intéressant quand tu y ajoute des handlers, des templates, des fichiers, des variables, car ça permet de regrouper les choses logiquement.
# roles et playbooks
Posté par wismerhill . En réponse au journal Déploiement et automatisation avec Ansible - partie 1. Évalué à 10.
L'exemple que tu donne n'est pas un role, c'est un playbook normal que tu as mis dans le répertoire roles, mais n'importe où d'autre aurait fait l'affaire (puisque tu donne son chemin complet à ansible-playbook).
Les roles sont des répertoires (placés par défaut dans le répertoire roles que tu indique) avec une structure de sous-répertoires conventionnelle pour limiter les boilerplate. cf
http://docs.ansible.com/ansible/playbooks_roles.html
Voici comment restructurer ton exemple en un vrai role (je fais ça de tête, je n'ai pas testé):
Tu crée un répertoire /etc/ansible/roles/common (common sera donc le nom de ce role), dedans tu fais un répertoire tasks dans lequel tu met un fichier mail.yml avec le contenu
Ensuite, dans un fichier skhn.yml (que tu met où tu veux) tu met ceci:
Avec un exemple aussi simple, l'intérêt d'un role est simité par rapport à l'instruction include, ça devient plus intéressant quand tu y ajoute des handlers, des templates, des fichiers, des variables, car ça permet de regrouper les choses logiquement.