当我运行它时,它说成功,但是默认界面仍然设置为public zone。有什么作用?
- firewalld:
zone: public
interface: "{{ ansible_default_ipv4.interface }}"
permanent: true
immediate: true
state: disabled
- firewalld:
zone: trusted
interface: "{{ ansible_default_ipv4.interface }}"
permanent: true
immediate: true
state: enabled
答案 0 :(得分:0)
我不认为firewalld
模块支持这样设置默认区域。 The docs说zone
是:
要向/从中添加/删除[规则]的防火墙区域
也:
区域事务(创建,删除)只能通过使用区域参数和状态参数“存在”或“不存在”来执行。
我认为您可以创建/删除区域并在其中添加/删除规则,但不能将区域设置为默认区域。这与我使用与OP类似的配置所见的行为一致。
例如,我现在使用command
模块在Ansible配置中设置默认区域。
- name: Set dmz as default policy
command: firewall-cmd --set-default-zone=dmz
答案 1 :(得分:-1)
运行此命令后,您是否已重新加载firewalld以产生效果?我从任务中看到的就是禁用并启用它。您还可以添加处理程序以在完成https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html#handlers-running-operations-on-change之后重新启动服务。您还应该尝试使用-vvv运行以查看输出,并查看其是否达到了您的期望。