我有一个创建网络对象并设置 ACL 策略的 ansible playbook。它运行良好,但我想创建补充剧本来删除对象及其相关配置,但我不知道处理任务的正确方法。
我可以使用asa_command
为适当的行发出'no'前缀,但是,这不像“Ansible Way”,因为它会尝试执行命令,即使它们已经在配置中不存在。
我已经看到一些模块有一个state: absent
操作员。但是,这些asa_
模块并未表明这是一个选项。
任何建议将不胜感激。
我认为有一个state: absent
选项很有意义,因为我认为没有一种简单的方法可以使用当前asa_
模块更有效地执行此操作。Ansible 团队对问题和 PR 非常敏感,因此我会为此功能提交一份。
从 Ansible 2.4 开始,似乎没有一种干净的方法可以做到这一点。我有一本有效的剧本,但是,我不得不满足于为每个剧本发出使用和输入的no
命令。至少可以说是不雅的,在某些情况下可能会崩溃。我认为可能有一种方法可以将错误处理与. 我最初的尝试失败了,因为在将播放结果注册到变量时,我无法使用该变量来解释哪些受影响的主机实际上需要更改,这只是整个播放的通用是/否。asa_config
ignore_errors: yes
check_mode: yes
我目前在做什么:
- name: Remove Network Object
asa_config:
commands:
- no object network {{ object_name }}
provider: "{{ cli }}"
ignore_errors: yes
register: dno