Есть директория с конфигами. Хочу скопировать ее на сервер и если какие-то файлы поменялись — рестартнуть сервис, конфиги которого я копирую. По наивности делал так:
- name: Copy configs
copy:
src: configs
dest: /etc
register: configs
- name: Restart service
systemd:
name: my-service
state: restarted
when: configs.changed
Проблема в том, что если я удаляю какие-то файлы с конфигами, то они не удаляются на удаленном сервере. Как сделать так, чтобы удалялись?
Читал про модуль synchronize. Вроде похоже на правду, но какой-то он, мягко говоря, странный, судя по доке.
По идее, я могу безусловно удалять директорию с конфигами на сервере, а потом подкладывать на ее место локальную, но тогда я потеряю событие changed
. Хотя и это можно обойти какой-нибудь предварительной проверкой отличий директорий или копированием локальной директории куда-то в /tmp
на сервере и потом ручным запуском rsync
, но быть может есть какой-то более проостой способ решения этой проблемы?