Назад | Перейти на главную страницу

Ansible выдает сообщение «ERROR! Рабочий найден в мертвом состоянии »ошибка

Когда я запускаю playbook, который просто копирует каталог из одного места в другое, ansible выдает

ОШИБКА! Рабочий найден в мертвом состоянии

Ошибка. После некоторого поиска в Google похоже, что это вызвано тем, что oom-killer убивает доступный процесс (но я не совсем уверен, что это так). Моя память:

              total        used        free      shared  buff/cache   available
Mem:            991         372         448           1         170         467
Swap:           511         365         146

Понятия не имею, как это исправить. Я должен упомянуть, что у меня была ОЗУ только при первом запуске playbook, который не мог работать из-за нехватки памяти. После этого я добавил своп. Не уверен, что это связано, но учтите, что это файл подкачки, а не отдельный раздел.

Я наблюдал за памятью во время работы и вижу, что свободная подкачка очень быстро разряжается после выполнения этой задачи. Сообщение об ошибке выдается при достижении 0.


Я использую следующую пьесу.

---
- hosts: localhost
  become: true
  become_method: sudo
  become_user: root

  vars:
    portals:
      - mysite
    contentPath: "/var/www/"
    backupPath: "/home/dataFiles/backups/"

  tasks:

    - name: backup content
      copy:
        src: "{{ contentPath }}/{{ item }}"
        dest: "{{backupPath}}/{{ item }}/{{ ansible_date_time.date }}/"
      with_items:
        - "{{ portals }}"
...

Ошибка, которую я привел выше, - это единственная информация, которую я не могу получить. Даже подробный запуск playbook не дает для этого ничего дополнительного.

Есть примечание в copy_module документация:

Модуль «копировать» модуль рекурсивного копирования не масштабируется до множества (> сотен) файлов. В качестве альтернативы см. Модуль синхронизации, который является оболочкой для rsync.

Предполагая, что это так, следует рассмотреть возможность использования синхронизировать модуль.