Удалите линии конфигурации на ASA с Ansible
У меня есть ANSIBLE playbook, который создает сетевой объект и устанавливает политики ACL. Это работает хорошо, но я хотел бы создать дополнительную книгу воспроизведения, чтобы удалить объект и связанный с ним конфиг, но я не знаю, как правильно подойти к задаче.
Я мог бы просто использовать asa_command
выдавать префикс "no" для соответствующих строк, однако это не похоже на "Ansible Way", поскольку он будет пытаться выполнить команды, даже если они уже отсутствовали в конфигурации.
Я видел, что некоторые модули имеют state: absent
оператор. Тем не менее asa_
модули не указывают, что в качестве опции.
Любые предложения будут высоко ценится.
2 ответа
Я думаю, что иметь state: absent
вариант имеет большой смысл, так как я не думаю, что есть простой способ сделать это более эффективно с нынешним asa_
модули. Команда Ansible очень чутко реагирует на проблемы и связи с общественностью, поэтому я хотел бы представить ее для этой функции.
Похоже, что не существует чистого способа сделать это в 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