Ansible de Collecte de Faits avec Filtre à l'intérieur d'un Playbook
Je suis en train de travailler sur un rôle qui ne doit rassembler un fait unique.
Performance c'est une préoccupation, et je sais que le fait de rassembler les faits c'est beaucoup de temps.
Je suis à la recherche pour certains moyen de filtrer gather_facts
à l'intérieur d'un playbook, cela me permettra de ne recueillir que le nécessaire faits.
Ceci est possible en utilisant la configuration de base du module:
ansible -m setup -a 'filter=ansible_hostname' my_host
10.200.0.127 | success >> {
"ansible_facts": {
"ansible_hostname": "my_host"
},
"changed": false
}
Il est possible d'utiliser cette fonctionnalité à l'intérieur de la playbook? Quelque chose comme ceci?
- hosts: all
sudo: yes
gather_facts: True
filter: "filter=ansible_*"
PS: Le code ci-dessus jette syntaxe exception.
EDIT 1: Si quelqu'un a besoin d'obtenir le nom d'hôte il y a aussi une autre variable utile inventory_hostname.
OriginalL'auteur Bernardo Vale | 2015-12-27
Vous devez vous connecter pour publier un commentaire.
Oui, c'est possible, mais pas dans le comportement par défaut de rassembler des faits. Avoir mis
gather_facts
àtrue
appelle simplement la module de configuration comme première tâche de la pièce. De cette façon, vous n'avez aucun moyen de paramétrer lesetup
module d'appel.Mais vous pouvez désactiver le comportement par défaut et la configuration de l'appel vous-même avec les paramètres de filtre.
Puisque vous travaillez sur un rôle et peut ne pas avoir cette configuration appel dans votre rôle, vous pourriez faire usage de pre_tasks.
OriginalL'auteur udondan
Après cette question a été posée et répondue, Ansible 2.1 ajouté
gather_subset
pour le module de configuration de sorte que son désormais possible d'utiliser le!facter,!ohai,network
syntaxe décrite dans la documentation plutôt que d'une regex filtre:OriginalL'auteur ZachP
L'Ansible chemin en haut de la playbook (Supplémentaire):
De débogage à vars avec:
OriginalL'auteur imjoseangel
Si vous êtes intéressé par le nom d'hôte de chaque hôte puis il suffit de faire quelque chose comme ça devrait faire ce que vous avez besoin de:
Si c'est un autre fait qui vous intéresse, puis il suffit de le préciser à la commande appropriée, et la référence à la réalité par le régime enregistré d'variable.
OriginalL'auteur Bruce P