最近使用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