Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex blockinfile Ansible模块不在给定的正则表达式处插入_Regex_Insert_Ansible_Ansible 2.x - Fatal编程技术网

Regex blockinfile Ansible模块不在给定的正则表达式处插入

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

下面是test.conf,我希望在行结束标记之前添加一个块,即以
开头的行之前

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},就无法具有幂等性
标记
属性中。请确认理解是否正确,或者您是否可以共享一个示例,其中我们没有mark
BEGIN-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>