Ansible:防火墙并添加新区域



i'试图将以下内容添加到Ansible playbook:

firewall-cmd --permanent --new-zone dockerc
firewall-cmd --permanent --zone dockerc --add-source 172.17.0.0/16
firewall-cmd --permanent --zone dockerc --add-port 8443/tcp
firewall-cmd --permanent --zone dockerc --add-port 53/udp

但根据http://docs.ansible.com/ansible/firewalld_module.html区域没有选择添加新区域的选择。

有人知道是否可以使用Ansible添加dockerc作为新区域?

截至2017-12-12,特别是提交8475171f67f,FireWalld模块支持区域的创建(和删除)。

- firewalld:
    zone: custom
    state: present
    permanent: true

state设置为presentabsent,并确保zonestatepermanent是任务中唯一的密钥。

源代码的注释

  • 可以通过仅使用区域和状态参数"存在"或"不存在"来执行区域交易(创建,删除)。 请注意,区域交易必须明确是永久性的。这是防火墙的限制。 这也意味着在添加想要立即采取行动的区域后,您将不得不重新加载防火墙。 该模块不会为您照顾您,因为这将撤销任何先前执行的即时行动 不是 永恒的。因此,如果您需要立即访问新创建的区域,建议您立即重新加载防火墙 区域 创建以改变状态返回,然后在您对该区域执行任何其他直接的,永久性的动作之前。

不幸的是,FireWalld模块不适合创建新区域。如果您的主机上可用firewall-cmd,则可以单独运行它:

- command: firewall-cmd --permanent --new-zone dockerc

设置区域后,您可以正常使用模块:

- firewalld:
    zone: dockerc
    permanent: true
    source: 172.17.0.0/16
    state: enabled

如果您无法单独使用firewall-cmd命令,那么您可能会失去运气,因为检查模块的源代码,您可以看到它不包含创建新区域的代码。

请注意,该模块是Ansible内部的策划模块,这意味着它没有得到完整的核心支持。如果您知道Python,欢迎您发送拉动请求,以使此模块能够创建新区域。

相关内容

  • 没有找到相关文章

最新更新