You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible 2.8.1中get_url模块无法注册返回值问题求助

问题分析与解决

首先看你遇到的报错,核心原因是语法缩进错误:你把register当成了get_url模块的参数,但实际上register是Ansible的任务级关键字,它不属于任何模块的参数列表,必须和name、get_url保持同一缩进层级。

正确的任务写法

把register从get_url的参数块里移出来,调整缩进后代码如下:

- name: Download assembly file to /my/server/location/
  get_url:
    url: https://nexus.mycompany.com/service/rest/v1/search/assets/download?repository=repo-snapshots&group=group&name=name&sort=version&direction=desc
    validate_certs: no
    dest: /my/server/location/
    force: yes
  register: downloaded_file  # 这里和get_url同级,是任务的顶层关键字

为什么之前会报错?

Ansible的任务结构里,每个任务的顶层元素是name、模块名(比如get_url)、register、when这些全局关键字,而模块的参数必须嵌套在模块名下面的缩进块里。你之前把register放在get_url的参数里,Ansible就会把它当成get_url的参数去校验,而get_url模块根本没有这个参数,所以就抛出了"Unsupported parameters"的错误。

如何获取返回值?

调整缩进后,任务执行成功的话,你就可以在后续任务里正常使用downloaded_file.dest来获取下载文件的路径了。比如后续可以加一个验证任务:

- name: Print downloaded file path
  debug:
    msg: "The file was downloaded to {{ downloaded_file.dest }}"

另外补充一点:如果你的dest指定的是目录(比如你这里的/my/server/location/),get_url会自动把文件保存到该目录下,文件名会从URL中提取,这时候downloaded_file.dest就是完整的文件路径,完全符合你的需求。

内容的提问来源于stack exchange,提问作者user1717259

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:02:12