使用 Ansible 删除 ASA 上的配置行

Remove Config Lines on ASA with Ansible

我有一个可创建网络对象并设置 ACL 策略的 ansible 剧本。它运作良好,但我想创建补充剧本来删除对象及其关联的配置,但我不知道处理任务的正确方法。

我可以只使用 asa_command 为适当的行发出 'no' 前缀,但是,这感觉不像 "Ansible Way" 因为它会尝试执行命令即使它们已经不存在于配置中。

我看到有些模块有一个 state: absent 运算符。但是,asa_ 模块并未将其表示为一个选项。

如有任何建议,我们将不胜感激。

我认为有一个 state: absent 选项很有意义,因为我认为没有一种简单的方法可以使用当前的 asa_ 模块更有效地执行此操作。 Ansible 团队对问题和 PR 非常敏感,因此我会为此功能提交一个。

从 Ansible 2.4 开始,似乎没有一种干净的方法可以做到这一点。我有一个可用的剧本,但是,我不得不满足于使用 asa_config 发出 no 命令并为每个剧本放入 ignore_errors: yes。至少可以说这是不雅的,在某些情况下可能会崩溃。我认为可能有一种方法可以将错误处理与 check_mode: yes 一起使用。我最初的尝试失败了,因为在将播放结果注册到变量时,我无法使用该变量来解释哪些受影响的主机实际上需要更改它只是整个播放的通用 yes/no。

我目前在做什么:

- name: Remove Network Object
  asa_config:
   commands:
    - no object network {{ object_name }}
   provider: "{{ cli }}"
  ignore_errors: yes
  register: dno