Mohit M
Mohit M

Reputation: 829

ansible-playbook - How to replace text in multiple dest

Here is my script. I want to replace text in multiple dest. How I can use wildcard in (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

Upvotes: 0

Views: 227

Answers (1)

Arbab Nazar
Arbab Nazar

Reputation: 23801

If the regex and replace pattern are same, then you can do like this:

- 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]

Upvotes: 2

Related Questions