Я пытаюсь напечатать ранее зарегистрированную mosh_version
переменную, используя команду ansible, debug msg
например:
- name: Print mosh version
debug: msg="Mosh Version: {{ mosh_version.stdout }}"
Это не работает и печатает следующую ошибку:
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 }}"
Я старался
- name: Print mosh version
debug: msg=Mosh Version: "{{ mosh_version.stdout }}"
но это будет просто напечатать "Mosh".
Какой лучший способ запустить это?
deployment
ansible
Zulakis
источник
источник
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]" ] } }
это работает, я действительно предпочел бы пользовательское сообщение, хотя ;-)Самый простой ответ
источник
Просто удалите двоеточие
источник
when
поэтому удаление двоеточия на самом деле является самым простым способом решить эту проблему. так что я голосую;)Я использую это, обратите внимание на расположение двойных кавычек (") и одинарных кавычек (')
источник
Каждый раз, когда у меня возникают проблемы со специальными символами в строках / командах Ansible, я делаю это:
Таким образом, ваша стандартная толстая кишка становится
{{':'}}
И ваша задача становится:
Опять же, это работает для большинства специальных символов, даже для строк. Учтите следующее:
Чтобы запустить это в Ansible, просто примените ту же логику, следующая задача выполняется должным образом:
источник