Spec-Zone.ru › Ansible

community.hashi_vault.vault_ansible_settings поиск — Возвращает параметры плагина (опции)

Примечание

Этот плагин поиска входит в коллекцию community.hashi_vault (версия 6.2.0).

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

Чтобы установить её, используйте: ansible-galaxy collection install community.hashi_vault.

Чтобы использовать её в книге задач, укажите: community.hashi_vault.vault_ansible_settings.

Новая в community.hashi_vault 2.5.0

  • Описание
  • Термины
  • Параметры ключевых слов
  • Примечания
  • См. также
  • Примеры
  • Значение возврата

Описание

  • Возвращает словарь опций и их значений для данного плагина.
  • Это наиболее полезно для использования параметров плагина в модулях и module_defaults, особенно когда общие параметры задаются в ansible.cfg, в переменных Ansible или через переменные среды на контроллере.
  • Опции могут быть отфильтрованы по имени и могут включать или исключать значения по умолчанию, не заданные опции и частные опции.

Термины

Параметр

Комментарии

Термины

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

Имена опций для загрузки.

Поддерживает fnmatch стили подстановок.

Добавьте ! перед любым именем или шаблоном для инвертирования соответствия.

Значение по умолчанию: ["*"]

Параметры ключевых слов

Это описывает параметры ключевых слов поиска. Это значения key1=value1, key2=value2 и т.д. в следующих примерах: lookup('community.hashi_vault.vault_ansible_settings', key1=value1, key2=value2, ...) и query('community.hashi_vault.vault_ansible_settings', key1=value1, key2=value2, ...)

Параметр

Комментарии

include_default

булево

Включать опции, значения которых взяты из значения по умолчанию.

Варианты:

  • false ← (значение по умолчанию)
  • true

include_none

булево

Включать опции, значения которых None (обычно означает, что они не заданы).

Варианты:

  • false ← (значение по умолчанию)
  • true

include_private

булево

Включать опции, начинающиеся с символа подчёркивания _.

Варианты:

  • false ← (значение по умолчанию)
  • true

plugin

строка

Имя плагина, параметры которого будут возвращены.

Поддерживаются только запросы поиска.

Короткие имена (без точки .) будут полностью квалифицированы с community.hashi_vault.

Значение по умолчанию: "community.hashi_vault.vault_login"

Примечания

Примечание

  • Когда параметры ключевых слов и позиционные параметры используются вместе, позиционные параметры должны указываться перед параметрами ключевых слов: lookup('community.hashi_vault.vault_ansible_settings', term1, term2, key1=value1, key2=value2) и query('community.hashi_vault.vault_ansible_settings', term1, term2, key1=value1, key2=value2)
  • Эта коллекция поддерживает некоторые переменные среды с «низким приоритетом», которые загружаются после всех других источников, таких как VAULT_ADDR.
  • Эти переменные среды не поддерживаются этим плагином.
  • Если вы хотите их использовать, используйте поиск ansible.builtin.env для прямой загрузки при вызове модуля или установке module_defaults.
  • Аналогично, любые опции, которые зависят от дополнительной обработки для заполнения их значений, не будут иметь этой обработки.
  • Например, токены не будут загружаться из файла хранилища токенов, методы авторизации не будут вызывать свои validate методы.
  • Примеры демонстрируют обходные пути, но следует рассмотреть использование специфичных для Ansible способов задания этих значений вместо этого.

См. также

См. также

Значения по умолчанию модулей

Использование ключевого слова module_defaults.

Примеры

### In these examples, we assume an ansible.cfg like this:
# [hashi_vault_collection]
# url = https://config-based-vault.example.com
# retries = 5
### end ansible.cfg

### We assume some environment variables set as well
# ANSIBLE_HASHI_VAULT_URL: https://env-based-vault.example.com
# ANSIBLE_HASHI_VAULT_TOKEN: s.123456789
### end environment variables

# playbook - ansible-core 2.12 and higher
## set defaults for the collection group
- hosts: all
  vars:
    ansible_hashi_vault_auth_method: token
  module_defaults:
    group/community.hashi_vault.vault: "{{ lookup('community.hashi_vault.vault_ansible_settings') }}"
  tasks:
    - name: Get a secret from the remote host with settings from the controller
      community.hashi_vault.vault_kv2_get:
        path: app/some/secret
######

# playbook - ansible any version
## set defaults for a specific module
- hosts: all
  vars:
    ansible_hashi_vault_auth_method: token
  module_defaults:
    community.hashi_vault.vault_kv2_get: "{{ lookup('community.hashi_vault.vault_ansible_settings') }}"
  tasks:
    - name: Get a secret from the remote host with settings from the controller
      community.hashi_vault.vault_kv2_get:
        path: app/some/secret
######

# playbook - ansible any version
## set defaults for several modules
## do not use controller's auth
- hosts: all
  vars:
    ansible_hashi_vault_auth_method: aws_iam
    settings: "{{ lookup('community.hashi_vault.vault_ansible_settings', '*', '!*token*') }}"
  module_defaults:
    community.hashi_vault.vault_kv2_get: '{{ settings }}'
    community.hashi_vault.vault_kv1_get: '{{ settings }}'
  tasks:
    - name: Get a secret from the remote host with some settings from the controller, auth from remote
      community.hashi_vault.vault_kv2_get:
        path: app/some/secret

    - name: Same with kv1
      community.hashi_vault.vault_kv1_get:
        path: app/some/secret
######

# playbook - ansible any version
## set defaults for several modules
## do not use controller's auth
## override returned settings
- hosts: all
  vars:
    ansible_hashi_vault_auth_method: userpass
    plugin_settings: "{{ lookup('community.hashi_vault.vault_ansible_settings', '*', '!*token*') }}"
    overrides:
      auth_method: aws_iam
      retries: '{{ (plugin_settings.retries | int) + 2 }}'
    settings: >-
      {{
        plugin_settings
        | combine(overrides)
      }}
  module_defaults:
    community.hashi_vault.vault_kv2_get: '{{ settings }}'
    community.hashi_vault.vault_kv1_get: '{{ settings }}'
  tasks:
    - name: Get a secret from the remote host with some settings from the controller, auth from remote
      community.hashi_vault.vault_kv2_get:
        path: app/some/secret

    - name: Same with kv1
      community.hashi_vault.vault_kv1_get:
        path: app/some/secret
######

# using a block is similar
- name: Settings
  vars:
    ansible_hashi_vault_auth_method: aws_iam
    settings: "{{ lookup('community.hashi_vault.vault_ansible_settings', '*', '!*token*') }}"
  module_defaults:
    community.hashi_vault.vault_kv2_get: '{{ settings }}'
    community.hashi_vault.vault_kv1_get: '{{ settings }}'
  block:
    - name: Get a secret from the remote host with some settings from the controller, auth from remote
      community.hashi_vault.vault_kv2_get:
        path: app/some/secret

    - name: Same with kv1
      community.hashi_vault.vault_kv1_get:
        path: app/some/secret
#####

# use settings from a different plugin
## when you need settings that are not in the default plugin (vault_login)
- name: Settings
  vars:
    ansible_hashi_vault_engine_mount_point: dept-secrets
    settings: "{{ lookup('community.hashi_vault.vault_ansible_settings', plugin='community.hashi_vault.vault_kv2_get') }}"
  module_defaults:
    community.hashi_vault.vault_kv2_get: '{{ settings }}'
  block:
    - name: Get a secret from the remote host with some settings from the controller, auth from remote
      community.hashi_vault.vault_kv2_get:
        path: app/some/secret
#####

# use settings from a different plugin (on an indivdual call)
## short names assume community.hashi_vault
- name: Settings
  vars:
    ansible_hashi_vault_engine_mount_point: dept-secrets
    settings: "{{ lookup('community.hashi_vault.vault_ansible_settings') }}"
  module_defaults:
    community.hashi_vault.vault_kv2_get: '{{ settings }}'
  block:
    - name: Get a secret from the remote host with some settings from the controller, auth from remote
      community.hashi_vault.vault_kv2_get:
        engine_mount_point: "{{ lookup('community.hashi_vault.vault_ansible_settings', plugin='vault_kv2_get') }}"
        path: app/some/secret
#####

# normally, options with default values are not returned, but can be
- name: Settings
  vars:
    settings: "{{ lookup('community.hashi_vault.vault_ansible_settings') }}"
  module_defaults:
    # we usually want to use the remote host's IAM auth
    community.hashi_vault.vault_kv2_get: >-
      {{
        settings
        | combine({'auth_method': aws_iam})
      }}
  block:
    - name: Use the plugin auth method instead, even if it is the default method
      community.hashi_vault.vault_kv2_get:
        auth_method: "{{ lookup('community.hashi_vault.vault_ansible_settings', 'auth_method', include_default=True) }}"
        path: app/some/secret
#####

# normally, options with None/null values are not returned,
# nor are private options (names begin with underscore _),
# but they can be returned too if desired
- name: Show all plugin settings
  ansible.builtin.debug:
    msg: "{{ lookup('community.hashi_vault.vault_ansible_settings', include_none=True, include_private=True, include_default=True) }}"
#####

# dealing with low-precedence env vars and token sink loading
## here, VAULT_ADDR is usually used with plugins, but that will not work with vault_ansible_settings.
## additionally, the CLI `vault login` is used before running Ansible, so the token sink is usually used, which also will not work.
- hosts: all
  vars:
    plugin_settings: "{{ lookup('community.hashi_vault.vault_ansible_settings', 'url', 'token*', include_default=True) }}"
    overrides:
      url: "{{ plugin_settings.url | default(lookup('ansible.builtin.env', 'VAULT_ADDR')) }}"
      token: >-
        {{
          plugin_settings.token
          | default(
            lookup(
              'ansible.builtin.file',
              (
                plugin_settings.token_path | default(lookup('ansible.builtin.env', 'HOME')),
                plugin_settings.token_file
              ) | path_join
            )
          )
        }}
      auth_method: token
    settings: >-
      {{
        plugin_settings
        | combine(overrides)
      }}
  module_defaults:
    community.hashi_vault.vault_kv2_get: "{{ lookup('community.hashi_vault.vault_ansible_settings') }}"
  tasks:
    - name: Get a secret from the remote host with settings from the controller
      community.hashi_vault.vault_kv2_get:
        path: app/some/secret
#####

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

Ключ

Описание

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

словарь

Словарь параметров и их значений.

Будет возвращён только один словарь, даже с несколькими терминами.

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

Пример: {"retries": 5, "timeout": 20, "token": "s.jRHAoqElnJDx6J5ExYelCDYR", "url": "https://vault.example.com"}

Авторы

  • Brian Scholer (@briantist)

Подсказка

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

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

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

© 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/hashi_vault/vault_ansible_settings_lookup.html

Spec-Zone.ru

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