Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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
Ansible替换单引号regexp_Ansible - Fatal编程技术网

Ansible替换单引号regexp

Ansible替换单引号regexp,ansible,Ansible,我在ansible中有以下尝试: --- -名称:在配置中将字符串null替换为php null ansible.builtin.replace: 路径:“{app_root_path}}/config/autoload.local.php” regexp:“\''null\'' 替换:“null” 备份:是的 要实现此正则表达式,请执行以下操作: 为了改变: “主机”=>“空”, 'user'=>'null', '密码'=>'空', 致: 'host'=>null, 'user'=>nu

我在ansible中有以下尝试:

---
-名称:在配置中将字符串null替换为php null
ansible.builtin.replace:
路径:“{app_root_path}}/config/autoload.local.php”
regexp:“\''null\''
替换:“null”
备份:是的
要实现此正则表达式,请执行以下操作:

为了改变:

“主机”=>“空”,
'user'=>'null',
'密码'=>'空',
致:

'host'=>null,
'user'=>null,
“密码”=>null,
我试过:

  • regexp:“空”
    
  • regexp:“\'null\”
    
  • regexp:“空”
    
到目前为止,所有这些,以及我发现的其他任何东西,都不起作用


在YAML范围内实现这一点的正确方法是什么?

您需要将行更改为下面的行-

regexp: "\'null\'"
replace: "null"
此外,还需要指定要在其上运行playbook的主机。完整的剧本应该是这样的-

- hosts: <hostname/groupname/all>
  
  tasks:

        - name: Replace string nulls with php nulls in config
          ansible.builtin.replace:

            path: "{{ app_root_path }}/config/autoload.local.php"
            regexp: "\'null\'"
            replace: "null"
            backup: yes
-主机:
任务:
-名称:在配置中将字符串null替换为php null
ansible.builtin.replace:
路径:“{app_root_path}}/config/autoload.local.php”
regexp:“\'null\'”
替换:“空”
备份:是的

请再次检查代码缩进:)

您必须将反斜杠加倍,而不是引号加倍

在YAML中,文本标量可以用引号括起来,使转义序列能够表示新行,
\t
表示制表符,
\
表示反斜杠

资料来源:

任务:

-name:在config中用php null替换字符串null
ansible.builtin.replace:
路径:“{app_root_path}}/config/autoload.local.php”
regexp:“\\'null\\'”
替换:“null”
备份:是的
将提供:

'host'=>null,
'user'=>null,
“密码”=>null,

Ansible给出了此尝试的YAML语法错误。@bcmcfc。。。刚刚用你的playbookSame结果更新了我的回复。。。问题中的任务不是完整的剧本,而是相关的摘录。@bcmcfc。。。。真奇怪。。。在不同的Ansible和RHEL版本中尝试过。。。这对我很有用。。。你提到这不是完整的剧本。。。所以你可能还需要检查其他剧本。Ansible有时抛出的错误根本不在同一行,而是在其他地方(有时像缩进错误)。它需要双反斜杠单引号。我不知道出了什么问题,但我已经尝试过了,尽管它运行,但不会对文件进行任何更改,这让我觉得它没有找到
'null'
s?用
-vvv
运行你的剧本,并向我们展示它的完整输出,然后?我把导入任务和包含任务搞砸了,它正在验证模式,但没有运行。双反斜杠单引号非常有效,谢谢!