首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ansible: firewalld和添加新区域

Ansible: firewalld和添加新区域
EN

Stack Overflow用户
提问于 2017-02-17 17:15:53
回答 2查看 12.7K关注 0票数 5

我尝试将以下内容添加到Ansible攻略中:

代码语言:javascript
复制
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添加为一个新的专区?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-27 19:36:44

从2017-12-12开始,特别是提交8475171f67f,firewalld模块支持区域的创建(和删除)。

代码语言:javascript
复制
- firewalld:
    zone: custom
    state: present
    permanent: true

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

来自source code的注释

只能使用区域和状态参数“存在”或“不存在”来执行

  • 区域事务(创建、删除)。请注意,区域事务必须显式地是永久性的。这是firewalld中的一个限制。这也意味着在添加一个你想要立即执行操作的区域后,你必须重新加载firewalld。该模块不会隐式地为您处理这一点,因为这将撤消以前执行的任何非永久性的即时操作。因此,如果您需要立即访问新创建的区域,建议您在区域创建以更改的状态返回后立即重新加载firewalld,然后再对该区域执行任何其他立即的、非永久性的操作。
票数 10
EN

Stack Overflow用户

发布于 2017-02-18 07:34:29

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

代码语言:javascript
复制
- command: firewall-cmd --permanent --new-zone dockerc

一旦设置好区域,您就可以正常使用该模块:

代码语言:javascript
复制
- firewalld:
    zone: dockerc
    permanent: true
    source: 172.17.0.0/16
    state: enabled

如果您不能单独使用firewall-cmd命令,那么您可能就不走运了,因为检查source code of the module,您可以看到它不包含创建新区域的代码。

但是请注意,这个模块是ansible内部的一个策划者模块,这意味着它没有得到完全的核心支持。如果您了解python,那么欢迎您发送一个拉取请求,使此模块能够创建新区域。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42293872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档