Vous pouvez accéder à peu près à tous les faits / variables d'inventaire en procédant comme suit:
{{ hostvars['foo.example.com']['ansible_eth0']['ipv4']['address'] }}
ou, si vous voulez le faire via un index dans un groupe:
{{ hostvars[groups['collectors'][0]]['ansible_eth0']['ipv4']['address'] }}
Le gros truc est que vous devez collecter les faits pour tous les hôtes / groupes qui vous intéressent. Vous voudriez donc modifier votre livre de jeu qui fonctionne contre le groupe de journalistes afin d'inclure une tâche non-op (factice) appliquée au groupe de collectionneurs. Ansible collectera ainsi des informations sur les hôtes des collecteurs afin de pouvoir y accéder à partir du groupe de rapporteurs. Donc, vous voudrez peut-être ajouter quelque chose comme ceci en haut de votre classeur de journalistes:
- hosts: collectors
name: Gather facts from collectors
tasks: [ ]
Les crochets vides signifient en principe qu'aucune tâche ne sera exécutée, mais cela obligera Ansible à rassembler des informations sur les collecteurs afin que vous puissiez ensuite les référencer dans les tâches que vous exécutez contre vos journalistes.
Modifier # 1
Je me suis dit que je devrais aussi mentionner que depuis la version 1.8 de Ansible, une fonctionnalité de mise en cache des faits est maintenant disponible. La mise en cache des faits repose sur un serveur Redis pour stocker les faits entre les exécutions du livre de lecture. Lorsque cette fonction est activée, un livre de lecture peut faire référence à des faits obtenus par un autre livre de lecture exécuté précédemment. L'exemple de la documentation Ansible donne:
Imaginez, par exemple, une très grande infrastructure avec des milliers d’hôtes. La mise en cache des faits peut être configurée pour s'exécuter de nuit, mais la configuration d'un petit ensemble de serveurs peut s'exécuter de manière ponctuelle ou périodique tout au long de la journée. Avec la mise en cache des faits activée, il ne serait pas nécessaire de «toucher» tous les serveurs pour référencer les variables et les informations les concernant.