Ansible fetch module的大文件

问题描述 投票:1回答:3

我使用ansible模块fetch下载一个大文件,表示为2GB。然后我收到以下错误消息。 Ansible似乎无法处理大文件。

fatal: [x.x.x.x] => failed to parse: 
SUDO-SUCCESS-ucnhswvujwylacnodwyyictqtmrpabxp
Traceback (most recent call last):
  File "/home/xxx/.ansible/tmp/ansible-tmp-1437624638.74-184884633599028/slurp", line 1167, in <module>
main()
  File "/home/xxx/.ansible/tmp/ansible-tmp-1437624638.74-184884633599028/slurp", line 67, in main
data = base64.b64encode(file(source).read())
  File "/usr/lib/python2.7/base64.py", line 53, in b64encode
encoded = binascii.b2a_base64(s)[:-1]
MemoryError
ansible ansible-playbook
3个回答
3
投票

https://github.com/ansible/ansible/issues/11702

这是一个Ansible错误,已在较新版本中解决。


1
投票

看起来像您要从中获取的远程服务器在base64编码过程中内存不足。也许改为尝试同步模块(它将使用rsync);并非真正针对大型文件而设计。


0
投票

Digital Ocean液滴(1 Gb RAM)遇到相同的问题。通过增加交换大小来修复它。

这是获取数据的艰巨任务

    - name: Fetch data from remote
      fetch:
        src: "{{ app_dir }}/data.zip"
        dest: "{{ playbook_dir }}/../data/data.zip"
        flat: yes
        become: no
      tags:
        - download

使用this playbook进行交换增加ansible

© www.soinside.com 2019 - 2024. All rights reserved.