Spec-Zone.ru › Ansible

community.general.dependent lookup – Составляет список со вложенными элементами других списков или словарей, которые могут зависеть от переменных предыдущего цикла

Примечание

Этот плагин поиска является частью коллекции community.general (версия 9.5.0).

У вас, возможно, уже установлена эта коллекция, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

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

Для использования в книге задач укажите: community.general.dependent.

Новая функция в community.general 3.1.0

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

Описание

  • Принимает входные списки и возвращает список с элементами, которые являются списками, словарями или выражениями шаблонов, которые вычисляются в списки или словари, составленные из элементов входных вычисленных списков и словарей.

Термины

Параметр

Комментарии

Термины

список / элементы=словарь / обязательно

Список, где элементы — словари с одним элементом, сопоставляющие имя строке, списку или словарю. Имя — это индекс, используемый в объекте результата. Значение итеративно обрабатывается, как описано ниже.

Если значение — список, оно просто итерируется.

Если значение — словарь, оно итерируется и возвращается так, как если бы оно обрабатывалось фильтром ansible.builtin.dict2items.

Если значение — строка, она оценивается как выражение Jinja2, которое может получить доступ к ранее выбранным элементам с помощью item.<index_name>. Результат должен быть списком или словарем.

Примеры

- name: Install/remove public keys for active admin users
  ansible.posix.authorized_key:
    user: "{{ item.admin.key }}"
    key: "{{ lookup('file', item.key.public_key) }}"
    state: "{{ 'present' if item.key.active else 'absent' }}"
  when: item.admin.value.active
  with_community.general.dependent:
    - admin: admin_user_data
    - key: admin_ssh_keys[item.admin.key]
  loop_control:
    # Makes the output readable, so that it doesn't contain the whole subdictionaries and lists
    label: "{{ [item.admin.key, 'active' if item.key.active else 'inactive', item.key.public_key] }}"
  vars:
    admin_user_data:
      admin1:
        name: Alice
        active: true
      admin2:
        name: Bob
        active: true
    admin_ssh_keys:
      admin1:
        - private_key: keys/private_key_admin1.pem
          public_key: keys/private_key_admin1.pub
          active: true
      admin2:
        - private_key: keys/private_key_admin2.pem
          public_key: keys/private_key_admin2.pub
          active: true
        - private_key: keys/private_key_admin2-old.pem
          public_key: keys/private_key_admin2-old.pub
          active: false

- name: Update DNS records
  community.aws.route53:
    zone: "{{ item.zone.key }}"
    record: "{{ item.prefix.key ~ '.' if item.prefix.key else '' }}{{ item.zone.key }}"
    type: "{{ item.entry.key }}"
    ttl: "{{ item.entry.value.ttl | default(3600) }}"
    value: "{{ item.entry.value.value }}"
    state: "{{ 'absent' if (item.entry.value.absent | default(False)) else 'present' }}"
    overwrite: true
  loop_control:
    # Makes the output readable, so that it doesn't contain the whole subdictionaries and lists
    label: |-
        {{ [item.zone.key, item.prefix.key, item.entry.key,
            item.entry.value.ttl | default(3600),
            item.entry.value.absent | default(False), item.entry.value.value] }}
  with_community.general.dependent:
    - zone: dns_setup
    - prefix: item.zone.value
    - entry: item.prefix.value
  vars:
    dns_setup:
      example.com:
        '':
          A:
            value:
            - 1.2.3.4
          AAAA:
            value:
            - "2a01:1:2:3::1"
        'test._domainkey':
          TXT:
            ttl: 300
            value:
            - '"k=rsa; t=s; p=MIGfMA..."'
      example.org:
        'www':
          A:
            value:
            - 1.2.3.4
            - 5.6.7.8

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

Ключ

Описание

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

список / элементы=словарь

Список, состоящий из словарей, ключи которых — имена переменных из входного списка.

Возвращаемое значение: успех

Пример: [{"key1": "a", "key2": "test"}, {"key1": "a", "key2": "foo"}, {"key1": "b", "key2": "bar"}]

Авторы

  • Felix Fontein (@felixfontein)

Подсказка

Элементы конфигурации для каждого типа записи имеют порядок приоритета снизу вверх. Например, переменная, расположенная ниже в списке, переопределит переменную, расположенную выше.

Ссылки на коллекции

  • Система отслеживания ошибок
  • Репозиторий (источники)
  • Задать вопрос
  • Отправить сообщение об ошибке
  • Запросить новую функцию
  • Связь

© 2012–2018 Michael DeHaan
© 2018–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/general/dependent_lookup.html

Spec-Zone.ru

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