【发布时间】:2019-11-14 23:40:27
【问题描述】:
这是一个适用于 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,目前对上述的尝试一直在使用配置
- 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 正则表达式,我想如果我插入一行,那会起作用,但我试图在匹配的正则表达式之前插入一个 xml 块.
【问题讨论】:
标签: regex bash shell grep ansible