2017-07-04 29 views
0

使用可以找到一些想法直接在目標系統上更改值而不是從源複製文件。直接在目標系統上更改值,而不是從源文件複製文件

例如:

我在目標系統上TMPL格式的許多文件,並想通過ansible變量的動態變化與此相關的<%= applicationname_zk_quorum %>值。

/applactionname/conf/zk.properties.tmpl 

[[email protected] ~]# cat /applicationname/conf/zk.properties.tmpl 
#nodes in quorum 

applicationname.zk.quorum=<%= applicationname_zk_quorum %> 
#applicationname.zk.quorum=zook1:6666,zook2:6666,zook3:6666 

applicationname.zk.node=/applicationnames/node/ 

#Session timeout in milliseconds 
applicationname.zk.sessionTimeout=72000 

據我所知,可變變量只支持處理yaml,並且不知道是否有可能爲tmpl文件應用某些東西。

非常感謝您的支持和指導!

回答

0

請通過jinja2 documentsAnsible template module

假設你有這個文件conf/zk.properties.tmpl.j2在當前ansible模塊的templates文件夾

- template: 
    src: conf/zk.properties.tmpl.j2 
    dest: /applicationname/conf/zk.properties.tmpl 
    owner: root 
    group: root 
    mode: 0644 

可以在conf/zk.properties.tmpl.j2定義變量。例如:

#nodes in quorum 

applicationname.zk.quorum=<%= {{ applicationname_zk_quorum }} %> 

applicationname.zk.node=/applicationnames/node/ 

#Session timeout in milliseconds 
applicationname.zk.sessionTimeout=72000 

在瓦爾的文件夾,您可以定義這個變量applicationname_zk_quorum作爲YML文件,例如,tmpl.yml

applicationname.zk.quorum: "zook1:6666,zook2:6666,zook3:6666" 
+1

寶馬@非常感謝你,它幫助我更好地理解了解決我的問題的例子。 –

+0

感謝Stackoverflow,如果它有幫助,你需要投票回答,並接受它作爲答案,如果它解決了你的問題。 – BMW

+0

對不起,我沒有想到這一點,並相應地更新。謝謝 –

相關問題