使用 ufw --force enable 对 ufw 进行 Ansible 编排

使用 ufw --force enable 对 ufw 进行 Ansible 编排

我将 Ansible playbook 部署到一些debian:stable旨在更新包索引缓存的机器上,ufw以与 Ansible 架构无关和版本无关的方式安装和设置它。

- name: Update all apt package index cache (apt update)
  apt: update_cache=yes

- name: Install a latest ufw
  apt:
    name: ufw
    state: latest

- name: Setup firewall with ufw
  ufw:
    rule: allow
    port: 22,25,80,443

我的困难在这里

在 Bash 中,我也经常使用ufw --force enable,但我没有找到如何使用 Ansible-YAML 语法将其添加到剧本中Ansible ufw 文档

我的问题

ufw --force enable如果有的话,我应该如何正确添加?

答案1

如果您只想运行 shell 命令,可以使用 Ansibleshellcommand模块。

就目前而言ufw,我认为它直接编辑规则文件。查看源代码,它在操作之前和之后运行此操作以检查这些文件是否已更改内容。

grep '^### tuple' /lib/ufw/user.rules /lib/ufw/user6.rules /etc/ufw/user.rules /etc/ufw/user6.rules

至于启用或禁用,这就是该state操作的目的

只要你说state: enabled,就会做到ufw -f enable

    if command == 'state':
        states = {'enabled': 'enable', 'disabled': 'disable',
                  'reloaded': 'reload', 'reset': 'reset'}
        execute(cmd + [['-f'], [states[value]]])

相关内容