community.hashi_vault.vault_write 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_write.
Новое в community.hashi_vault 2.4.0
Описание
- Выполняет общую операцию записи в заданный путь в HashiCorp Vault, возвращая любой вывод.
Требования
Ниже перечислены требования, необходимые на узле локального контроллера, который выполняет этот поиск.
-
hvac(Библиотека Python) - Подробные требования см. на странице требований к коллекции требований к коллекции.
Термины
Параметр | Комментарии |
|---|---|
Термины строка / обязательный | Пути в хранилище Vault, в которые будет производиться запись. |
Ключевые параметры
Это описывает ключевые параметры поиска. Это значения 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_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 | Для аутентификации Конфигурация:
|
data dictionary | Словарь, который будет сериализован в JSON и отправлен в качестве тела запроса. Если словарь содержит ключи, именованные По умолчанию: |
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 для создания соединения. Конфигурация:
|
retries any добавлено в community.hashi_vault 1.3.0 | Позволяет повторные попытки при ошибках, на основе класса Retry в библиотеке urllib3. Этот сборник определяет рекомендуемые значения по умолчанию для повторных попыток подключения к Vault. Этот параметр может быть указан как положительное число (целое число) или словарь. Если этот параметр не указан или число равно Число задаёт общее количество попыток, и использует значения по умолчанию сборника для других настроек. Значение словаря используется непосредственно для инициализации класса Подробную информацию о повторных попытках см. в руководстве пользователя сборника. Конфигурация:
|
retry_action string добавлено в community.hashi_vault 1.3.0 | Управляет отображением сообщений при повторных попытках. Это не влияет, если запрос не повторяется. Варианты:
Конфигурация:
|
role_id string | Идентификатор или имя роли Vault. Используется в Для аутентификации Для аутентификации Конфигурация:
|
secret_id string | Идентификатор секрета, используемый для аутентификации Vault AppRole. Конфигурация:
|
timeout integer добавлено в community.hashi_vault 1.3.0 | Устанавливает таймаут соединения в секундах. Если не задано, используется значение по умолчанию библиотеки Конфигурация:
|
token string | Токен Vault. Токен может быть явно задан через перечисленные переменные среды, а также через Если токен не указан явно или через переменные среды, то плагин проверит файл токена, как определено в token_path и token_file. Порядок загрузки токенов (первый найденный используется) Конфигурация:
|
token_file string | Если токен не указан, токен будет пытаться прочитать из этого файла в token_path. По умолчанию: Конфигурация:
|
token_path string | Если токен не указан, то плагин будет пытаться прочитать token_file из этого пути. Конфигурация:
|
token_validate boolean added in community.hashi_vault 0.2.0 | Для аутентификации по токену, выполнит операцию Отключите, если ваш токен не обладает возможностью Варианты:
Настройка:
|
url string | URL-адрес сервиса Vault. Если не указано другим способом, будет использовано значение переменной среды Если Настройка:
|
username string | Имя пользователя для аутентификации. Настройка:
|
validate_certs boolean | Управляет проверкой и валидацией сертификатов SSL. Обычно отключается только для самоподписанных. Будет заполнено обратным значением Будет установлено значение по умолчанию Варианты:
Настройка:
|
wrap_ttl string | Указывает длительность создания токена с оберткой ответа. Например Настройка:
|
Примечания
Примечание
- Когда используются ключевые и позиционные параметры вместе, позиционные параметры должны быть указаны до ключевых параметров:
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 lookup
-
Официальная документация плагина вызова
community.hashi_vault.vault_read. - community.hashi_vault.vault_read
-
Выполнение операции чтения в HashiCorp Vault.
- Руководство по вызовам HashiCorp 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–2024 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/latest/collections/community/hashi_vault/vault_write_lookup.html