是否有一个 Ansible 模块可以帮助在启动后保存 iptables 配置
Is there an Ansible module that helps saving iptables configuration after startups
我正在尝试使用 Ansible 剧本来保存当前的 iptables 规则。
本来我会使用命令iptables-save > /etc/iptables/rules.v4
。
但是在 Playbook 中尝试使用该命令时出现以下错误:
"stderr_lines": [
"Unknown arguments found on commandline"
],
"cmd": [
"iptables-save",
">",
"/etc/iptables/rules.v4"
],
我尝试使用 command
模块和 cmd
模块,但它们都不起作用,根据 Ansible 文档 iptables module:
This module does not handle the saving and/or loading of rules, but rather only manipulates the current rules that are present in memory
我的最终目标是保存将在每次启动计算机时启动的防火墙规则。
使用 bash 脚本的临时解决方案来完成该任务,如果有人有其他解决方案,我们将不胜感激
.
(按照 OP 的要求将我的评论转换为答案)
您正在使用不支持重定向和管道的命令模块。
在这种情况下你应该使用shell
。
我不是 100% 确定您可以使用专用的 iptable
模块做您想做的事。 Some people managed that through a custom module.
现在有 community.general.iptables_state
模块来实现这一点。参见 https://docs.ansible.com/ansible/latest/collections/community/general/iptables_state_module.html
请注意,通过安装适当的 iptables
或 iptables6
软件包,主机上仍需要提供必要的 iptables-save
命令。
我正在尝试使用 Ansible 剧本来保存当前的 iptables 规则。
本来我会使用命令iptables-save > /etc/iptables/rules.v4
。
但是在 Playbook 中尝试使用该命令时出现以下错误:
"stderr_lines": [
"Unknown arguments found on commandline"
],
"cmd": [
"iptables-save",
">",
"/etc/iptables/rules.v4"
],
我尝试使用 command
模块和 cmd
模块,但它们都不起作用,根据 Ansible 文档 iptables module:
This module does not handle the saving and/or loading of rules, but rather only manipulates the current rules that are present in memory
我的最终目标是保存将在每次启动计算机时启动的防火墙规则。
使用 bash 脚本的临时解决方案来完成该任务,如果有人有其他解决方案,我们将不胜感激 .
(按照 OP 的要求将我的评论转换为答案)
您正在使用不支持重定向和管道的命令模块。
在这种情况下你应该使用shell
。
我不是 100% 确定您可以使用专用的 iptable
模块做您想做的事。 Some people managed that through a custom module.
现在有 community.general.iptables_state
模块来实现这一点。参见 https://docs.ansible.com/ansible/latest/collections/community/general/iptables_state_module.html
请注意,通过安装适当的 iptables
或 iptables6
软件包,主机上仍需要提供必要的 iptables-save
命令。