Chcę rekurencyjnie skopiować ponad katalog i renderować wszystkie pliki .j2 tam jako szablony. Do tego jestem obecnie stosując następujące linie:ansible - usuwanie niezarządzanych plików z katalogu?
- template: >
src=/src/conf.d/{{ item }}
dest=/dest/conf.d/{{ item|replace('.j2','') }}
with_lines: find /src/conf.d/ -type f -printf "%P\n"
teraz szukam sposobu, aby usunąć pliki niezarządzanymi z tego katalogu. Na przykład, jeśli usunę plik/szablon z /src/conf.d/
, chcę też, aby Ansible usunął go również z /dest/conf.d/
.
Czy jest jakiś sposób, aby to zrobić? Próbowałem bawić się przy pomocy rsync --delete
, ale dostałem problem z szablonami, które usunęły ich przyrostek .j2
.
Całkowite opróżnienie katalogu docelowego przed kopiowaniem oznaczałoby, że odtwarzanie będzie zawsze "zmieniać się". Nawet jeśli nie wprowadzono żadnych zmian w katalogu źródłowym. Podczas lokalnej zmiany nazw plików (np. Rsync-> render-> rename-> rsync) zawsze jest problem, że ansibry zgłosi zmiany (zmianę nazwy), gdy naprawdę nie ma żadnych zmian. –
@keks 'changed_when: false' naprawi to – ffghfgh
Ale chcesz wiedzieć, kiedy/jeśli plik konfiguracyjny został zmieniony, aby uruchomić procedury obsługi – dalore