ansible-playbook - 如何替换多个dest中的文本

时间:2017-09-14 08:56:28

标签: ansible

这是我的脚本。我想替换多个dest中的文本。我如何在(dest = / home / * / conf / server.xml)中使用通配符。

- hosts: 192.168.8.11
  user: mohitmehral
  sudo: yes
  tasks:
   - replace:
       dest=/home/5/conf/server.xml
       #dest=/home/1/conf/server.xml
       #dest=/home/2/conf/server.xml
       #dest=/home/3/conf/server.xml
       #dest=/home/4/conf/server.xml
       #dest=/home/5/conf/server.xml
       regexp='pattern="%{X-Forwarded-For}i %h %t %a %p %v %q "%{Referer}i" %m "%U" "%S" "%{User-agent}i" %b %s %D"/>'
       replace='pattern="%{X-Forwarded-For}i %h %t %a %p %v %q"%{Referer}i" %m "%U" "%{User-agent}i" "%b" "%s" "%D""/>'
       backup=yes

1 个答案:

答案 0 :(得分:2)

如果正则表达式和替换模式相同,那么您可以这样做:

- hosts: 192.168.8.11
  user: mohitmehral
  sudo: yes
  tasks:
   - replace:
       dest="/home/{{ item }}/conf/server.xml"
       regexp='pattern="%{X-Forwarded-For}i %h %t %a %p %v %q "%{Referer}i" %m "%U" "%S" "%{User-agent}i" %b %s %D"/>'
       replace='pattern="%{X-Forwarded-For}i %h %t %a %p %v %q"%{Referer}i" %m "%U" "%{User-agent}i" "%b" "%s" "%D""/>'
       backup=yes
     with_items: [1,2,3,4,5]