在打包程序中,如何在不调用函数的情况下在字符串中添加文字大括号{{}}?

时间:2020-04-27 11:07:45

标签: packer

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" ],

1 个答案:

答案 0 :(得分:0)

我相当确定包装工在引擎盖下使用的go模板引擎是不可能做到的。我已经和他们一起开了张票,但是由于他们试图转移到HCL,所以我不知道是否可以解决。

https://github.com/hashicorp/packer/issues/9125

相关问题