我正在尝试从samba配置文件smb.conf中删除以下部分。
[public]
path = /opt/samba/public
guest ok = yes
browsable = yes
writable = yes
read only = no
Blockinfile模块无法正常工作,因为没有标记。 Lineinfile也会有问题,因为有些行是其他部分共有的。 e.g
browsable = yes
writable = yes
如何使用ansible删除这些行?
PS:无法用新的配置文件替换配置文件,因为每个服务器都有一个映射到它的唯一用户(在运行批处理作业时不理想)
答案 0 :(得分:4)
您可以使用replace模块:
- replace:
path: /etc/smb.conf
regexp: '^\[public\][^[]+'
replace: ''
backup: yes
这应删除[public]
与[
或EOF
之间的所有内容。
答案 1 :(得分:1)
以下是一种将删除apache配置文件中的整个标签的标签:
replace:
path: "{{my_path}}"
regexp: '^<Directory /var/www/>(.*\n)*</Directory>$'
replace: ''
答案 2 :(得分:0)
Ansible具有原生的ini文件支持,这是一种更清晰的方法来实现这一目标。
- name: remove public block
ini_file:
path: /etc/smb.conf
section: public
state: absent