如何使用Ansible更改防火墙区域?

时间:2018-07-27 18:30:36

标签: automation ansible firewall ansible-facts firewalld

当我运行它时,它说成功,但是默认界面仍然设置为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

2 个答案:

答案 0 :(得分:0)

我不认为firewalld模块支持这样设置默认区域。 The docszone是:

  

要向/从中添加/删除[规则]的防火墙区域

也:

  

区域事务(创建,删除)只能通过使用区域参数和状态参数“存在”或“不存在”来执行。

我认为您可以创建/删除区域并在其中添加/删除规则,但不能将区域设置为默认区域。这与我使用与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运行以查看输出,并查看其是否达到了您的期望。