Spec-Zone.ru › Ansible 2.11

ansible.utils.to_paths – Развернуть сложное значение в словарь путей и значений

Примечание

Этот плагин входит в состав коллекции ansible.utils (версия 2.0.0).

Для его установки используйте: ansible-galaxy collection install ansible.utils.

Чтобы использовать его в книге задач, укажите: ansible.utils.to_paths.

Новое в версии 1.0.0: из ansible.utils

  • Описание
  • Параметры
  • Примеры
  • Возвращаемые значения

Описание

  • Развернуть сложное значение в словарь путей и значений.
  • Пути разделяются точкой, когда это возможно.
  • Для индексов списков и ключей, содержащих специальные символы, используются квадратные скобки.
  • to_paths также доступен как плагин фильтра.
  • Используя параметры ниже- lookup('ansible.utils.to_paths', var, prepend, wantlist)

Параметры

Параметр Варианты/Значения по умолчанию Конфигурация Комментарии
prepend
строка
Добавляет префикс к каждому элементу пути. Полезно для добавления исходного имени переменной var.
var
сырой / обязательный
Значение var будет использовано.
wantlist
булево
    Варианты:
  • нет
  • да
Если установлено в True, возвращаемое значение всегда будет списком. Это также можно сделать с помощью query или q вместо lookup. https://docs.ansible.com/ansible/latest/plugins/lookup.html

Примеры

#### Simple examples

- ansible.builtin.set_fact:
    a:
      b:
        c:
          d:
          - 0
          - 1
          e:
          - True
          - False

- ansible.builtin.set_fact:
    paths: "{{ lookup('ansible.utils.to_paths', a) }}"

# TASK [ansible.builtin.set_fact] ********************************************
# ok: [nxos101] => changed=false
#   ansible_facts:
#     paths:
#       b.c.d[0]: 0
#       b.c.d[1]: 1
#       b.c.e[0]: True
#       b.c.e[1]: False

- name: Use prepend to add the initial variable name
  ansible.builtin.set_fact:
    paths: "{{ lookup('ansible.utils.to_paths', a, prepend='a') }}"

# TASK [Use prepend to add the initial variable name] **************************
# ok: [nxos101] => changed=false
#   ansible_facts:
#     paths:
#       a.b.c.d[0]: 0
#       a.b.c.d[1]: 1
#       a.b.c.e[0]: True
#       a.b.c.e[1]: False


#### Using a complex object

- name: Make an API call
  ansible.builtin.uri:
    url: "https://nxos101/restconf/data/openconfig-interfaces:interfaces"
    headers:
      accept: "application/yang.data+json"
    url_password: password
    url_username: admin
    validate_certs: False
  register: result
  delegate_to: localhost

- name: Flatten the complex object
  ansible.builtin.set_fact:
    paths: "{{ lookup('ansible.utils.to_paths', result.json) }}"

# TASK [Flatten the complex object] ******************************************
# ok: [nxos101] => changed=false
#   ansible_facts:
#     paths:
#       interfaces.interface[0].config.enabled: 'true'
#       interfaces.interface[0].config.mtu: '1500'
#       interfaces.interface[0].config.name: eth1/71
#       interfaces.interface[0].config.type: ethernetCsmacd
#       interfaces.interface[0].ethernet.config['auto-negotiate']: 'true'
#       interfaces.interface[0].ethernet.state.counters['in-crc-errors']: '0'
#       interfaces.interface[0].ethernet.state.counters['in-fragment-frames']: '0'
#       interfaces.interface[0].ethernet.state.counters['in-jabber-frames']: '0'
#       interfaces.interface[0].ethernet.state.counters['in-mac-control-frames']: '0'
#       <...>

Возвращаемые значения

Общие возвращаемые значения описаны здесь, следующие поля уникальны для этого поиска:

Ключ Возвращаемое значение Описание
_raw
строка
успех
Словарь пар ключ-значение.
Ключ — это путь.
Значение — это значение.



Авторы

  • Bradley Thornton (@cidrblock)

© 2012–2018 Michael DeHaan
© 2018–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/utils/to_paths_lookup.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API