Plusieurs de mes livres de jeu ont une structure de sous-jeux comme celle-ci:
- hosts: sites
user: root
tags:
- configuration
tasks:
(...)
- hosts: sites
user: root
tags:
- db
tasks:
(...)
- hosts: sites
user: "{{ site_vars.user }}"
tags:
- app
tasks:
(...)
Dans Ansible 1.x, les administrateurs et les développeurs pouvaient utiliser un tel playbook. Les administrateurs pouvaient l'exécuter avec toutes les balises (accès root et utilisateur), tandis que les développeurs n'avaient accès qu'à la dernière balise avec des tâches au niveau de l'accès utilisateur. Lorsque les développeurs exécutent ce manuel avec la balise app, la collecte des faits a été ignorée pour les deux premières balises. Maintenant, cependant, dans Ansible 2.1, il n'est pas ignoré, ce qui entraîne une défaillance pour les utilisateurs sans accès root.
Existe-t-il un mécanisme ou une modification facile pour corriger ce comportement? Existe-t-il une nouvelle approche qui devrait être appliquée pour de tels cas maintenant?
Il existe un mod simple - désactivez la collecte des faits et appelez setup
explicitement:
- hosts: sites
user: root
tags:
- configuration
gather_facts: no
tasks:
- setup:
(...)