2016-02-03 2 views
3

Je rencontre des problèmes lors de l'exécution d'un playbook complet, car certains des faits dont dépendent les jeux ultérieurs sont modifiés dans des jeux antérieurs, mais l'évolutivité ne met pas à jour les faits à mi-parcours.Est-il possible d'extraire des faits mis à jour au milieu d'un playbook?

Courir ansible somehost -m setup quand tout Playbook commence contre un nouveau VPS:

"ansible_selinux": { 
    "status": "disabled" 
}, 

Mon PlayBook contient un jeu qui installe SELinux et redémarre le serveur (alors que celui ansible wait_for), et une tâche plus tard utilise la when: ansible_selinux.status != 'disabled' conditionnelle. Cependant, même si SELinux est maintenant installé et appliqué (ce qui nécessitait le redémarrage), les données relatives au système indiquent toujours que SELinux est désactivé, de sorte que la condition échoue et que la tâche est ignorée.

Exécution du PlayBook à nouveau bien sûr fonctionne parce que les faits sont mis à jour et retourner maintenant:

"ansible_selinux": { 
    "config_mode": "enforcing", 
    "mode": "enforcing", 
    "policyvers": 28, 
    "status": "enabled", 
    "type": "targeted" 
} 

Est-il possible de faire des faits rafraîchir la mi-PlayBook? Peut-être que le hack est à set_fact sur ansible_selinux.status moi-même après le redémarrage?

Mise à jour: Eh bien, c'était trop facile, grâce à BruceP j'ajouté cette tâche à chercher des faits mis à jour à la fin de mon SELinux jouer

- name: SELinux - Force ansible to regather facts 
    setup: filter='ansible_selinux' 

Répondre

5

Le setup module est ce que Ansible utilise pour recueillir des faits. Il l'exécute implicitement avant d'exécuter votre playbook. Vous devriez être capable de l'exécuter manuellement dans votre playbook pour mettre à jour vos faits.

3

Ajoutez ceci dans votre manuel d'utilisation pour utiliser le module de configuration pour mettre à jour les faits.

Par exemple, j'ai ajouté une autre interface avec DHCP maintenant, je veux savoir quelle adresse il a faire alors ceci:

- name: do facts module to get latest information 
    setup: