Удалите линии конфигурации на 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
Другие вопросы по тегам