以下是可与javascript / python一起使用的正则表达式示例
<!--.*[\n\t].*LAST FILTER IN THE DEFINED CHAIN.*[\n\t].*-->
针对此文档:
<filter>
<filter-name>filter-plugin-dispatcher-before-dispatch-error</filter-name>
<filter-class>com.atlassian.plugin.servlet.filter.ServletFilterModuleContainerFilter</filter-class>
<init-param>
<param-name>location</param-name>
<param-value>before-dispatch</param-value>
</init-param>
<init-param>
<param-name>dispatcher</param-name>
<param-value>ERROR</param-value>
</init-param>
</filter>
<filter>
<filter-name>OktaLoginFilter<`enter code here`/filter-name>
<filter-class>com.atlassian.jira.authenticator.okta.OktaLoginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OktaLoginFilter</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
</filter-mapping>
<!-- =====================================================
THIS MUST BE THE LAST FILTER IN THE DEFINED CHAIN
===================================================== -->
<filter>
<filter-name>JiraLastFilter</filter-name>
<filter-class>com.atlassian.jira.web.filters.JiraLastFilter</filter-class>
</filter>
现在,我需要弄清楚如何使用ansible在上述模式之前正确插入xml块。
我已尝试使用以下模块:https://docs.ansible.com/ansible/latest/modules/blockinfile_module.html,而当前针对上述模块的尝试已在使用config
- name: Insert/Update XML surronded by cutsomer markers after the last </filter>
blockinfile:
path: "path to file "
backup: true
marker: "<!-- {mark} ANSIBLE SIGSCI MANAGED BLOCK -->"
insertbefore: "(<!--.*[\n\t].*LAST FILTER IN THE DEFINED CHAIN.*[\n\t].*-->)"
block: |
<filter>
<filter-name>sigSciFilter</filter-name>
<filter-class>params</filter-class>
<init-param>
<param-name>rpcTimeout</param-name>
<param-value>500</param-value>
</init-param>
<init-param>
<param-name>params</param-name>
<param-value>unix:/var/run/params</param-value>
d</init-param>
</filter>
<filter-mapping>
<filter-name>parms</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
notify:
- Restart Sigsci
但是,此正则表达式专利与文档中的任何内容都不匹配,而是插入到文档的末尾。我不确定此模块中使用的风味正则表达式,但lineinfile模块是否允许使用python regex,我想如果插入一行就可以正常工作,但是我想在匹配的正则表达式之前插入一个xml块。