ansible的模板變量渲染後帶u(unicode)

背景

最近使用ansible管理項目部署,有個前端的配置項是相似字典類的配置,其值如{‘memu1’:['/test1','/test2']},在ansible渲染後模板配置項變成了{u'memu1’:[u'/test1',u'/test2']}。前端

問題過程

假設ansible中某配置文件的模板以下:json

navs : {{ nav }}ide

經過ansible傳遞的變量值爲以下:測試

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

若是使用template模塊渲染,最終的配置項會變成:.net

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

這裏至關於渲染後成了unicode的字符串,這樣對應的前端服務沒法解析該配置。orm

如何解決

1. 對於字典類的配置項,咱們能夠先將配置項的值進行轉義:blog

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

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

相關文章
相關標籤/搜索