使用 Ansible 下载 hadoop-3.2.2.tar.gz 文件后出现校验和错误

Checksum error after downloading hadoop-3.2.2.tar.gz file using Ansible

我使用以下 Ansible 代码下载了 hadoop-3.2.2.tar.gz 并检查了文件。当然,这是Hadoop官方主页。

---
- hosts: all
  remote_user: root
  tasks:
  - name: Download file with checksum url (sha256)
    get_url:
      url: https://downloads.apache.org/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz
      dest: ~/hadoop-3.2.2.tar.gz
      checksum: sha256:https://downloads.apache.org/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz.sha512

但是出现了以下错误:

TASK [Download file with checksum url (sha256)] **********************************************************************************************
[WARNING]: File '/home/pi/hadoop-3.2.2.tar.gz' created with default permissions '666'. The previous default was '666'. Specify 'mode' to
avoid this warning.
fatal: [raspberrypi.local]: FAILED! => {"changed": true, "checksum_dest": null, "checksum_src": "f4fa4e95192c6bb33258b8bd7adb0267a306ba27", "dest": "/home/pi/hadoop-3.2.2.tar.gz", "elapsed": 240, "msg": "The checksum for /home/pi/hadoop-3.2.2.tar.gz did not match 054753301927d31a69b80be3e754fd330312f0b1047bcfa4ab978cdce18319ed912983e6022744d8f0c8765b98c87256eb1c3017979db1341d583d2cee22d029; it was 97e73b46c3972cd3c40c2295bd9488843c24e8503c36e7c57f6e6ecc4e12b8c3.", "src": "/home/pi/.ansible/tmp/ansible-tmp-1626856834.62967-13587-200540362585671/tmp2xh8cfra", "url": "https://downloads.apache.org/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz"}

这是否意味着 hadoop-3.2.2.tar.gz 已被破坏,或者代码有问题?

您正在下载 sha512 校验和,但指定 sha256。所以 ansible 期望错误的校验和,因此验证失败。

这应该有效:

checksum: sha512:https://downloads.apache.org/hadoop/common/hadoop-3.2.2/hadoop-3.2.2.tar.gz.sha512