模板化字符串时出现模板错误:意外的 char u - Ansible
Template error while templating string: unexpected char u - Ansible
当对远程主机中的 运行 命令执行剧本并使用 shell 传递输出时,出现以下错误。
fatal: [master1]: FAILED! => {} MSG: template error while templating
string: unexpected char u'a' at 4. String:
{{54aa7fda16833bff8358b6bd1157df2d9caa26b2}}
下面是我的剧本内容
- name: 'Play1'
hosts: master
tasks:
- name: 'Execute command'
shell: ''sh generate_ticket.sh" #command to generate ticket
register: shell_output
- name: 'debug shell_output'
debug:
var="{{ shell_output.stdout | from_yaml }}"
当我对 msg 进行同样的尝试并且不尝试过滤时,输出会被打印而不会出现任何错误。但是我更喜欢使用 var,因为它最适合我的进一步要求。如果票号是不同的字符串,我不会遇到任何问题。请看下面:
输出:
ok: [master1] => {}
MSG:
54aa7fda16833bff8358b6bd1157df2d9caa26b2
Playbook :
- name: 'Play1'
hosts: master
tasks:
- name: 'Execute command'
shell: ''sh generate_ticket.sh" #command to generate ticket
register: shell_output
- name: 'debug shell_output'
debug: msg="{{ shell_output.stdout | from_yaml }}"
当我在 shell_output.stdout
周围加上单引号时它似乎起作用了
var="{{ 'shell_output.stdout' | from_yaml}}"
如果有人有比这更好的解决方法,请告诉我。
当对远程主机中的 运行 命令执行剧本并使用 shell 传递输出时,出现以下错误。
fatal: [master1]: FAILED! => {} MSG: template error while templating string: unexpected char u'a' at 4. String: {{54aa7fda16833bff8358b6bd1157df2d9caa26b2}}
下面是我的剧本内容
- name: 'Play1'
hosts: master
tasks:
- name: 'Execute command'
shell: ''sh generate_ticket.sh" #command to generate ticket
register: shell_output
- name: 'debug shell_output'
debug:
var="{{ shell_output.stdout | from_yaml }}"
当我对 msg 进行同样的尝试并且不尝试过滤时,输出会被打印而不会出现任何错误。但是我更喜欢使用 var,因为它最适合我的进一步要求。如果票号是不同的字符串,我不会遇到任何问题。请看下面:
输出:
ok: [master1] => {}
MSG:
54aa7fda16833bff8358b6bd1157df2d9caa26b2
Playbook :
- name: 'Play1'
hosts: master
tasks:
- name: 'Execute command'
shell: ''sh generate_ticket.sh" #command to generate ticket
register: shell_output
- name: 'debug shell_output'
debug: msg="{{ shell_output.stdout | from_yaml }}"
当我在 shell_output.stdout
var="{{ 'shell_output.stdout' | from_yaml}}"
如果有人有比这更好的解决方法,请告诉我。