1

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

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

我已经看到一些模块有一个state: absent操作员。但是,这些asa_模块并未表明这是一个选项。

任何建议将不胜感激。

4

2 回答 2

1

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

于 2017-10-11T17:45:34.703 回答
0

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

我目前在做什么:

- name: Remove Network Object
  asa_config:
   commands:
    - no object network {{ object_name }}
   provider: "{{ cli }}"
  ignore_errors: yes
  register: dno
于 2017-10-12T15:07:18.657 回答