Ansible 1.9.2 contiene un bug (https://github.com/ansible/ansible/issues/10864), che non riesce a inserire le virgolette doppie sfuggiti all'inizio o alla fine della linea.
ad esempio il seguente
- name: /home/core/linetest
lineinfile: dest="/home/core/linetest" line="\"ma\"ok\"in\""
si tradurrà in mancante prima e l'ultima virgolette doppie (anche se è sfuggito).
#/home/core/linetest
ma"ok"in
Per compensare questo errore, è possibile aggiungere un prefisso al di inizio e fine virgolette, e successivamente rimuoverlo.
- name: PREFIX first and last escaped double quotes with 'KUCF'
lineinfile: dest="/home/core/linetest" line="KUCF\"main\"KUCF"
- name: remove 'KUCF' PREFIX
replace: dest="/home/core/linetest" regexp="KUCF" replace=""
che dovrebbe dare
#/home/core/linetest
"main"
Assicurarsi che il prefisso scelto non verrà mai utilizzato nel contesto del file di destinazione. In generale, più PREFIX è lungo e più casuale, meno è probabile che si scontrerà con il contenuto esistente nel file di destinazione.
In alternativa, è possibile aggiornare il proprio Ansible all'ultima filiale.
fonte
2015-09-01 17:46:30
L'escape diretto non funziona. Errore di sintassi. – eldos
@eldos, si prega di modificare la domanda e dare l'errore di sintassi. Ho eseguito con successo quelle linee su una versione moderna di Ansible. – tedder42