如何使用替换模块搜索/替换Ansible正则表达式

时间:2017-01-21 18:46:46

标签: regex ansible

我想在ansible plabook中搜索并替换“GATEWAY = 192.168.0.253”。 我在代码之下,但字符串没有被替换。我不擅长 任何帮助将被赞赏匹配该行的字符串末尾。

 tasks:
    - name: "Homenet GateWay Change"
      replace:
        dest: /opt/ifcfg-br0
        regexp: '^(GATEWAY=)\s*$'
        replace: 'GATEWAY=192.168.0.1'
        backup: yes
      when: HOMENET
    - name: "Hoemnet DNS Change"
      replace:
        dest: /opt/ifcfg-br0
        regexp: '^(DNS1=)\s*$'
        replace: 'DNS1=192.168.0.1'
        backup: yes
      when: HOMENET
    - service: name=network state=restarted 

1 个答案:

答案 0 :(得分:0)

如果您要查找任何IP地址,可以使用此正则表达式:

GATEWAY=\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}

或者,如果您不是在寻找有效的IP,您也可以使用此正则表达式:

GATEWAY=[0-9\.]+

并将其替换为

GATEWAY=192.168.0.1

这是一个正在运行的例子:



var text = "This is a GATEWAY=192.168.0.3 and this is also a GATEWAY=192.168.0.8";
var regex = /GATEWAY=\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/g
var replacement = "GATEWAY=192.168.0.1";

var result = text.replace(regex, replacement);
console.log(result);