【问题标题】:Template error while templating string: unexpected char u - Ansible模板化字符串时出现模板错误:unexpected char u - Ansible
【发布时间】:2020-02-21 10:30:46
【问题描述】:

执行剧本以在远程主机中运行命令并使用 shell 传递输出时,出现以下错误。

致命:[master1]:失败! => {} MSG:模板时模板错误 字符串:意外的 char u'a' at 4. 字符串: {{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 }}"

【问题讨论】:

    标签: ansible ansible-template


    【解决方案1】:

    当我在 shell_output.stdout 周围加上单引号时,它似乎有效

    var="{{ 'shell_output.stdout' | from_yaml}}"

    如果有人有比这更好的解决方法,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      • 1970-01-01
      • 2023-02-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多