Ansible替换模块的正则表达式?

时间:2017-08-08 18:06:30

标签: regex ansible ansible-2.x

我正在尝试通过设置行来禁用我的默认/etc/yum.repos.d/*.repo文件

enabled=1

enabled=0

使用Ansible的替换模块足够简单。但是,一些* .repo文件有

enabled=1

虽然有些人

enabled = 1

也就是说,有些人在=符号的每一边都没有空间,而其他人则有。在此任务中应该使用正则表达式值来处理两者?

- name: Disable the existing CentOS repos in /etc/yum.repos.d
  replace:
    dest: /etc/yum.repos.d/{{ item }}
    regexp: "enabled = 1" ####### What should this be?? ########
   replace: "enabled=0"
  with_items:
  - CentOS-Base.repo
  - CentOS-fasttrack.repo
  - CentOS-Vault.repo
  - CentOS-CR.repo

1 个答案:

答案 0 :(得分:0)

替换模块中的regexp参数使用Python regular expressions。您需要做的就是在等号之间为空格(*)添加零个或多个限定符(\s)。

- name: Disable the existing CentOS repos in /etc/yum.repos.d
  replace:
    dest: /etc/yum.repos.d/{{ item }}
    regexp: 'enabled(\s)*=(\s)*1'
    replace: "enabled=0"
  with_items:
  - CentOS-Base.repo
  - CentOS-fasttrack.repo
  - CentOS-Vault.repo
  - CentOS-CR.repo