community.hashi_vault.vault_list lookup – Выполнение операции списка против HashiCorp Vault
Примечание
Этот плагин поиска является частью коллекции community.hashi_vault (версия 6.2.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.hashi_vault. Для использования этого плагина поиска необходимы дополнительные требования, см. Требования для подробностей.
Для использования в книге задач укажите: community.hashi_vault.vault_list.
Новое в community.hashi_vault 4.1.0
Обзор
- Выполняет общую операцию списка для заданного пути в HashiCorp Vault.
Требования
Ниже перечислены требования к локальному узлу контроллера, который выполняет этот поиск.
-
hvac(Библиотека Python) - Для подробных требований см. страницу требований к коллекции.
Термины
Параметр | Комментарии |
|---|---|
Термины строка / обязательный | Путь(и) Vault для перечисления. |
Ключевые параметры
Это описывает ключевые параметры поиска. Это значения key1=value1, key2=value2 и так далее в следующих примерах: lookup('community.hashi_vault.vault_list', key1=value1, key2=value2, ...) и query('community.hashi_vault.vault_list', key1=value1, key2=value2, ...)
Параметр | Комментарии |
|---|---|
auth_method строка | Метод аутентификации, который будет использоваться.
Выбор:
Настройка:
|
aws_access_key псевдонимы: aws_access_key_id строка | Ключ доступа AWS для использования. Настройка:
|
aws_iam_server_id строка добавлено в community.hashi_vault 0.2.0 | Если указано, устанавливает значение для использования в заголовке Настройка:
|
aws_profile псевдонимы: boto_profile строка | |
aws_secret_key псевдонимы: aws_secret_access_key строка | Секретный ключ AWS, соответствующий ключу доступа. Настройка:
|
aws_security_token строка | Токен безопасности AWS, если используются временные ключи доступа и секретные ключи. Настройка:
|
azure_client_id строка добавлено в community.hashi_vault 3.2.0 | Идентификатор клиента (также известный как идентификатор приложения) принципала Azure AD или управляемой подсистемы. Должен быть UUID. Если не указано, будет использоваться система назначенной управляемой подсистемы. Настройка:
|
azure_client_secret строка добавлено в community.hashi_vault 3.2.0 | Секретный ключ клиента принципала Azure AD. Настройка:
|
azure_resource строка добавлено в community.hashi_vault 3.2.0 | URL ресурса для приложения, зарегистрированного в Azure Active Directory. Обычно не следует изменять от значения по умолчанию. По умолчанию: Настройка:
|
azure_tenant_id string added in community.hashi_vault 3.2.0 | Идентификатор Azure Active Directory Tenant (также известный как идентификатор каталога) службы-принципала. Должен быть UUID. Требуется при использовании службы-принципала для аутентификации в Vault, например, когда указаны как azure_client_id, так и azure_client_secret. Необязательно при использовании управляемой идентичности для аутентификации в Vault. Настройка:
|
ca_cert aliases: cacert string | Путь к сертификату для аутентификации. Если не указан другими способами, будет использована переменная среды Настройка:
|
cert_auth_private_key path added in community.hashi_vault 1.4.0 | Для аутентификации Настройка:
|
cert_auth_public_key path added in community.hashi_vault 1.4.0 | Для аутентификации Настройка:
|
jwt string | JSON Web Token (JWT) для аутентификации JWT в Vault. Настройка:
|
mount_point string | Точка подключения Vault. Если не указано, используется точка подключения по умолчанию для данного метода аутентификации. Не применяется к аутентификации по токену. Настройка:
|
namespace string | Пространство имен Vault, где находятся секреты. Этот параметр требует HVAC 0.7.0+ и Vault 0.11+. Дополнительно, это может быть достигнуто путём добавления префикса к точке подключения аутентификации и/или пути к секрету со значением пространства имён (например Если переменная среды Настройка:
|
password string | Пароль для аутентификации. Настройка:
|
proxies any added in community.hashi_vault 1.1.0 | URL(ы) прокси-серверов для доступа к службе Vault. Может быть строкой или словарем. Если словарь, укажите схему (например, Если строка, укажите единственный URL, который будет использоваться в качестве прокси для схем Строка, которая может быть интерпретирована как словарь, будет преобразована в него (см. примеры). Вы можете указать различные прокси для HTTP и HTTPS ресурсов. Если не указано, используются переменные среды из библиотеки Requests. Настройка:
|
region string | AWS регион для создания соединения. Настройка:
|
повторные попытки любой добавлено в community.hashi_vault 1.3.0 | Разрешает повторные попытки при ошибках, на основе класса Retry в библиотеке urllib3. Данный набор определяет рекомендуемые значения по умолчанию для повторных подключений к Vault. Этот параметр может быть указан как положительное число (целое) или словарь. Если этот параметр не указан или число равно Число задаёт общее количество повторов, и использует значения по умолчанию набора для других настроек. Значение в виде словаря используется напрямую для инициализации класса Подробную информацию о повторных попытках см. в руководстве пользователя набора. Настройка:
|
действие_повтора строка добавлено в community.hashi_vault 1.3.0 | Управляет отображением сообщений при повторных попытках. Это не влияет, если запрос не повторяется. Варианты:
Настройка:
|
идентификатор_роли строка | Идентификатор или имя роли Vault. Используется в Для авторизации Для авторизации Настройка:
|
идентификатор_секрета строка | Идентификатор секрета для использования при аутентификации Vault AppRole. Настройка:
|
таймаут целое добавлено в community.hashi_vault 1.3.0 | Устанавливает таймаут соединения в секундах. Если не задано, используется значение по умолчанию библиотеки Настройка:
|
токен строка | Токен Vault. Токен может быть указан явно, через перечисленные переменные среды, а также через переменную Если токен не указан явно или через переменные среды, плагин проверит файл токена, определяемый значениями token_path и token_file. Порядок загрузки токенов (первый найденный имеет приоритет): Настройка:
|
файл_токена строка | Если токен не указан, будет попытка чтения токена из файла в token_path. По умолчанию: Настройка:
|
путь_токена строка | Если токен не указан, будет попытка чтения файл_токена из этого пути. Настройка:
|
проверка_токена логическое добавлено в community.hashi_vault 0.2.0 | Для авторизации по токену, выполнится операция Отключите, если ваш токен не имеет возможности Варианты:
Настройка:
|
url строка | URL-адрес службы Vault. Если не указано иначе, используется значение переменной среды Если Конфигурация:
|
username строка | Имя пользователя для аутентификации. Конфигурация:
|
validate_certs логическое | Управляет проверкой и валидацией сертификатов SSL, в основном, вы хотите отключить только при использовании самоподписанных. Будет заполняться обратным значением Будет по умолчанию Варианты:
Конфигурация:
|
Примечания
Примечание
- Когда используются ключевые и позиционные параметры вместе, позиционные параметры должны быть перечислены перед ключевыми параметрами:
lookup('community.hashi_vault.vault_list', term1, term2, key1=value1, key2=value2)иquery('community.hashi_vault.vault_list', term1, term2, key1=value1, key2=value2)
См. также
См. также
- community.hashi_vault.vault_list
-
Выполнение операции списка против HashiCorp Vault.
Примеры
- name: List all secrets at a path
ansible.builtin.debug:
msg: "{{ lookup('community.hashi_vault.vault_list', 'secret/metadata', url='https://vault:8201') }}"
# For kv2, the path needs to follow the pattern 'mount_point/metadata' or 'mount_point/metadata/path' to list all secrets in that path
- name: List access policies
ansible.builtin.debug:
msg: "{{ lookup('community.hashi_vault.vault_list', 'sys/policies/acl', url='https://vault:8201') }}"
- name: Perform multiple list operations with a single Vault login
vars:
paths:
- secret/metadata
- sys/policies/acl
ansible.builtin.debug:
msg: "{{ lookup('community.hashi_vault.vault_list', *paths, auth_method='userpass', username=user, password=pwd) }}"
- name: Perform multiple list operations with a single Vault login in a loop
vars:
paths:
- secret/metadata
- sys/policies/acl
ansible.builtin.debug:
msg: '{{ item }}'
loop: "{{ query('community.hashi_vault.vault_list', *paths, auth_method='userpass', username=user, password=pwd) }}"
- name: Perform list operations with a single Vault login in a loop (via with_)
vars:
ansible_hashi_vault_auth_method: userpass
ansible_hashi_vault_username: '{{ user }}'
ansible_hashi_vault_password: '{{ pwd }}'
ansible.builtin.debug:
msg: '{{ item }}'
with_community.hashi_vault.vault_list:
- secret/metadata
- sys/policies/acl
- name: Create fact consisting of list of dictionaries each with secret name (e.g. username) and value of a key (e.g. 'password') within that secret
ansible.builtin.set_fact:
credentials: >-
{{
credentials
| default([]) + [
{
'username': item,
'password': lookup('community.hashi_vault.vault_kv2_get', item, engine_mount_point='vpn-users').secret.password
}
]
}}
loop: "{{ query('community.hashi_vault.vault_list', 'vpn-users/metadata')[0].data['keys'] }}"
no_log: true
- ansible.builtin.debug:
msg: "{{ credentials }}"
- name: Create the same as above without looping, and only 2 logins
vars:
secret_names: >-
{{
query('community.hashi_vault.vault_list', 'vpn-users/metadata')
| map(attribute='data')
| map(attribute='keys')
| flatten
}}
secret_values: >-
{{
lookup('community.hashi_vault.vault_kv2_get', *secret_names, engine_mount_point='vpn-users')
| map(attribute='secret')
| map(attribute='password')
| flatten
}}
credentials_dict: "{{ dict(secret_names | zip(secret_values)) }}"
ansible.builtin.set_fact:
credentials_dict: "{{ credentials_dict }}"
credentials_list: "{{ credentials_dict | dict2items(key_name='username', value_name='password') }}"
no_log: true
- ansible.builtin.debug:
msg:
- "Dictionary: {{ credentials_dict }}"
- "List: {{ credentials_list }}"
- name: List all userpass users and output the token policies for each user
ansible.builtin.debug:
msg: "{{ lookup('community.hashi_vault.vault_read', 'auth/userpass/users/' + item).data.token_policies }}"
loop: "{{ query('community.hashi_vault.vault_list', 'auth/userpass/users')[0].data['keys'] }}"
Возвращаемое значение
Ключ | Описание |
|---|---|
Возвращаемое значение список / элементы=словарь | Необработанный результат чтения по заданному пути. Возвращено: успешно |
Ссылки на сборку
© 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_list_lookup.html