使用ansible下载一个大文件

使用ansible下载一个大文件,ansible,Ansible,我想下载一个带有ansible(10GB)的大文件。根据连接情况,这需要半个小时,并且在使用unarchive或get_url时经常失败 在出现错误和某种进展的情况下,我如何通过恢复来理想地实现这一点?通常使用time\u outvalue在get\u url中执行技巧。 试着把时间缩短到1800秒 如果它不起作用,我建议使用归档程序(我使用7Zip-)将文件分割成块。我认为没有任何方法可以在Ansible中的任务中取得进展。 通过使用命令模块启动curl,并在a中使用--range选项,您可以

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


在出现错误和某种进展的情况下,我如何通过恢复来理想地实现这一点?

通常使用
time\u out
value在get\u url中执行技巧。 试着把时间缩短到1800秒


如果它不起作用,我建议使用归档程序(我使用7Zip-)将文件分割成块。

我认为没有任何方法可以在Ansible中的任务中取得进展。
通过使用
命令
模块启动
curl
,并在a中使用
--range
选项,您可以手动下载多个块,这将是一种进度显示。
(您还可以使用
uri
模块和
方法:HEAD
来获取文件大小,以计算循环中用于curl调用的范围)


若要在出现错误时继续,请使用带有wget的命令模块及其“--continue”参数来继续下载部分下载的文件,并对任务进行多次重试。

在下面的示例中,您可以使用
async
进行此操作,我们正在使用
get\u url
async
选项下载一个大文件,然后等待下载作业完成使用
async\u 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

据此,以下命令可与shell一起使用:export ec=18;而[$ec-等式18];do/usr/bin/curl-O-C-“”;出口欧共体=$?;甜甜圈仍然需要一些东西来显示进展。我不能影响文件的大小。只要提高超时时间就不会让我在它失败的情况下恢复它。get_url也不会显示进度。所以这个答案不符合我对这个问题的需求。