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

Удаленное резервное копирование с помощью netcat и Ansible

Я пытаюсь сделать резервную копию своих серверов с помощью Ansible. Моя установка такая:

SERVER 1..n (мои данные я хочу сделать резервную копию)
ANSIBLE_HOST (на этом сервере моя книга резервного копирования Ansible выполняется заданием cron)
BACKUP_STORE (на этом сервере хранятся мои резервные копии)

Теперь я пытаюсь отправить файлы с помощью netcat из SERVER x к BACKUP_STORE мои задачи Ansible выглядят так:

- shell: >
    nc -l {{ port }} > {{ backup_file }}.tar.bz2
  async: 1000
  poll: 0
  register: receiver
  delegate_to: "{{ BACKUP_STORE_IP }}"

- shell: >
    tar -cvpj --one-file-system {{ folder }} | nc -q 0 {{ BACKUP_STORE_IP }} {{ port }}

- async_status:
    jid: "{{ receiver }}"
  register: job_result
  until: job_result.finished
  retries: 30
  delegate_to: "{{ BACKUP_STORE_IP }}"

Когда я выполняю команды оболочки на обоих серверах самостоятельно, это работает в 100% случаев. Но если я запускаю их с помощью этого скрипта Ansible, примерно в 50% случаев файл резервной копии BACKUP_STORE создается, но пусто (0 байт).

В чем может быть причина того, что данные не передаются при запуске через Ansible? Или есть какой-либо другой способ отправки файла без записи архива в файловой системе SERVER x?