使用ansible下载大文件

时间:2017-12-23 20:04:24

标签: ansible

我想下载一个带有ansible(10 GB)的大文件。根据连接,这需要半个小时,并且经常使用unarchive或get_url失败。

如果出现错误和一些进展,我怎样才能在理想情况下恢复?

4 个答案:

答案 0 :(得分:3)

我认为在Ansible的任务中没有任何方法可以取得进展 您可以使用dependencies { ...... compile 'com.android.support:support-v4:VERSION' compile 'com.android.support:appcompat-v7:VERSION' compile 'com.android.support:recyclerview-v7:VERSION' compile 'com.android.support:support-v13:VERSION' ..... } 模块手动下载多个块,在with_sequence loop中使用command选项启动curl,这将是一种进度显示。 /> (您也可以使用--range模块和uri来获取文件大小,以计算卷曲调用循环中使用的范围)

如果出现错误,请继续do-until loop syntax

答案 1 :(得分:0)

通常ra time_out值可以在get_url中执行。 试着把它拉到1800秒。

如果它不起作用我建议使用归档程序将文件分成块(我使用7Zip - 7-zip-split-archive

答案 2 :(得分:0)

使用带有wget及其“ --continue”参数的命令模块来继续下载部分下载的文件,并对任务进行多次重试吗?

答案 3 :(得分:0)

为此,您可以使用async,在下面的示例中,我们使用get_urlasync选项一起下载大文件,然后等待下载作业完成使用async_status模块

 - name: Get the tar file from the repo
    get_url:
      url: "{{ hdf_patch_repo_url }}/{{ hdf_tar_name }}"
      dest: "{{ hdf_patch_local_path }}/{{ hdf_tar_name }}"
      owner: xxxx
      group: xxxx
      mode: 0755
    async: 6000
    poll: 0
    register: hdf_patch_download_result

  - name: check status of HDF tar file download
    async_status:
      jid: "{{ hdf_patch_download_result.ansible_job_id }}"
    register: hdf_patch_download_job_result
    until: hdf_patch_download_job_result.finished
    retries: 300