Ich habe ein Playbook, das eine Konfigurationsdatei für alle angegebenen Hosts erstellen soll, auf meinem monitoring_sever.Wie man über alle angegebenen Hosts iteriert
- hosts: all
gather_facts: True
hosts: monitoring_server
tasks:
- command: touch {{ hostvars[item]['ansible_fqdn'] }}
with_items: "{{ groups['all'] }}"
ausführen ich das Textbuch mit ansible-playbook main.yml -l "new_client, new_client2, monitoring_server"
Die resultierenden Dateien auf dem Überwachungsserver wie folgt aussehen sollte:
client1.conf client2.conf über fehlende Anführungszeichen
Aber ich erhalte eine Fehlermeldung Ich habe alle möglichen Syntaxänderungen ausprobiert, aber ich kann das Problem nicht finden.
Das Problem ist, dass ich will Erstellen Sie die Dateien für alle Hosts, aber nur auf dem Monitoring-Server. Ich habe Touch nur für Debug-Zwecke verwendet. Die ursprüngliche Aufgabe besteht darin, eine Konfigurationsdatei mithilfe einer Vorlage zu kopieren. – David
Betrachte deine Frage genauer. Ich werde meine Antwort auch aktualisieren. –
Dafür, @David, fügen Sie einfach 'delegate_to: localhost' für die Aufgabe hinzu. – Jack