Ogni volta che eseguo il mio playbook il seguente avviso viene in su:Attenzione mentre la costruzione di una mappatura in Ansible
[ATTENZIONE]: Durante la costruzione di una mappatura da /etc/ansible/roles/foo/tasks/main.yml , riga 17, colonna 3, trovato una chiave dict duplicata (file). Usando solo l'ultimo valore definito.
La parte rilevante della mia main.yml nella cartella compiti è come questo:
(linea 17 è il compito di pulire i file che sembra un po 'fuori quindi credo che il problema è con il precedente linea di "script")
- name: Run script to format output
script: foo.py {{ taskname }} /tmp/fcpout.log
- name: Clean temp files
file: path=/tmp/fcpout.log state=absent
E il mio file di Vars:
---
my_dict: {SLM: "114", Regular: "255", Production: "1"}
taskid: "{{my_dict[taskname]}}"
Per eseguire il mio playbook che faccio:
ansible-playbook playbooks/foo.yml --extra-vars "server=bar taskname=SLM"
Quello che sto cercando di fare è di prendere gli argomenti della riga di comando, impostare i padroni di casa: con il parametro "server", ottenere il taskname e da quel scoprire a cui si riferisce id a. Questo id è usato come primo input per il mio script python che viene eseguito da remoto.
Il playbook funziona bene, ma non capisco perché ricevo un avvertimento. Qualcuno potrebbe spiegare cosa c'è di sbagliato qui?
Sei corretto. C'era un secondo task 'file:'. Non ho familiarità con la dicitura ansible, quindi non ho ottenuto che con "trovato un duplicato dict key (file)" si stesse riferendo al modulo file. Con la parola "chiave" ho pensato che avesse a che fare con il mio dizionario ... Grazie per l'aiuto. –
Puoi ottenere questo se hai due chiavi "task:" troppo :) scenario: c'è una singola attività in un playbook e l'hai duplicata, ma anche copiata per errore l'intestazione dell'attività. È possibile eseguire il backup di ciò che @udondan dice anche sui numeri di riga errati - Ho visto degli avvertimenti su diverse righe. –