Путь к папке ansible для печати из переменной реестра

Я пытаюсь напечатать только путь к переменной регистра, имеющей несколько значений, однако я могу напечатать только определенное значение. как я могу напечатать несколько значений?

      ---
  - name: find directories
    find:
      paths: "{{ item }}"
      recurse: yes
      file_type: directory
      use_regex: yes
      patterns:
        - '.*log.*'
        - '.*sbin.*'
    with_items:
      - /var
      - /usr
    register: folders_info

  - name: print folders found
    debug:
      msg: "{{ item }}"
    with_items: "{{ folders_info.results[0].files[0].path }}"

Это выводит:

          TASK [filebeat_confirm : find directories] ***********************************************************************************************************************************************
ok: [10.0.1.243] => (item=/var)
ok: [10.0.1.243] => (item=/usr)

TASK [filebeat_confirm : print folders found] ********************************************************************************************************************************************
ok: [10.0.1.243] => (item=/var/log) => {
    "msg": "/var/log"
}

1 ответ

Вопрос: «Выведите только путь к регистровой переменной».

О: Декларация ниже дает вам то, что вы хотите.

        my_dirs: "{{ folders_info.results|json_query('[].files[].path') }}"

Пример

Дано дерево для тестирования

      shell> tree /tmp/test
/tmp/test
├── usr
│   └── bin
│       └── dosepsbin
└── var
    ├── db
    ├── lib
    │   └── dkms
    │       ├── test1
    │       │   └── log
    │       ├── test2
    │       │   └── log
    │       └── test3
    │           └── log
    ├── local
    └── log

15 directories, 0 files

Книга пьес

      shell> cat pb.yml
- hosts: localhost
  become: true

  vars:

    my_dirs: "{{ folders_info.results|json_query('[].files[].path') }}"
  
  tasks:

    - name: find directories
      find:
        paths: "{{ item }}"
        recurse: true
        file_type: directory
        use_regex: true
        patterns:
          - '.*log.*'
          - '.*sbin.*'
      loop:
        - /tmp/test/var
        - /tmp/test/usr
      register: folders_info

    - debug:
        var: my_dirs

дает

      shell> ansible-playbook pb.yml

PLAY [localhost] ******************************************************************************************************************************************************************************

TASK [find directories] ***********************************************************************************************************************************************************************
ok: [localhost] => (item=/tmp/test/var)
ok: [localhost] => (item=/tmp/test/usr)

TASK [debug] **********************************************************************************************************************************************************************************
ok: [localhost] => 
  my_dirs:
  - /tmp/test/var/log
  - /tmp/test/var/lib/dkms/test1/log
  - /tmp/test/var/lib/dkms/test2/log
  - /tmp/test/var/lib/dkms/test3/log
  - /tmp/test/usr/bin/dosepsbin

PLAY RECAP ************************************************************************************************************************************************************************************
localhost: ok=2    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
Другие вопросы по тегам