Если вы работаете в системе на базе UNIX, вы можете воспользоваться поведением inodes. Определите путь журнала в вашем ansible.cfg. Я создал каталог в $ HOME/.ansible.
log_path = $HOME/.ansible/log/ansible.log
Создать раздел предварительно задачи в ваших playbooks и включают в себя следующие задачи:
- name: Create the log file for this run
shell: /bin/bash -l -c "mv {{ lookup('env', 'HOME') }}/.ansible/log/ansible.log {{ lookup('env', 'HOME') }}/.ansible/log/ansible.log-{{ lookup('pipe', 'date +%Y%m%d%H%M%S') }}"
delegate_to: localhost
become: yes
become_user: "{{ lookup('env', 'USER') }}"
Когда анзибль начинает работать с Playbook, он создает файл журнала и начинает писать на него. Затем файл журнала переименовывается в файл ansible.log-YYYYmmddHHMMSS, и этот процесс продолжает писать, потому что, хотя имя файла журнала изменилось, связанный с ним индекс inode не имеет.