mit ansible set_fact Modul persistente Fakten zu definieren?

10

Ich möchte ein Playbook definieren, das Fakten über meine Hosts enthält, die in anderen Spielen verwendet werden können. Das set_fact-Modul behauptet, dies tun zu können ... Ссылка - aber es funktioniert nicht ... Die Fakten, die ich habe definiere sind nach dem Aufruf von set_fact innerhalb eines Laufs des Spielbuchs verfügbar - ich würde dann erwarten, in der Lage zu sein, ansible all -m setup zu verwenden und die Tatsache irgendwo innerhalb der für jeden Host gesammelten Fakten zu sehen ...

Ich habe versucht, den Code für das set_fact-Modul zu untersuchen - aber alles, was ich finde, ist Dokumentationsstring ... Ссылка

    
Ben 13.03.2015, 00:23
quelle

3 Antworten

2

Erstens legt das Modul set_fact nur während eines Laufs verfügbare Fakten fest. Für persistente Fakten müssen Sie entweder:

  

- Statisch -

     
  • definiere sie in einer der folgenden:      
    • vars /
    •   
    • group_vars /
    •   
    • host_vars /
    •   
  •   

- Dynamisch -

     
  • Weisen Sie sie über die dynamische Sprache von Ansible den Hosts zu, die Ihre bevorzugte Sprache verwenden:

         
  •   

Letzteres ist das, was ich normalerweise gewählt habe, da es ziemlich einfach einzurichten ist und die Fakten immer auf allen Hosts verfügbar sind, auch wenn Sie etwas tun wie:

  
  • alle Fakten für alle Hosts erhalten, während sie mit einem nagios-Host verbunden sind, um ihre Konfigurationsdateien zu generieren.
  •   
    
senorsmile 22.09.2015, 18:25
quelle
1

Welche Version von Ansible verwenden Sie? Ab Version 1.8 gibt es eine integrierte Funktion zum Zwischenspeichern von Fakten , die jedoch standardmäßig deaktiviert ist. Sie müssten es in Ihrer ansible.cfg-Datei aktivieren, und Sie müssen auch einen Redis-Server ausführen, da dies die Fakten tatsächlich zwischenspeichert.

    
Bruce P 13.03.2015 13:34
quelle
0

Wenn ein remote verwaltetes System über das Verzeichnis /etc/ansible/facts.d verfügt, können alle Dateien in diesem Verzeichnis, die auf .fact enden, JSON-, INI- oder ausführbare Dateien sein, die JSON zurückgeben, und diese können in Ansible lokale Fakten liefern , seit 1.3. Ein alternatives Verzeichnis kann mit der play-Anweisung fact_path angegeben werden.

Ссылка

    
bbaassssiiee 23.05.2017 16:40
quelle

Tags und Links