在Ansible中,我正在寻找一种类似于lineinfle或replace的技术,但在不使用模板的情况下,它适用于XML文件。似乎是一种非常普遍的需要
但是,对于XML文件,有必要指定xpath,以确保元素在DOM中的正确位置存在/不存在
解决方案需要确保有一种机制来替换现有节点,可能看起来与目标节点大不相同
简单示例XML文件:
<;?xml version=“1.0”encoding=“ISO-8859-1”?>;
<;数据源配置xmlns:myns=”http://org.someorg.ds/config“>;
<;数据源>;
<;!--各种其他xml-->;
<;数据源>;
<;名称>;MyDS</名称>;
<;jdbcUrl></jdbcUrl>;
</数据源>;
</数据源>;
<;!--各种其他xml-->;
</数据源配置>;
我希望能够确保在匹配某个xpath表达式的情况下,将完整的多行XML块插入/替换到目标XML文件中。例如,要将以下数据源添加到数据源:
<;数据源>;
<;名称>;其他</名称>;
<;jdbcUrl></jdbcUrl>;
</数据源>;
我见过的最好的是这个自定义模块,它打破了自己的示例:https://github.com/cmprescott/ansible-xml
是否存在此类模块或解决方案建议
我自己也在研究这个问题,发现了一个ansible xml模块,它看起来是一个不错的选择