Spec-Zone.ru › Ansible 2.11

ansible.builtin.subelements – обход вложенного ключа из списка словарей

Примечание

Этот модуль является частью ansible-base и включён во все установки Ansible. В большинстве случаев вы можете использовать короткое имя модуля subelements даже без указания collections: ключевого слова. Несмотря на это, мы рекомендуем использовать FQCN для лёгкой ссылки на документацию модуля и для избежания конфликтов с другими коллекциями, которые могут иметь то же имя модуля.

Добавлено в версии 1.4: of ansible.builtin

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

Описание

  • Subelements обходит список хешей (также известных как словари) и затем обходит список с заданным (вложенным под-)ключом внутри этих записей.

Параметры

Параметр Варианты/Значения по умолчанию Настройка Комментарии
_terms
строка / обязательно
кортеж из списка словарей и ключа словаря для извлечения
skip_missing
строка
Значение по умолчанию:
"no"
Модуль поиска принимает этот флаг из словаря как необязательный. См. раздел Примеры для получения дополнительной информации.
Если установлено в True, плагин поиска пропустит элементы списков, которые не содержат указанный подключ.
Если установлено в False, плагин выдаст ошибку и пожалуется на недостающий подключа.

Примеры

- name: show var structure as it is needed for example to make sense
  hosts: all
  vars:
    users:
      - name: alice
        authorized:
          - /tmp/alice/onekey.pub
          - /tmp/alice/twokey.pub
        mysql:
            password: mysql-password
            hosts:
              - "%"
              - "127.0.0.1"
              - "::1"
              - "localhost"
            privs:
              - "*.*:SELECT"
              - "DB1.*:ALL"
        groups:
          - wheel
      - name: bob
        authorized:
          - /tmp/bob/id_rsa.pub
        mysql:
            password: other-mysql-password
            hosts:
              - "db1"
            privs:
              - "*.*:SELECT"
              - "DB2.*:ALL"
  tasks:
    - name: Set authorized ssh key, extracting just that data from 'users'
      authorized_key:
        user: "{{ item.0.name }}"
        key: "{{ lookup('file', item.1) }}"
      with_subelements:
         - "{{ users }}"
         - authorized

    - name: Setup MySQL users, given the mysql hosts and privs subkey lists
      mysql_user:
        name: "{{ item.0.name }}"
        password: "{{ item.0.mysql.password }}"
        host: "{{ item.1 }}"
        priv: "{{ item.0.mysql.privs | join('/') }}"
      with_subelements:
        - "{{ users }}"
        - mysql.hosts

    - name: list groups for users that have them, don't error if groups key is missing
      debug: var=item
      loop: "{{ q('subelements', users, 'groups', {'skip_missing': True}) }}"

Значения возврата

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

Ключ Возвращаемое значение Описание
_list
строка
успех
список извлечённых подэлементов



Авторы

  • Serge van Ginderachter (!UNKNOWN) <serge@vanginderachter.be>

© 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/builtin/subelements_lookup.html

Spec-Zone.ru

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