首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >可能的set_fact输出

可能的set_fact输出
EN

Stack Overflow用户
提问于 2021-10-26 11:55:32
回答 1查看 76关注 0票数 1

我需要字符串或目标路径作为输出,并在其他任务中使用它,但显示的输出不同。以下是寄存器的输出

代码语言:javascript
复制
ok: [localhost] => {
    "msg": {
        "changed": true,
        "msg": "All items completed",
        "results": [
            {
                "ansible_loop_var": "item",
                "changed": true,
                "checksum": "b045e5836bbd01d9c6dd2b7426afb5d1c8957b30",
                "dest": "/home/ec2-user/bb/Data-1.1.tar.gz",
                "failed": false,
                "invocation": {
                    "module_args": {
                        "_original_basename": null,
                        "attributes": null,
                        "backup": false,
                        "checksum": null,
                        "content": null,
                        "delimiter": null,
                        "dest": "/home/ec2-user/bb/Data-1.1.tar.gz",
                        "directory_mode": null,
                        "follow": false,
                        "force": true,
                        "group": null,
                        "local_follow": null,
                        "mode": null,
                        "owner": null,
                        "regexp": null,
                        "remote_src": true,
                        "selevel": null,
                        "serole": null,
                        "setype": null,
                        "seuser": null,
                        "src": "/home/ec2-user/aa/Data-1.1.tar.gz",
                        "unsafe_writes": null,
                        "validate": null
                    }
                },
                "item": "/home/ec2-user/aa/Data-1.1.tar.gz",
                "md5sum": "df9309334454cc3ceac9a6ac8fea8989",
                "src": "/home/ec2-user/aa/Data-1.1.tar.gz"

我使用下面的任务显示目标路径

代码语言:javascript
复制
     - set_fact:
          filefact: "{{ output.results | map(attribute='item') | string }}"
     - debug:
          msg: "{{ filefact }}"

显示的输出为

代码语言:javascript
复制
ok: [localhost] => {
    "msg": "<generator object do_map at 0x7f59539f01e0>"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-26 13:07:42

我会写道:

代码语言:javascript
复制
 - set_fact:
      filefact: "{{ filefact | default([]) + [output.results.item] }}"
 - debug:
      msg: "{{ filefact }}"

正确的语法,在您的输出后面应该是:

代码语言:javascript
复制
- set_fact:
    filefact: "{{ filefact | default([]) + [output.results[0].item] }}"

代码语言:javascript
复制
- set_fact:
    filefact: "{{ filefact | default([]) + [item.item] }}"
  loop: "{{ output.results }}" 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69722661

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档