1

当我运行它时它说成功,但默认接口仍设置为公共区域。是什么赋予了?

- 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
4

2 回答 2

1

我认为该firewalld模块不支持这样设置默认区域。文档zone是:

要添加/删除 [规则] 到/从的 firewalld 区域

还:

区域事务(创建、删除)可以仅使用区域和状态参数“存在”或“不存在”来执行。

我认为这意味着您可以创建/删除区域并在其中添加/删除规则,但不能将区域设置为默认值。这与我使用与 OP 类似的配置看到的行为一致。

command我现在使用模块在 Ansible 配置中设置默认区域,例如

- name: Set dmz as default policy
  command: firewall-cmd --set-default-zone=dmz
于 2019-05-09T10:55:19.467 回答
-1

运行这个之后,你有没有重新加载firewalld来生效?我从任务中看到的只是您禁用和启用它。您还可以添加处理程序以在完成后重新启动服务https://docs.ansible.com/ansible/latest/user_guide/playbooks_intro.html#handlers-running-operations-on-change。您还应该尝试使用 -vvv 运行以查看输出并查看它是否符合您的预期。

于 2018-07-27T18:39:47.827 回答