我正在尝试从 samba 配置文件 smb.conf 中删除以下部分。
[public]
path = /opt/samba/public
guest ok = yes
browsable = yes
writable = yes
read only = no
Run Code Online (Sandbox Code Playgroud)
Blockinfile 模块将无法工作,因为没有标记。Lineinfile 也会有问题,因为有些行是其他部分通用的。例如
browsable = yes
writable = yes
Run Code Online (Sandbox Code Playgroud)
如何使用ansible删除这些行?
PS:用新的配置文件替换配置文件是不可能的,因为每个服务器都有一个唯一的用户映射到它(运行批处理作业时不理想)
您可以使用替换模块:
- replace:
path: /etc/smb.conf
regexp: '^\[public\][^[]+'
replace: ''
backup: yes
Run Code Online (Sandbox Code Playgroud)
这应该删除[public]和[或之间的所有内容EOF。
小智 6
Ansible 具有本机ini 文件支持,这是完成此任务的更简洁的方法。
- name: remove public block
ini_file:
path: /etc/smb.conf
section: public
state: absent
Run Code Online (Sandbox Code Playgroud)