类似于lineinfle的Ansible xml操作

在Ansible中,我正在寻找一种类似于lineinflereplace的技术,但在不使用模板的情况下,它适用于XML文件。似乎是一种非常普遍的需要

但是,对于XML文件,有必要指定xpath,以确保元素在DOM中的正确位置存在/不存在

解决方案需要确保有一种机制来替换现有节点,可能看起来与目标节点大不相同

简单示例XML文件:

<?xml version=“1.0”encoding=“ISO-8859-1”?>
<数据源配置xmlns:myns=”http://org.someorg.ds/config“>
<数据源>
<!--各种其他xml-->
<数据源>
<名称>MyDS&lt/名称>
<jdbcUrl&gt&lt/jdbcUrl>
&lt/数据源>
&lt/数据源>
<!--各种其他xml-->
&lt/数据源配置>

我希望能够确保在匹配某个xpath表达式的情况下,将完整的多行XML块插入/替换到目标XML文件中。例如,要将以下数据源添加到数据源:

<数据源>
<名称>其他&lt/名称>
<jdbcUrl&gt&lt/jdbcUrl>
&lt/数据源>

我见过的最好的是这个自定义模块,它打破了自己的示例:https://github.com/cmprescott/ansible-xml

是否存在此类模块或解决方案建议

我自己也在研究这个问题,发现了一个ansible xml模块,它看起来是一个不错的选择

发表评论