变量的连接导致“模板字符串出错:意外的'/'

时间:2019-09-02 12:56:32

标签: ansible

当我尝试从包含斜杠(“ /”)的变量连接字符串时,Ansible失败。

变量:

PLAY_USER_HOME: "/home/pl"
version: "1.1"

用于concat的尝试方法:

- debug:
    var: "{{''.join((PLAY_USER_HOME, '/pns-', version))}}"
- debug:
    var: "{{PLAY_USER_HOME}}/pns-{{version}}"

两次都抛出以下错误:

fatal: [192.168.178.25]: FAILED! => {"msg": "template error while 
templating string: unexpected '/'. String: {{/home/pl/pns-1.1}}"}

当我将变量从"/home/pl"更改为"_home_pl"时,它可以正常工作。调试只是出于任何原因抱怨'_home_pl' is undefined

ok: [192.168.178.25] => {
    "_home_pl/pns-1.1": "VARIABLE IS NOT DEFINED!: '_home_pl' is undefined"
}

这是一个错误还是我做错了什么?我的Ansible版本是2.8.3

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

在两种情况下,debug应该使用 msg 而不是 var 。正确的语法是

- debug:
    msg: "{{ ''.join((PLAY_USER_HOME, '/pns-', version)) }}"
- debug:
    msg: "{{ PLAY_USER_HOME }}/pns-{{ version }}"