Ansible替换单引号regexp
我在ansible中有以下尝试: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
---
-名称:在配置中将字符串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
运行你的剧本,并向我们展示它的完整输出,然后?我把导入任务和包含任务搞砸了,它正在验证模式,但没有运行。双反斜杠单引号非常有效,谢谢!