1

wpa_supplicant によって作成された名前付きパイプで単純な統計タスク (Ansible 2.3.1.0) を実行しています。

- stat:
    path: "/var/run/wpa_supplicant/{{ item }}"   
  with_items:
    - wifi
  register: wpa_stats   
  sudo: true

変数には、実行後に次のデータが含まれます。

ok: [10.10.23.187] => {
    "wpa_stats": {
        "changed": false, 
        "msg": "All items completed", 
        "results": [
            {
                "_ansible_item_result": true, 
                "_ansible_no_log": false, 
                "_ansible_parsed": true, 
                "changed": false, 
                "invocation": {
                    "module_args": {
                        "checksum_algorithm": "sha1", 
                        "follow": false, 
                        "get_attributes": true, 
                        "get_checksum": true, 
                        "get_md5": true, 
                        "get_mime": true, 
                        "path": "/var/run/wpa_supplicant/wifi"
                    }
                }, 
                "item": "wifi", 
                "stat": {
                    "atime": 1497900522.6306846, 
                    "attr_flags": "", 
                    "attributes": [], 
                    "block_size": 4096, 
                    "blocks": 0, 
                    "charset": "binary", 
                    "ctime": 1497900290.0605242, 
                    "dev": 18, 
                    "device_type": 0, 
                    "executable": true, 
                    "exists": true, 
                    "gid": 0, 
                    "gr_name": "root", 
                    "inode": 796, 
                    "isblk": false, 
                    "ischr": false, 
                    "isdir": false, 
                    "isfifo": false, 
                    "isgid": false, 
                    "islnk": false, 
                    "isreg": false, 
                    "issock": true, 
                    "isuid": false, 
                    "mimetype": "inode/socket", 
                    "mode": "0770", 
                    "mtime": 1497900290.0605242, 
                    "nlink": 1, 
                    "path": "/var/run/wpa_supplicant/wifi", 
                    "pw_name": "root", 
                    "readable": true, 
                    "rgrp": true, 
                    "roth": false, 
                    "rusr": true, 
                    "size": 0, 
                    "uid": 0, 
                    "version": null, 
                    "wgrp": true, 
                    "woth": false, 
                    "writeable": true, 
                    "wusr": true, 
                    "xgrp": true, 
                    "xoth": false, 
                    "xusr": true
                }
            }
        ]
    }
}

しかし、このフィルタは空の結果を返します:

- debug:
    msg: "{{ wpa_stats | json_query('results[*].stat[?exists].path') | list }}"

フィルターを削除すると、正常に[?exists]動作します。

- debug:
    msg: "{{ wpa_stats | json_query('results[*].stat.path') | list }}"

も使ってみまし==た。Jmespath がインストールされており、JSON フィルターを使用して他の値を正常にクエリしています。

私は何が欠けていますか?

4

1 に答える 1