Le moyen le plus rapide pour recueillir des informations à fait cache
Je suis en train de faire Ansible travailler avec --limit et pour ce faire j'ai besoin de faits sur d'autres hôtes, dont je suis la mise en cache avec fact_caching. Quelle commande dois-je exécuter de sorte qu'il rassemble simplement tous les faits sur tous les hôtes et les caches, sans exécuter les tâches? Quelque chose comme la module de configuration serait parfait si il cache les faits qu'il a réunis, mais il semble que cela ne fonctionne pas.
Vous devez vous connecter pour publier un commentaire.
Voici comment je voudrais résoudre le problème:
1.- Permettre à des faits de collecte sur votre playbook (site.yml):
2.- Activer des faits de mise en cache sur ansible.cfg:
2.1.- Option 1 - Utilisez ceci si vous avez le temps d'installer le redis:
2.2.- Option 2 - l'Utilisation de ce test à l'heure actuelle est simple mais plus lent que le redis:
3.- Mise à jour ou de créer des faits cache. Pour ce faire, créez un nouveau rôle (cache de mise à jour) avec une seule mission: exécuter ping. Nous utilisons ping parce que c'est le plus simple et le plus rapide ansible tâche, de sorte qu'il va nous aider à mettre à jour le cache très rapide:
Salutations,
La création d'un nouveau playbook avec une seule ligne:
et en cours d'exécution, il recueille tous les faits, et si fact_caching est sur, il va mettre en cache pour une utilisation dans les futures tablettes playbook avec --limit.
L'absolu le plus rapide serait de rendre l'utilisation de l'Ansible est fait de la mise en cache qui a été introduit dans la version 1.8. Il nécessite l'utilisation de redis serveur pour stocker les faits, mais il vous permettra de stocker les faits entre playbook s'exécute. La documentation décrit:
Le problème avec --limite est qu'elle limite le nombre de tous les hôtes qui vous ansible va interagir avec, et alors il se limite même de ce groupe spécial d'hôte comme
all
aura un impact. Si vous n'utilisez pas --limite, mais plutôt utilisé l'accueil de groupes, alors vous pourriez faire quelque chose comme ceci:Dans cet exemple, le premier jeu force le recueil de données pour tous les hôtes que vous avez fait depuis que vous avez spécifié
hosts: all
. Le deuxième jeu serait alors effectuer les tâches désirées sur les hôtes du groupemy_host_group
.setup
, et cibleall
hôtes? De cette façon, vos faits sont toutes mises en cache sans mises à jour du système.Voici un exemple montrant comment utiliser
/usr/bin/ansible
pour exécuter un travail ad hoc qui rassemble les faits et les stocke dans le répertoire spécifié.Voici le contenu de
facts.cfg
Et un exemple de l'hôte de sortie