可以从列表中注册所有变量

问题描述 投票:0回答:1

我在迭代输出并将其注册到变量时遇到问题。我需要获取目录中的所有xml文件路径。

脚本:

---
- hosts: "{{ host }}"
  gather_facts: false
  tasks:
     - name: Find xml files
       win_find:
          paths: C:\Directory
          patterns: ['*.xml']
       register: filesfind
     - name: set facts
       set_fact:
          find: "{{ filesfind.files.0.path }}"

输出:

ok: [host] => {
    "changed": false,
    "examined": 17,
    "files": [
        {
            "attributes": "Archive",
            "checksum": "dd1f259408cf08a40da492238101344824199594",
            "creationtime": 1586955271.1427224,
            "extension": ".xml",
            "filename": "File1.xml",
            "isarchive": true,
            "isdir": false,
            "ishidden": false,
            "islnk": false,
            "isreadonly": false,
            "isshared": false,
            "lastaccesstime": 1586955271.1427224,
            "lastwritetime": 1586867409.3292916,
            "owner": "BUILTIN\\Administrators",
            "path": "C:\\Directory\\File1.xml",
            "size": 218428
        },
        {
            "attributes": "Archive",
            "checksum": "dd1f259408cf08a40da492238101344824199594",
            "creationtime": 1586867369.8255088,
            "extension": ".xml",
            "filename": "File2.xml",
            "isarchive": true,
            "isdir": false,
            "ishidden": false,
            "islnk": false,
            "isreadonly": false,
            "isshared": false,
            "lastaccesstime": 1586867369.8255088,
            "lastwritetime": 1586867409.3292916,
            "owner": "BUILTIN\\Administrators",
            "path": "C:\\Directory\\File2.xml",
            "size": 218428
        }
    ],
    "matched": 2

它仅注册我在剧本中定义的文件[0] .path。如何遍历所有列表索引或项目并将所有路径放入一个变量?

ansible ansible-2.x
1个回答
0
投票

过滤器“地图”完成了工作。下面的任务

    - set_fact:
        myfind: "{{ filesfind.files|map(attribute='path')|list }}"
    - debug:
        var: myfind

给予

    "myfind": [
        "C:\\Directory\\File1.xml", 
        "C:\\Directory\\File2.xml"
    ]
© www.soinside.com 2019 - 2024. All rights reserved.