我有一个ansible playbook,其中一个变量我从命令传递。我试图附加一个Windows文件夹路径。我能找到的一种方法是将路径添加到另一个变量,然后加入这两个变量。我想知道是否可以避免变量并将路径放在这样的: " {{variable2}} \ build \ dist \ package \ ui.msi"
variable1具有值" d:\ install" var_build_file_name由用户输入 variable2由variable1和var_build_number组合而成。
这是剧本中的实际内容:
vars:
installerFolder: "{{ UploadFolder }}{{ var_build_file_name | regex_replace('(\\.zip)','\') }}"
packagePath: '\build\dist\package\UI.msi'
- name: Install new version.
debug:
msg: "{{ installerFolder }}{{ packagePath }}"
这是剧本命令:
ansible-playbook Install.yml -i ../inventory/hosts.ini --extra-vars "target=servername var_build_file_name=16.3.0.zip UploadFolder=D:\Install\\"
我得到的输出是:
" msg":" D:\\安装\\ 16.3.0 \\ build \\ dist \\ package \\ UI.msi"
在上面的输出中,如何显示两个反斜杠而不是一个?
可以吗
msg: "{{ installerFolder }} '\build\dist\package\UI.msi' "
我尝试了很多组合,但反斜杠没有得到适当的转义。如果不可能,那么有人可以启发原因。
感谢。
答案 0 :(得分:1)
"msg": "D:\\Install\\16.3.0\\build\\dist\\package\\UI.msi"
它是调试模块的输出,它是一个JSON字符串,因此每个\
都被转义。
这里的msg的实际值是D:\Install\16.3.0\build\dist\package\UI.msi
,正如您所期望的那样。
你绝对可以使用这种语法:msg: '{{ installerFolder }}\build\dist\package\UI.msi'