Eu tento imprimir a mosh_version
variável registrada anteriormente usando o debug msg
comando ansible como este:
- name: Print mosh version
debug: msg="Mosh Version: {{ mosh_version.stdout }}"
Não funciona e imprime o seguinte erro:
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 }}"
eu tentei
- name: Print mosh version
debug: msg=Mosh Version: "{{ mosh_version.stdout }}"
mas isso apenas imprimirá "Mosh".
Qual é a melhor maneira de fazer isso funcionar?
deployment
ansible
Zulakis
fonte
fonte
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]" ] } }
isso funciona, eu realmente prefiro a mensagem personalizada embora ;-)Resposta mais simples
fonte
Basta remover o cólon
fonte
when
para remover os dois pontos, na verdade, é a maneira mais simples de resolver isso. então eu votei;)Eu uso isso, observe a localização de aspas duplas (") e aspas simples (')
fonte
Sempre que tenho problemas com caracteres especiais em cadeias de caracteres Ansible / cmds, faço isso:
Então seu cólon padrão se torna
{{':'}}
E sua tarefa se torna:
Novamente, isso funciona para a maioria dos caracteres especiais, inclusive para as seqüências de caracteres. Considere o seguinte:
Para executar isso no Ansible, basta aplicar a mesma lógica, a seguinte tarefa é executada conforme o esperado:
fonte