提问人:lonix 提问时间:5/20/2023 更新时间:5/22/2023 访问量:111
使用 ansible 验证 firewalld 配置
Validate firewalld config with ansible
问:
我正在使用 ansible 配置 firewalld。
lineinfile
模块有一个参数,我想用它来验证我的配置。validate
我试过了这个:
- name: config firewalld
become: true
ansible.builtin.lineinfile:
path: /etc/firewalld/firewalld.conf
regexp: "^#?FirewallBackend"
line: "FirewallBackend=iptables"
state: present
validate: firewall-cmd --check-config # <--------------
但是我收到一个 ansible 错误:
validate 必须包含 %s:firewall-cmd --check-config
这是因为它需要文件 () 的路径。%s
我查阅了文档以找到指定配置文件路径的方法,但找不到任何东西。--check-config
有没有办法做到这一点?我可以运行一个原始的,但我希望有一种原生的 ansible 方法可以做到这一点。sudo firewall-cmd --check-config
答:
0赞
lonix
5/22/2023
#1
从存储库的详细信息来看,这似乎不可能用 ansible 干净地完成。因此,这里有一个解决方法:
- name: modify config
become: true
# ...
register: result1
- name: modify config
become: true
# ...
register: result2
- name: modify config
become: true
# ...
register: result3
- name: validate config
become: true
command: firewall-cmd --check-config
when: result1 is changed or result2 is changed or result3 is changed
notify: "reload firewalld"
评论