Ansible get_url模块:找不到文件的校验和

Ansible get_url模块:找不到文件的校验和,ansible,checksum,geturl,Ansible,Checksum,Geturl,我正在尝试使用以下方法获取ActiveMQ Artemis: -名称:下载ActiveMQ Artemis工件 获取url: url:“https://www.apache.org/dyn/closer.cgi?filename=activemq/activemq-artemis/{{artemis_version}}/ApacheArtemis-{{artemis_version}}-bin.tar.gz&action=download“ dest:“/tmp/apacheartemis-{

我正在尝试使用以下方法获取ActiveMQ Artemis:


-名称:下载ActiveMQ Artemis工件
获取url:
url:“https://www.apache.org/dyn/closer.cgi?filename=activemq/activemq-artemis/{{artemis_version}}/ApacheArtemis-{{artemis_version}}-bin.tar.gz&action=download“
dest:“/tmp/apacheartemis-{{artemis_version}}-bin.tar.gz”
#使用fixed Checksum,它可以工作,但打破了版本是变量的想法。
#校验和:“sha512:4990A6B742B08BFF6A4C7B310D26105656B08A2A02E1A7AEC05460D16F8A6FE3D4FE91A8040839F93D7C2EAB09FD6A79848FB130F9820559 EE3E81DCF8D51EAD”
#正在获取“中找不到文件'closer.cgi'的校验和”https://downloads.apache.org/activemq/activemq-artemis/2.16.0/apache-artemis-2.16.0-bin.tar.gz.sha512'"
校验和:“sha512:https://downloads.apache.org/activemq/activemq-artemis/{{artemis_version}}/apache-artemis-{{artemis_version}}-bin.tar.gz.sha512“
#同时获取:致命:[dev-broker-01]:失败!=>{“已更改”:false,“dest”:“/tmp/apache-artemis-2.16.0-bin.tar.gz”,“已用”:0,“msg”:“请求失败”,“url”:”https://www.apache.org/dyn/closer.cgi?filename=activemq/activemq-artemis/2.16.0/apache-artemis-2.16.0-bin.tar.gz&action=download“}
验证证书:否
并获取:“在中找不到文件‘closer.cgi’的校验和”https://downloads.apache.org/activemq/activemq-artemis/2.16.0/apache-artemis-2.16.0-bin.tar.gz.sha512'" 它没有从dest获取文件名:“/tmp/apacheartemis-{{artemis_version}}-bin.tar.gz”

验证证书时也有一些问题


有什么办法可以解决这两个问题吗?

错误似乎表明它正在查找文件
closer.cgi
的校验和,而不是实际的
tar.gz
文件。校验和URL中的文件名是:
apache-artemis-2.16.0-bin.tar.gz

另一种指定校验和的方法是只提供校验和字符串(不带文件名)。尽管如此,在获得它之前,我们需要提出一些任务

如下所示:

-uri:
url:“https://downloads.apache.org/activemq/activemq-artemis/{{artemis_version}}/apache-artemis-{{artemis_version}}-bin.tar.gz.sha512“
返回内容:true
注册地址:url_sha512
-设定事实:
artemis_校验和:{{url_sha512.content.split(''[0]}}}}有2个空格
-获取url:
url:“https://www.apache.org/dyn/closer.cgi?filename=activemq/activemq-artemis/{{artemis_version}}/ApacheArtemis-{{artemis_version}}-bin.tar.gz&action=download“
dest:“/tmp/apacheartemis-{{artemis_version}}-bin.tar.gz”
校验和:“sha512:{{artemis_校验和}”
#我能够在没有以下参数的情况下下载
#验证证书:否
更新:


当无法浏览站点目录,并且必须从镜像URL获取文件时,这种方法非常有用。

我假定您处于某种代理环境中,因此您需要将代理的CA添加到远程计算机的信任库中。我在代理后面,但在更改为URL:“{artemis_version}/apache artemis}-{{artemis_version}-bin.tar.gz“我不再有这个问题了。谢谢。我喜欢这个解决方案作为一种变通方法。我使用它:url:{{artemis_version}}/apache artemis-{{artemis_version}-bin.tar.gz”,即使用校验和中的同一URL。如果我们必须使用查找镜像的URL,则可能会编辑您的答案,说明这只是一个解决方案,以便我可以将其标记为解决方案。这是一个很好的观点。我不知道有指向文件的直接URL可用。如果是,则肯定更可取。我更新了答案,以解释何时将使用它ful.谢谢。我最终使用了你的密钥斗篷解决方案,因为校验和上没有文件名。还打开了一个票证,以便他们将来添加它-