我想用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