community.hashi_vault.vault_write lookup – Выполнение операции записи в HashiCorp Vault
Примечание
Этот lookup-плагин входит в коллекцию community.hashi_vault (версия 7.1.0).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Чтобы установить её, используйте: ansible-galaxy collection install community.hashi_vault. Для использования этого lookup-плагина необходимы дополнительные компоненты. Подробности см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: community.hashi_vault.vault_write.
Добавлено в community.hashi_vault 2.4.0
- Краткое описание
- Требования
- Аргументы
- Именованные параметры
- Примечания
- См. также
- Примеры
- Возвращаемое значение
Краткое описание
- Выполняет универсальную операцию записи по указанному пути в HashiCorp Vault и возвращает любые выходные данные.
Требования
Следующие требования должны быть выполнены на локальном управляющем узле, на котором выполняется этот lookup.
-
hvac(библиотека Python) - Подробные сведения о требованиях см. на странице требований к коллекции.
Аргументы
Параметр | Комментарии |
|---|---|
Аргументы строка / обязательный | Путь или пути Vault, в которые выполняется запись. |
Параметры ключевых слов
Здесь описаны параметры ключевых слов для lookup-плагина. Это значения key1=value1, key2=value2 и так далее в следующих примерах: lookup('community.hashi_vault.vault_write', key1=value1, key2=value2, ...) и query('community.hashi_vault.vault_write', 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 Конфигурация:
|
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 строка добавлено в community.hashi_vault 3.2.0 | Идентификатор клиента Azure Active Directory (также известный как идентификатор каталога) субъекта-службы. Должен быть UUID. Обязателен при использовании субъекта-службы для аутентификации в Vault, например, когда указаны и azure_client_id, и azure_client_secret. Необязателен при использовании управляемого удостоверения для аутентификации в Vault. Конфигурация:
|
ca_cert псевдонимы: cacert строка | Путь к сертификату, используемому для аутентификации. Если значение не задано другим способом, будет использоваться переменная окружения Конфигурация:
|
cert_auth_private_key путь добавлено в community.hashi_vault 1.4.0 | Для аутентификации Конфигурация:
|
cert_auth_public_key путь добавлено в community.hashi_vault 1.4.0 | Для аутентификации Конфигурация:
|
data словарь | Словарь, который будет сериализован в JSON и отправлен в теле запроса. Если словарь содержит ключи с именами По умолчанию: |
jwt строка | JSON Web Token (JWT), используемый для аутентификации в Vault с помощью JWT. Конфигурация:
|
mount_point строка | Точка монтирования Vault. Если не указана, используется точка монтирования по умолчанию для данного метода аутентификации. Не применяется для аутентификации по токену. Конфигурация:
|
namespace строка | Пространство имён Vault, в котором находятся секреты. Для этого параметра требуются HVAC 0.7.0+ и Vault 0.11+. Этого также можно добиться, добавив пространство имён в начало точки монтирования аутентификации и/или пути к секрету (например, Если задана переменная окружения Конфигурация:
|
password строка | Пароль для аутентификации. Конфигурация:
|
proxies любой тип добавлено в community.hashi_vault 1.1.0 | URL-адреса прокси-серверов, используемых для доступа к службе Vault. Значением может быть строка или словарь. Если это словарь, укажите схему (например, Если это строка, укажите один URL-адрес, который будет использоваться как прокси для схем Строка, которую можно интерпретировать как словарь, будет преобразована в словарь (см. примеры). Для ресурсов HTTP и HTTPS можно указать разные прокси-серверы. Если значение не указано, используются переменные окружения библиотеки Requests. Конфигурация:
|
region строка | Регион AWS, для которого создаётся подключение. Конфигурация:
|
retries любой тип добавлено в community.hashi_vault 1.3.0 | Позволяет повторять запросы при ошибках на основе класса Retry библиотеки urllib3. В этой коллекции заданы рекомендуемые параметры для повторных подключений к Vault. Для этого параметра можно указать положительное число (целое) или словарь. Если этот параметр не указан или число равно Число задаёт общее количество повторных попыток; для остальных настроек используются значения коллекции по умолчанию. Значение-словарь напрямую используется для инициализации класса Подробные сведения о повторных попытках см. в руководстве пользователя коллекции. Конфигурация:
|
retry_action строка добавлено в community.hashi_vault 1.3.0 | Управляет тем, показывать ли сообщения о повторных попытках, и тем, как их показывать. Не влияет на поведение, если запрос не повторяется. Варианты:
Конфигурация:
|
role_id строка | Идентификатор или имя роли Vault. Используется в методах аутентификации Для аутентификации Для аутентификации Конфигурация:
|
secret_id строка | Идентификатор секрета для аутентификации Vault AppRole. Конфигурация:
|
timeout целое число добавлено в community.hashi_vault 1.3.0 | Задаёт время ожидания подключения в секундах. Если значение не задано, используется значение по умолчанию библиотеки Конфигурация:
|
token строка | Токен Vault. Токен можно указать явно, через перечисленные переменные окружения [env], а также через переменную окружения Если токен не указан явно или через переменные окружения, плагин проверит наличие файла токена, путь к которому определяется параметрами token_path и token_file. Порядок загрузки токена (используется первый найденный вариант): Конфигурация:
|
token_file строка | Если токен не указан, будет предпринята попытка прочитать его из этого файла в token_path. По умолчанию: Конфигурация:
|
token_path строка | Если токен не указан, будет предпринята попытка прочитать token_file из этого пути. Конфигурация:
|
token_validate логическое значение добавлено в community.hashi_vault 0.2.0 | При аутентификации с помощью токена перед его использованием будет выполнена операция Отключите эту функцию, если у вашего токена нет возможности Варианты:
Конфигурация:
|
url строка | URL-адрес службы Vault. Если значение не задано другим способом, будет использоваться значение переменной окружения Если Конфигурация:
|
username строка | Имя пользователя для аутентификации. Конфигурация:
|
validate_certs логическое значение | Управляет проверкой и подтверждением SSL-сертификатов. Обычно отключать эту функцию следует только для самоподписанных сертификатов. Будет задано значение, противоположное По умолчанию будет задано Варианты:
Конфигурация:
|
wrap_ttl строка | Задает длительность действия токена для создания оболочки ответа. Например: Конфигурация:
|
Примечание
Перечисленные выше записи конфигурации для каждого типа записей (переменная Ansible, переменная окружения и т. д.) упорядочены от низкого приоритета к высокому. Например, переменная, расположенная ниже в списке, переопределяет переменную, расположенную выше. Типы записей также упорядочены по приоритету от низкого к высокому. Например, запись ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).
Примечания
Примечание
- При совместном использовании параметров по ключевым словам и позиционных параметров позиционные параметры необходимо указывать перед параметрами по ключевым словам:
lookup('community.hashi_vault.vault_write', term1, term2, key1=value1, key2=value2)иquery('community.hashi_vault.vault_write', term1, term2, key1=value1, key2=value2) -
vault_write— это универсальный плагин для выполнения операций, для которых пока нет специализированного плагина. Если существует специализированный плагин, следует использовать его. - В подавляющем большинстве случаев операции записи лучше выполнять как задачу с помощью модуля community.hashi_vault.vault_write.
- Поиск можно использовать в случаях, когда значение необходимо непосредственно в шаблоне, однако существует риск непреднамеренного многократного выполнения операции записи.
- Поиск лучше всего использовать для конечных точек, которые напрямую обрабатывают входные данные и возвращают значение, не изменяя состояние Vault.
- Дополнительные сведения см. в руководстве по поиску.
См. также
См. также
- community.hashi_vault.vault_write
-
Выполняет операцию записи в HashiCorp Vault.
- community.hashi_vault.vault_kv2_write
-
Выполняет операцию записи секрета KVv2 в HashiCorp Vault.
- поиск community.hashi_vault.vault_read
-
Официальная документация по плагину поиска
community.hashi_vault.vault_read. - community.hashi_vault.vault_read
-
Выполняет операцию чтения из HashiCorp Vault.
- Руководство по поиску community.hashi_vault
-
Рекомендации по использованию поисковых запросов в
community.hashi_vault.
Примеры
# These examples show some uses that might work well as a lookup.
# For most uses, the vault_write module should be used.
- name: Retrieve and display random data
vars:
data:
format: hex
num_bytes: 64
ansible.builtin.debug:
msg: "{{ lookup('community.hashi_vault.vault_write', 'sys/tools/random/' ~ num_bytes, data=data) }}"
- name: Hash some data and display the hash
vars:
input: |
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Pellentesque posuere dui a ipsum dapibus, et placerat nibh bibendum.
data:
input: '{{ input | b64encode }}'
hash_algo: sha2-256
ansible.builtin.debug:
msg: "The hash is {{ lookup('community.hashi_vault.vault_write', 'sys/tools/hash/' ~ hash_algo, data=data) }}"
# In this next example, the Ansible controller's token does not have permission to read the secrets we need.
# It does have permission to generate new secret IDs for an approle which has permission to read the secrets,
# however the approle is configured to:
# 1) allow a maximum of 1 use per secret ID
# 2) restrict the IPs allowed to use login using the approle to those of the remote hosts
#
# Normally, the fact that a new secret ID would be generated on every loop iteration would not be desirable,
# but here it's quite convenient.
- name: Retrieve secrets from the remote host with one-time-use approle creds
vars:
role_id: "{{ lookup('community.hashi_vault.vault_read', 'auth/approle/role/role-name/role-id') }}"
secret_id: "{{ lookup('community.hashi_vault.vault_write', 'auth/approle/role/role-name/secret-id') }}"
community.hashi_vault.vault_read:
auth_method: approle
role_id: '{{ role_id }}'
secret_id: '{{ secret_id }}'
path: '{{ item }}'
register: secret_data
loop:
- secret/data/secret1
- secret/data/app/deploy-key
- secret/data/access-codes/self-destruct
# This time we have a secret values on the controller, and we need to run a command the remote host,
# that is expecting to a use single-use token as input, so we need to use wrapping to send the data.
- name: Run a command that needs wrapped secrets
vars:
secrets:
secret1: '{{ my_secret_1 }}'
secret2: '{{ second_secret }}'
wrapped: "{{ lookup('community.hashi_vault.vault_write', 'sys/wrapping/wrap', data=secrets) }}"
ansible.builtin.command: 'vault unwrap {{ wrapped }}'
Возвращаемое значение
Ключ | Описание |
|---|---|
Возвращаемое значение список / элементы=словарь | Необработанный результат операции записи по указанному пути. Возвращается: успех |
Ссылки на коллекцию
© 2012–2018 Michael DeHaan
© 2018–2025 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/projects/ansible/latest/collections/community/hashi_vault/vault_write_lookup.html