首页 > 其他 > 详细

ansible的模板变量渲染后带u(unicode)

时间:2020-12-15 10:30:21      阅读:58      评论:0      收藏:0      [点我收藏+]

背景

最近使用ansible管理项目部署,有个前端的配置项是类似字典类的配置,其值如{‘memu1’:[‘/test1‘,‘/test2‘]},在ansible渲染后模板配置项变成了{u‘memu1’:[u‘/test1‘,u‘/test2‘]}。

问题过程

假设ansible中某配置文件的模板如下:

navs : {{ nav }}

通过ansible传递的变量值为如下:

navs: {‘memu1’:[‘/test1‘,‘/test2‘]}

如果使用template模块渲染,最终的配置项会变成:

navs: {u‘memu1’:[u‘/test1‘,u‘/test2‘]}

这里相当于渲染后成了unicode的字符串,这样对应的前端服务无法解析该配置。

如何解决

1. 对于字典类的配置项,我们可以先将配置项的值进行转义:

navs: {u‘memu1’:[u‘/test1‘,u‘/test2‘]} => navs: "{\"memu1\": [\"/test1\", \"/test2\"] }"

2. 然后在配置文件的模版中使用to_json过滤器转换成字典格式:navs : {{ nav | to_json }}

最后渲染出来的配置如:navs: {"memu1": ["/test1", "/test2"]}

这样问题就解决了~

博主:测试生财

座右铭:专注测试与自动化,致力提高研发效能;通过测试精进完成原始积累,通过读书理财奔向财务自由。

csdn:https://blog.csdn.net/ccgshigao

博客园:https://www.cnblogs.com/qa-freeroad/

51cto:https://blog.51cto.com/14900374

ansible的模板变量渲染后带u(unicode)

原文:https://www.cnblogs.com/qa-freeroad/p/14136743.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!