Я пытаюсь сделать резервную копию своих серверов с помощью 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
?