ansibl 1.9.2 zawiera błąd (https://github.com/ansible/ansible/issues/10864), która zawiedzie wstawić uciekły cudzysłowów na początku lub na końcu linii.
przykład następujące
- name: /home/core/linetest
lineinfile: dest="/home/core/linetest" line="\"ma\"ok\"in\""
spowoduje brakuje pierwszy i ostatni cudzysłowia (nawet jeśli go uciec).
#/home/core/linetest
ma"ok"in
Aby zrekompensować ten błąd, można dodać PREFIX do początkowych i końcowych podwójnych cudzysłowów, a następnie usunąć.
- 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=""
które powinny dać
#/home/core/linetest
"main"
Upewnij się, że wybrane PREFIKSÓW nigdy nie zostaną wykorzystane w kontekście pliku docelowego. Ogólnie rzecz biorąc, im dłuższy i bardziej losowy jest PREFIX, tym mniej prawdopodobne jest, że będzie on kolidował z istniejącą treścią w pliku docelowym.
Alternatywnie, możesz uaktualnić swój Ansible do najnowszego oddziału.
Bezpośrednie wyjście nie działa. Błąd składni został zgłoszony. – eldos
@eldos, edytuj swoje pytanie i podaj błąd składni. Z powodzeniem wykonałem te linie na nowoczesnej wersji Ansible. – tedder42