2017-08-14 122 views
0

我想用Ansible將一個文件塊插入到XML中。在xml中插入一個文件塊

Ex.xml

<t1> ${t1}/k</t1> 
<v1 c="k.tm"/> 

我需要插入之間(即後<t1> ${t1}/k</t1>)按ex.xml

任何人都可以在此幫助的代碼塊?

我嘗試使用文件中的塊,但它最終像這樣在XML的末尾添加了代碼塊。

- name: add a block 
    blockinfile: 
    path: ex.xml 
    marker: "test" 
    block: 
    <k1></k1> 
    <K2></k2> 
    insertafter: "^<t1> ${t1}/k</t1>" 

回答

0

insertafter參數是一個正則表達式,因此「$」字符不會直接匹配。你需要逃避它。

insertafter: "^<t1> \\${t1}/k</t1>" 

一對夫婦的其他注意事項...

如果你想爲你用換行寫它插入你的塊,block之後添加的管道。否則,你的整個塊將被寫入同一行

block: | 
    <k1></k1> 
    <K2></k2> 

的參數可能應該是一個XML註釋。此外,您應該包含{mark}關鍵字,以便Ansible知道如果它已經存在於ex.xml中,則不插入相同的塊。

marker: "<!-- {mark} ANSIBLE MANAGED BLOCK -->"