我想使用Ansible将文件块插入XML。
Ex.xml
<t1> ${t1}/k</t1>
<v1 c="k.tm"/>
我需要在ex.xml
之间插入一段代码(即<t1> ${t1}/k</t1>
之后)
有人可以为此提供帮助吗?
我尝试在文件中使用块,但结果就是这样,它在XML的末尾添加了代码块。
- name: add a block
blockinfile:
path: ex.xml
marker: "test"
block:
<k1></k1>
<K2></k2>
insertafter: "^<t1> ${t1}/k</t1>"
答案 0 :(得分:0)
insertafter
参数是正则表达式,因此&#39; $&#39;角色不会直接匹配。你需要逃避它。
insertafter: "^<t1> \\${t1}/k</t1>"
其他一些说明......
如果您希望在使用换行符编写块时插入块,请在block
之后添加一个管道。否则,您的整个块将被写入同一行
block: |
<k1></k1>
<K2></k2>
marker
参数应该是xml注释。此外,您应该包含{mark}
关键字,以便Ansible知道如果ex.xml中已存在相同的块,则不插入相同的块。
marker: "<!-- {mark} ANSIBLE MANAGED BLOCK -->"