Ansible (v2.9.6) имеет unarchive
задача который может распаковать tar (и т. д.) на сервере в целевой каталог. Можно ли указать ему удалить любой файл в каталоге назначения, который не в архивном файле?
Нет. В документации прямо указано:
Существующие файлы / каталоги в месте назначения, которых нет в архиве, не затрагиваются. Это то же поведение, что и при обычном извлечении архива.
Я не думаю, что есть альтернативный модуль, который может это сделать. В качестве обходного пути вы можете сначала удалить целевой каталог. Или разархивируйте во временный каталог и используйте модуль синхронизации с delete
параметр для копирования из временного местоположения в целевой каталог.