我想用jenkins config.xml替换特定的标签。该文件看起来像:Ansible - 用jinja模板替换特定的XML标签
<?xml version='1.0' encoding='UTF-8'?>
<hudson>
<disabledAdministrativeMonitors/>
<version>1.0</version>
<numExecutors>2</numExecutors>
<mode>NORMAL</mode>
<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
<securityRealm class="hudson.security.SecurityRealm$None"/>
<disableRememberMe>false</disableRememberMe>
...
</hudson>
替换的内容是神社模板,应更换标签<securityRealm .../>
即使等价形式存在<securityRealm>...</<securityRealm>
编辑:对于一个详细的解释什么我想要做。
我有一个jinja模板,代表了一段XML配置。假设这是模板:
<securityRealm class="hudson.security.SecurityRealm$Specific"/>
<customTag1>{{ valueOne }}</customTag1>
<customTag2>{{ valueTwo }}</customTag2>
</securityRealm>
所以最终结果如下所示。
<?xml version='1.0' encoding='UTF-8'?>
<hudson>
<disabledAdministrativeMonitors/>
<version>1.0</version>
<numExecutors>2</numExecutors>
<mode>NORMAL</mode>
<useSecurity>true</useSecurity>
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
<securityRealm class="hudson.security.SecurityRealm$Specific"/>
<customTag1>anyConfig</customTag1>
<customTag2>anotherValue</customTag2>
</securityRealm>
<disableRememberMe>false</disableRememberMe>
...
</hudson>
我不清楚jinja模板是如何工作的。你能展示一个模板的例子和最终的xml文件吗? –
有一个叫做lineinfile的模块来替换。或者,您可以使用shell模块调用sed命令。 –
有一个用于XML操作的第三方模块:https://github.com/cmprescott/ansible-xml – techraf