是否有一个 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

请注意,通过安装适当的 iptablesiptables6 软件包,主机上仍需要提供必要的 iptables-save 命令。