Próbuję wydrukować poprzednio zarejestrowaną mosh_version
zmienną za pomocą debug msg
polecenia ansible w następujący sposób:
- name: Print mosh version
debug: msg="Mosh Version: {{ mosh_version.stdout }}"
Nie działa i drukuje następujący błąd:
Note: The error may actually appear before this position: line 55, column 27
- name: Print mosh version
debug: msg="Mosh Version: {{ mosh_version.stdout }}"
^
We could be wrong, but this one looks like it might be an issue with
missing quotes. Always quote template expression brackets when they
start a value. For instance:
with_items:
- {{ foo }}
Should be written as:
with_items:
- "{{ foo }}"
próbowałem
- name: Print mosh version
debug: msg=Mosh Version: "{{ mosh_version.stdout }}"
ale to po prostu wypisze „Mosh”.
Jaki jest najlepszy sposób na uruchomienie tego?
deployment
ansible
Zulakis
źródło
źródło
TASK: [ Print mosh version] ************************************** ok: [127.0.0.1] => { "msg": "Mosh" }
ok: [127.0.0.1] => { "var": { "mosh_version.stdout_lines": [ "mosh 1.2.4a [build mosh-1.2.4-57-g9eeb2fb]" ] } }
to działa, ale naprawdę wolę niestandardową wiadomość ;-)Najprostsza odpowiedź
źródło
Po prostu usuń dwukropek
źródło
when
usuwania okrężnicy, tak naprawdę jest najprostszym sposobem rozwiązania tego problemu. więc głosuję;)Używam tego, zauważam lokalizację podwójnych cudzysłowów („) i pojedynczych cudzysłowów (')
źródło
Za każdym razem, gdy mam problemy ze znakami specjalnymi w Ansible strings / cmds, robię to:
Tak więc staje się twój standardowy dwukropek
{{':'}}
A Twoim zadaniem jest:
Ponownie działa to w przypadku większości znaków specjalnych, nawet ciągów znaków. Rozważ następujące:
Aby uruchomić to w Ansible, po prostu zastosuj tę samą logikę, następujące zadanie zostanie wykonane zgodnie z oczekiwaniami:
źródło