首页 > 解决方案 > 如何在ansible中转义特殊字符

问题描述

我有一个包含以下 $${local_ip_v4} 的文件。我需要用我的计算机的实际 IP 替换它。我创建了以下任务,但不确定如何使其匹配。我似乎无法弄清楚如何逃避“{}”

vars:
  floatingIP: 1.1.1.1

  - name:  "Fix sip_profiles to listen on floating IP"
    replace:
      path: /etc/freeswitch/sip_profiles/internal.xml
      regexp: "$${local_ip_v4}"
      replace: "{{ floatingIP }}"

标签: ansible

解决方案


你必须使用双反斜杠,请看下面的任务。我在 中添加了反斜杠$,因为它在正则表达式中具有特殊含义,而您想捕捉字符$

任务:

  - name:  "Fix sip_profiles to listen on floating IP"
    replace:
      path: /php_basedir/ANSIBLE/ANSIBLE_TESTS/testfile.txt
      regexp: "\\$\\$\\{local_ip_v4\\}"
      replace: "{{ floatingIP }}"

推荐阅读