我尝试用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 }}"
当我自己在两台服务器上执行shell命令时,这100%是可用的。 但是,如果我用这个Ansible脚本运行它们,大约50%的时间在BACKUP_STORE上创build备份文件,但是它是空的(0字节)。
当Ansible运行时数据不能被传输的原因是什么? 还是有没有其他的方法,发送文件,而不写在SERVER x的文件系统上的档案?