Regex blockinfile Ansible模块不在给定的正则表达式处插入
下面是test.conf,我希望在行结束标记之前添加一个块,即以Regex blockinfile Ansible模块不在给定的正则表达式处插入,regex,insert,ansible,ansible-2.x,Regex,Insert,Ansible,Ansible 2.x,下面是test.conf,我希望在行结束标记之前添加一个块,即以开头的行之前 cat test.conf # ##<VirtualHost _default_:443> <VirtualHost *:443> #ProxyPreserveHost On </VirtualHost> cat/tmp/test.conf # ##<VirtualHost _default_:443> <VirtualHost *:443> #ProxyP
开头的行之前
cat test.conf
#
##<VirtualHost _default_:443>
<VirtualHost *:443>
#ProxyPreserveHost On
</VirtualHost>
cat/tmp/test.conf
#
##<VirtualHost _default_:443>
<VirtualHost *:443>
#ProxyPreserveHost On
</VirtualHost>
#
<FilesMatch "^.*\.(css|html?|js|pdf|txt|xml|xsl|gif|ico|jpe?g|png)$">
Require all granted
</FilesMatch>
#
##<VirtualHost _default_:443>
<VirtualHost *:443>
#ProxyPreserveHost On
</VirtualHost>
#
要求所有授权
#
##
#代理主机
你能建议一下我的剧本有什么问题,以及如何让它工作吗?这是因为ansible,标记:
正是它所说的——它知道托管块开始和结束的方式。由于您选择使用在整个文件中都可以找到但与托管块部分无关的文本,ansible只是耸耸肩给出了一个答案
他们甚至有一个关于从标记:
中删除magic{mark}
模板参数的专门警告:
使用不带{mark}变量的自定义标记可能会导致在后续playbook运行中重复插入块
如果您将
标记:
更改为类似标记:“#*#*#*”
的内容,它将开始工作。。。或者至少可以工作一次。我更改了标记:false
以使其工作,但是,它不具有幂等性,每次运行块时都会在结束标记之前添加。任何解决方案都会得到赞赏。我想我已经明确了两件事:第一,不要使用marker:false
这意味着什么?!第二,你需要按照他们说的做,使用一个包含{mark}
的标记节,这样ansible就可以识别块并以幂等方式运行。我根本不明白为什么您要指定标记:
,因为它们的默认值已经是以配置文件中的行注释字符开始的,所以我理解的是,如果没有开始
和结束
即{mark},就无法具有幂等性
在标记
属性中。请确认理解是否正确,或者您是否可以共享一个示例,其中我们没有markBEGIN-END
,但它是幂等的?
#
<FilesMatch "^.*\.(css|html?|js|pdf|txt|xml|xsl|gif|ico|jpe?g|png)$">
Require all granted
</FilesMatch>
#
##<VirtualHost _default_:443>
<VirtualHost *:443>
#ProxyPreserveHost On
</VirtualHost>