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

Ansible set_fact提取注册结果路径返回generator对象如何解决

问题原因

  1. map过滤器返回的是生成器对象,直接调用string过滤器不会解析生成器内容,才会输出<generator object do_map ...>的异常结果
  2. 你当前提取的item属性是循环的输入项(也就是源文件路径),如果要获取目标路径应该取dest字段而非item字段

解决方案

场景1:仅单个循环结果(你示例中的场景)

直接取第一个结果的对应属性即可:

- set_fact:
    # 提取目标路径就用dest字段,要源路径就换成item字段
    filefact: "{{ output.results[0].dest }}"
- debug:
    msg: "{{ filefact }}"

执行后输出即为你需要的字符串:/home/ec2-user/bb/Data-1.1.tar.gz

场景2:多个循环结果,要提取所有路径

先用list过滤器把map返回的生成器转成列表,按需拼接成字符串即可:

# 提取所有目标路径为列表格式
- set_fact:
    filefact_list: "{{ output.results | map(attribute='dest') | list }}"
# 如果需要转成空格分隔的字符串,加join过滤器
- set_fact:
    filefact_str: "{{ output.results | map(attribute='dest') | list | join(' ') }}"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 17:57:07