ansible将JSON作为字符串传递而不引用它
我遇到了一个特别痛苦的任务:ansible将JSON作为字符串传递而不引用它,json,ansible,Json,Ansible,我遇到了一个特别痛苦的任务: 从文件中读取JSON 将JSON作为字符串传递给helm,但不引用它 我希望helm values文件看起来像: x: | { "hello": "world" } 我在下面的查找{{lookup('file','./stuff.json')}中遇到的问题是ansible将它解释为dict并将dict传递给helm。这不起作用,因为我需要一个字符串。以下是helm values文件中的输出: x: hello: wo
x: |
{ "hello": "world" }
我在下面的查找{{lookup('file','./stuff.json')}
中遇到的问题是ansible将它解释为dict并将dict传递给helm。这不起作用,因为我需要一个字符串。以下是helm values文件中的输出:
x:
hello: world
然后我尝试了{{lookup('file','./stuff.json')|quote}
。Ansible将字符串传递给helm,但该字符串周围有引号。当我尝试在部署中读取JSON时,我得到一个解析错误。以下是输出结果:
x: '{ "hello": "world" }'
我甚至按照建议尝试了{{lookup('file','./stuff.json')|to_json}
,但也失败了。使用{lookup('file','./stuff.json')|string}
将强制Ansible将其作为字符串计算,而不添加引号
有几个示例使用此过滤器
可在文档中找到过滤器的文档。文件说明过滤器将:
如果字符串不是unicode,则将其设置为unicode。这样,标记字符串就不会转换回unicode
我不太清楚为什么这会纠正这个问题,但确实如此
x: '{ "hello": "world" }'