2016-04-11 4 views
0

Ich schreibe ein Ansible-Playbook, das einen Agenten eines Überwachungssystems installiert und konfiguriert, das meine Firma benutzt. Einer der Schritte, die für die erfolgreiche Konfiguration des Agenten erforderlich sind, besteht darin, bestimmte Anweisungen in der Datei nagios.cfg zu konfigurieren.Was ist der richtige Weg, um einen Dateipfad aus 2 oder mehr möglichen Pfaden innerhalb eines Ansible-Playbooks zu erkennen?

Die nagios.cfg kann auf zwei verschiedenen Pfaden basierend auf der Art der Installation (Paketmanager/aus Quelle) liegen.

Die beiden relevanten Pfade sind:

/usr/local/nagios/etc/nagios.cfg 
/etc/nagios3/nagios.cfg 

Was will ich ansible zu tun, den richtigen Weg zu finden und sie dann in eine Variable einzufügen, die ich in den folgenden Konfigurationsschritte nutzen können werden.

Ich habe mit dieser begonnen:

- stat: path=/usr/local/nagios/etc/nagios.cfg 
    register: nag_conf_usrlocal 
    when: nag_conf_usrlocal.stat.exists 

Ich dachte über die Datei in der ersten Stelle besagt, verstehen, wenn es existiert, und wenn ja, dann auf eine Variable setzen Sie sie und wenn es nicht dort dann die Der nächste Pfad sollte angegeben werden. Wenn die Datei dort vorhanden ist, sollte die Variable den korrekten Pfad enthalten, in dem sich die Datei befindet.

Wie kann es gemacht werden?

Antwort

0

Was Sie getan haben, ist nicht falsch, es braucht nur etwas Befestigung:

- stat: path=/usr/local/nagios/etc/nagios.cfg 
    register: nag_conf_usrlocal 

- stat: path=/etc/nagios3/nagios.cfg 
    register: nag_conf_etc 
    when: nag_conf_usrlocal.stat.exists 

- set_fact: 
    nagios_path: "/usr/local/nagios/etc/nagios.cfg" 
    when: nag_conf_usrlocal.stat.exists 

- set_fact: 
    nagios_path: "/etc/nagios3/nagios.cfg" 
    when: nag_conf_etc.stat.exists 

Dies ist wahrscheinlich nicht die beste Lösung, aber es ist Ihnen eine Ãœbersicht zu geben, wie dies erreicht werden könnte.

Verwandte Themen