Сегодня у меня возникла проблема с использованием ansible и попыткой удалить пакет debian. Пакет приходит не из репозитория, а напрямую из файла .deb, поэтому в Ansible я определил задачу установки:
- name: install nomachine
apt:
deb: /root/{{ nomachine_package }}
Что на самом деле работает, пакет устанавливается в S.O.
Но когда пришло время удалить его:
- name: uninstall nomachine
apt:
deb: nomachine-enterprise-terminal-server
state: absent
Ужас:
fatal: [SERVER]: FAILED! => {"changed": false, "failed": true, "msg": "deb only supports state=present"}
Я не разработчик, но посмотрите на apt.py
и кажется, что процесс удаления доступен только для пакетов, установленных через репозиторий? (похоже, что он проверяет кеш apt).
Итак, в качестве обходного пути для этого процесса удаления я делаю:
- name: uninstall nomachine
shell: dpkg -r nomachine-enterprise-terminal-server
Я использую ANSIBLE 2.3.0.0
Возможно, я неправильно использую этот инструмент или его функции недоступны.
Спасибо за любую помощь, которую вы можете оказать в этом.
H.
РЕДАКТИРОВАТЬ: Я думаю, что я делаю это хорошо, потому что следуя пример ANSIBLE :
- name: Remove "foo" package
apt:
name: foo
state: absent
А для тех, кто интересуется, почему «- имя» не определено, это потому, что задача является обработчиком.