Ansible: извлечь путь l oop найти - PullRequest
0 голосов
/ 05 марта 2020

У меня проблема, я не могу получить путь из поиска, когда он все oop.

Я прикрепляю результат в подробном режиме.

ok: [server04] => (item={u'nombre': u'server04', u'activ': 1, u'sen_num': 4}) => {
    "ansible_loop_var": "item", 
    "item": {
        "activ": 1, 
        "nombre": "server04", 
        "sen_num": 4
    }, 
    "registeroutput": {
        "changed": false, 
        "msg": "All items completed", 
        "results": [
            {
                "ansible_loop_var": "item", 
                "changed": false, 
                "item": {
                    "activ": 0, 
                    "nombre": "server01", 
                    "sen_num": 1
                }, 
                "skip_reason": "Conditional result was False", 
                "skipped": true
            }, 
            {
                "ansible_loop_var": "item", 
                "changed": false, 
                "item": {
                    "activ": 0, 
                    "nombre": "server02", 
                    "sen_num": 2
                }, 
                "skip_reason": "Conditional result was False", 
                "skipped": true
            }, 
            {
                "ansible_loop_var": "item", 
                "changed": false, 
                "item": {
                    "activ": 0, 
                    "nombre": "son03vmonvlc-voip", 
                    "sen_num": 3
                }, 
                "skip_reason": "Conditional result was False", 
                "skipped": true
            }, 
            {
                "ansible_loop_var": "item", 
                "changed": false, 
                "examined": 44211, 
                "failed": false, 
                "files": [
                    {
                        "atime": 1583335682.6563582, 
                        "ctime": 1583335657.5443044, 
                        "dev": 64768, 
                        "gid": 0, 
                        "gr_name": "root", 
                        "inode": 8984071, 
                        "isblk": false, 
                        "ischr": false, 
                        "isdir": true, 
                        "isfifo": false, 
                        "isgid": false, 
                        "islnk": false, 
                        "isreg": false, 
                        "issock": false, 
                        "isuid": false, 
                        "mode": "0755", 
                        "mtime": 1583335657.5443044, 
                        "nlink": 2, 
                        "path": "/tmp/erverfile_ouput", 
                        "pw_name": "root", 
                        "rgrp": true, 
                        "roth": true, 
                        "rusr": true, 
                        "size": 6, 
                        "uid": 0, 
                        "wgrp": false, 
                        "woth": false, 
                        "wusr": true, 
                        "xgrp": true, 
                        "xoth": true, 
                        "xusr": true
                    }
                ], 
                "invocation": {
                    "module_args": {
                        "age": null, 
                        "age_stamp": "mtime", 
                        "contains": null, 
                        "depth": null, 
                        "excludes": null, 
                        "file_type": "directory", 
                        "follow": false, 
                        "get_checksum": false, 
                        "hidden": false, 
                        "paths": [
                            "/usr"
                        ], 
                        "patterns": [
                            "erverfile_ouput"
                        ], 
                        "recurse": true, 
                        "size": null, 
                        "use_regex": false
                    }
                }, 
                "item": {
                    "activ": 1, 
                    "nombre": "server04", 
                    "sen_num": 4
                }, 
                "matched": 1, 
                "msg": ""
            }
        ]
    }

}

Я хочу получить "путь": "/ tmp / erverfile_ouput", "

Книга воспроизведения:

- name: Find erverfile_ouput
  find:
    paths: /tmp
    patterns: '*erverfile_ouput'
    recurse: yes
    file_type: directory
  register: registeroutput
  when: "{{ item.activ }} == 1"
  loop: "{{ sondasvars }}"
  tags:
    - move

- debug:
    var: "{{ registeroutput.results.files|map(attribute='path')|list }}"
  when: "{{ item.activ }} == 1"
  loop: "{{ sondasvars }}"

Я пытался использовать фильтр" карта ", но я могу ' Вы не можете найти путь.

Вы можете мне помочь?

Похожие ссылки: Как отфильтровать Ansible 'найти' выходные данные

BR,

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Прежде всего, спасибо, что ответили.

[ПРЕДУПРЕЖДЕНИЕ]: При построении сопоставления из test.yml, строка 2, столбец 3, обнаружен повторяющийся ключ dict (когда). Используется только последнее определенное значение.

ОШИБКА! дубликат l oop в задании: items

Ошибка, по-видимому, в 'test.yml': строка 22, столбец 3, но может быть в другом месте файла в зависимости от точной проблемы синтаксиса.

Вызывающая строка выглядит следующим образом:

  • debug: ^ здесь

Попробуйте запустить книгу с указаниями, но вы не можете, потому что вы используете 2 петли. В моей пьесе есть первая l oop для проверки некоторых переменных, помещенных в файл (vars_files)

BR

0 голосов
/ 05 марта 2020

Вы должны дать, как показано ниже

- debug:
    msg: "{{ item.files|map(attribute='path')|list }}"
  with_items: "{{registeroutput.results}}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...