<===

ProNotes

2026-02-13 11:21:47
- name: Собрать логи за последние сутки
  hosts: you_hosts_group
  become: true
  gather_facts: false

  vars:
    remote_tmp_archive: "/tmp/ansible_{{ inventory_hostname }}.tgz"

  tasks:
    - name: Найти файлы в /var/log, изменённые за последние 24 часа
      ansible.builtin.find:
        paths: /var/log
        file_type: file
        recurse: true
        age: -24h          # моложе 24 часов
        age_stamp: mtime   # по дате изменения
      register: recent_logs
      # age с префиксом "-" выбирает файлы с возрастом ≤ указанного времени [web:4][web:5][web:8]

    - name: Упаковать найденные файлы в архив на удалённом хосте
      ansible.builtin.archive:
        path: "{{ recent_logs.files | map(attribute='path') | list }}"
        dest: "{{ remote_tmp_archive }}"
        format: gz
        force_archive: true
      when: recent_logs.matched | default(0) > 0
      # archive умеет принимать список файлов в параметр path и создавать tar.gz [web:6][web:9][web:15]

    - name: Скачать архив себе
      ansible.builtin.fetch:
        src: "{{ remote_tmp_archive }}"
        dest: "/tmp/"
        flat: yes
      when: recent_logs.matched | default(0) > 0
      # fetch копирует файл с удалённого хоста на контроллер Ansible [web:7][web:10][web:13]   
← Previous Next →
Back to list