Jedes Mal, wenn ich mein Textbuch die folgende Warnung laufe aufkommt:Warnung, während eine Abbildung in ansible Konstruktion
[WARNUNG]: Während eine Abbildung von /etc/ansible/roles/foo/tasks/main.yml Konstruktion , Zeile 17, Spalte 3, gefunden ein doppelter Diktatschlüssel (Datei). Nur den zuletzt definierten Wert verwenden
Der relevante Teil meiner main.yml im Ordner Aufgaben ist wie folgt:
(Linie 17 ist die Aufgabe, die Dateien zu reinigen, die ein wenig abseits scheint also denke ich, das Problem mit dem ist vorherige "script" Linie)
- name: Run script to format output
script: foo.py {{ taskname }} /tmp/fcpout.log
- name: Clean temp files
file: path=/tmp/fcpout.log state=absent
Und meine vars-Datei:
---
my_dict: {SLM: "114", Regular: "255", Production: "1"}
taskid: "{{my_dict[taskname]}}"
auszuführen mein Textbuch ich tun:
ansible-playbook playbooks/foo.yml --extra-vars "server=bar taskname=SLM"
Was ich versuche die Hosts zu tun ist, die Befehlszeilenargumente zu nehmen, setzen: mit dem „Server“ Parameter, die Aufgabenname erhalten und daraus herausfinden, auf die ID verweist zu. Diese ID wird als erste Eingabe für mein Python-Skript verwendet, das remote ausgeführt wird.
Das Playbook funktioniert gut, aber ich verstehe nicht, warum ich eine Warnung bekomme. Kann mir jemand erklären, was hier falsch ist?
Sie haben Recht. Es gab eine zweite 'Datei:' Aufgabe. Ich bin nicht vertraut mit der ansprechbaren Formulierung, also habe ich das nicht mit "fand einen doppelten Diktatschlüssel (Datei)" es bezieht sich auf das Dateimodul. Mit dem Wort "Schlüssel" dachte ich, dass es mit meinem Wörterbuch zu tun hat ... Danke für die Hilfe. –
Sie können das auch bekommen, wenn Sie zwei "task:" - Schlüssel haben :) Szenario: Es gibt eine einzelne Aufgabe in einem Playbook und Sie haben es dupliziert, aber die Aufgabenüberschrift versehentlich kopiert. Kann das, was @udondan über fehlerhafte Zeilennummern sagt, auch sichern - ich habe Warnungen mehrere Zeilen entfernt gesehen. –