Ansible支持{{CWD}}
宏。
Packer将{{}}
用于函数和变量。
我看不到任何逃避{{function_name}}
语法的方法,因此我可以使用文字{{CWD}}
。我已经尝试了很多不同的方法,包括使用Unicode大括号(不起作用),但是它们总是最终无效或试图调用不存在的CWD函数,这显然会破坏打包程序。
这是我尝试使用的字符串的示例。
"extra_arguments": [ "--extra-vars", "roles_path={{.CWD}}/temp-roles" ],
我找到了一个解决方法。只需获取shell提供的$ PWD变量并将其传递,然后在我使用过CWD的地方使用它即可。这不能回答我的问题,而在Go模板库中看这是基于我认为不可能摆脱花括号的情况。
"variables": {
"pwd": "{{env `PWD`}}"
},
"extra_arguments": [ "--extra-vars", "roles_path={{user `pwd`}}/temp-roles" ],
答案 0 :(得分:0)
我相当确定包装工在引擎盖下使用的go模板引擎是不可能做到的。我已经和他们一起开了张票,但是由于他们试图转移到HCL,所以我不知道是否可以解决。