为什么Ansible get_url给出有关校验和的错误?

为什么Ansible get_url给出有关校验和的错误?,ansible,checksum,geturl,Ansible,Checksum,Geturl,我的ansible playbook中有一个任务,从github url下载java归档文件。 任务是: - name: Download Jar Plugin get_url: url: https://GitHub-URL/plugins-1.0.5.jar dest: /app/plugins/ 没有提到校验和,但它给出了以下错误: fatal: [host]: FAILED! => {"changed": false, "msg": "attempted to

我的ansible playbook中有一个任务,从github url下载java归档文件。 任务是:

- name: Download Jar Plugin
  get_url:
    url: https://GitHub-URL/plugins-1.0.5.jar
    dest: /app/plugins/
没有提到校验和,但它给出了以下错误:

fatal: [host]: FAILED! => {"changed": false, "msg": "attempted to take checksum of directory: /app/plugins/plugins-1.0.5.jar"}

有人知道这件事吗?有什么办法可以让它下载这个java归档吗?

首先,GitHub不是保存二进制文件的合适位置。在大多数情况下,Github不允许存储大于100MB的单个文件。您应该将二进制文件保存在物理服务器或任何云存储中,并从中提取

现在,如果您真的想遵循这种糟糕的做法,我建议您首先创建一个等效的unix
curl
。如果您有一个现有的
curl
命令来执行此操作,请与我们分享,或者简单地使用ansible
shell
模块作为起点。您也可以尝试增加超时,因为默认值仅为10秒。下面是一个将超时设置为200秒的片段

- name: Download Jar Plugin
  get_url:
    url: https://GitHub-URL/plugins-1.0.5.jar
    dest: /app/plugins/
    timeout: 200

首先,GitHub不是保存二进制文件的正确位置。在大多数情况下,Github不允许存储大于100MB的单个文件。您应该将二进制文件保存在物理服务器或任何云存储中,并从中提取

现在,如果您真的想遵循这种糟糕的做法,我建议您首先创建一个等效的unix
curl
。如果您有一个现有的
curl
命令来执行此操作,请与我们分享,或者简单地使用ansible
shell
模块作为起点。您也可以尝试增加超时,因为默认值仅为10秒。下面是一个将超时设置为200秒的片段

- name: Download Jar Plugin
  get_url:
    url: https://GitHub-URL/plugins-1.0.5.jar
    dest: /app/plugins/
    timeout: 200

尝试添加校验和参数,如下所示:

- name: Download Jar Plugin
  get_url:
   url: https://GitHub-URL/plugins-1.0.5.jar
   dest: /app/plugins/
   timeout: 200
   checksum: <yourchecksum>
-名称:下载Jar插件
获取url:
网址:https://GitHub-URL/plugins-1.0.5.jar
dest:/app/插件/
超时:200
校验和:

希望这对您的错误有所帮助。

尝试添加校验和参数,如下所示:

- name: Download Jar Plugin
  get_url:
   url: https://GitHub-URL/plugins-1.0.5.jar
   dest: /app/plugins/
   timeout: 200
   checksum: <yourchecksum>
-名称:下载Jar插件
获取url:
网址:https://GitHub-URL/plugins-1.0.5.jar
dest:/app/插件/
超时:200
校验和:

希望这对您的错误有所帮助。

curl-o/app/plugins/plugins-1.0.5.jar——创建目录https://github.com/app/plugins/plugins-1.0.5.jar
OK这是一个示例,它适用于正确的URL。@SS-eth0尝试增加超时,因为默认值仅为10秒。令人惊讶的是,在playbook中设置高超时是有效的,但我感到困惑,无法解释其原因。any pointer?@SS-eth0 timeout是Ansible等待从请求获取响应的时间段。您的请求的响应是heasully,即使从curl请求开始,它也需要10秒以上的时间,因此,增加超时时间将起作用。
curl-o/app/plugins/plugins-1.0.5.jar--create dirhttps://github.com/app/plugins/plugins-1.0.5.jar
OK这是一个示例,它适用于正确的URL。@SS-eth0尝试增加超时,因为默认值仅为10秒。令人惊讶的是,在playbook中设置高超时是有效的,但我感到困惑,无法解释其原因。any pointer?@SS-eth0 timeout是Ansible等待从请求获取响应的时间段。您的请求的响应是,即使从curl请求开始,heasully也需要10秒以上的时间,因此,增加超时将起作用。ty@Santosh用于贡献,但在我的情况下,我没有校验和,只需要下载文件。ty@Santosh用于贡献,但在我的情况下,我没有校验和,只需要下载文件。