Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

remove block of text from config file using ansible

Tags:

ansible

I am trying to remove the below section from samba config file smb.conf.

[public]
  path = /opt/samba/public
  guest ok = yes
  browsable = yes
  writable = yes
  read only = no

Blockinfile module won't work as there are no markers . Lineinfile will also have a problem as there are lines which are common to other sections. e.g

 browsable = yes
 writable = yes

How do I remove these lines using ansible?

PS: replacing the config file with a new one is not possible as each server has a unique user mapped to it (not ideal when running batch jobs)

like image 855
Ubuntuser Avatar asked Mar 01 '18 07:03

Ubuntuser


Video Answer


1 Answers

You can use replace module:

- replace:
    path: /etc/smb.conf
    regexp: '^\[public\][^[]+'
    replace: ''
    backup: yes

This should remove everything between [public] and [ or EOF.

like image 68
Konstantin Suvorov Avatar answered Sep 23 '22 07:09

Konstantin Suvorov