Spec-Zone.ru › Ansible

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

строка

Используемый метод аутентификации.

Метод аутентификации none добавлен в версию коллекции 1.2.0.

Метод аутентификации cert добавлен в версию коллекции 1.4.0.

aws_iam_login переименован в aws_iam в версии коллекции 2.1.0 и удалён в 3.0.0.

Метод аутентификации azure добавлен в версию коллекции 3.2.0.

Метод аутентификации gcp добавлен в версию коллекции 7.1.0.

Варианты:

  • "token" ← (по умолчанию)
  • "userpass"
  • "ldap"
  • "approle"
  • "aws_iam"
  • "azure"
  • "jwt"
  • "cert"
  • "gcp"
  • "none"

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    auth_method = token
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_AUTH_METHOD

    добавлено в community.hashi_vault 0.2.0

  • Переменная: ansible_hashi_vault_auth_method

    добавлено в community.hashi_vault 1.2.0

aws_access_key

псевдонимы: aws_access_key_id

строка

Ключ доступа AWS.

Конфигурация:

  • Переменная окружения: EC2_ACCESS_KEY
  • Переменная окружения: AWS_ACCESS_KEY
  • Переменная окружения: AWS_ACCESS_KEY_ID

aws_iam_server_id

строка

добавлено в community.hashi_vault 0.2.0

Если указано, задаёт значение для заголовка X-Vault-AWS-IAM-Server-ID в запросе GetCallerIdentity.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    aws_iam_server_id = VALUE
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_AWS_IAM_SERVER_ID

aws_profile

псевдонимы: boto_profile

строка

Профиль AWS

Конфигурация:

  • Переменная окружения: AWS_DEFAULT_PROFILE
  • Переменная окружения: AWS_PROFILE

aws_secret_key

псевдонимы: aws_secret_access_key

строка

Секретный ключ AWS, соответствующий ключу доступа.

Конфигурация:

  • Переменная окружения: EC2_SECRET_KEY
  • Переменная окружения: AWS_SECRET_KEY
  • Переменная окружения: AWS_SECRET_ACCESS_KEY

aws_security_token

строка

Токен безопасности AWS при использовании временных ключей доступа и секретных ключей.

Конфигурация:

  • Переменная окружения: EC2_SECURITY_TOKEN
  • Переменная окружения: AWS_SESSION_TOKEN
  • Переменная окружения: AWS_SECURITY_TOKEN

azure_client_id

строка

добавлено в community.hashi_vault 3.2.0

Идентификатор клиента (также известный как идентификатор приложения) субъекта-службы Azure AD или управляемого удостоверения. Должен быть UUID.

Если не указано, будет использоваться назначенное системой управляемое удостоверение.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    azure_client_id = VALUE
    
  • Переменная окружения: ANSIBLE_HASHI_VAULT_AZURE_CLIENT_ID
  • Переменная: ansible_hashi_vault_azure_client_id

azure_client_secret

строка

добавлено в community.hashi_vault 3.2.0

Секрет клиента субъекта-службы Azure AD.

Конфигурация:

  • Переменная окружения: ANSIBLE_HASHI_VAULT_AZURE_CLIENT_SECRET
  • Переменная: ansible_hashi_vault_azure_client_secret

azure_resource

строка

добавлено в community.hashi_vault 3.2.0

URL-адрес ресурса для приложения, зарегистрированного в Azure Active Directory. Обычно его не следует менять относительно значения по умолчанию.

По умолчанию: "https://management.azure.com/"

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    azure_resource = https://management.azure.com/
    
  • Переменная окружения: ANSIBLE_HASHI_VAULT_AZURE_RESOURCE
  • Переменная: ansible_hashi_vault_azure_resource

azure_tenant_id

строка

добавлено в community.hashi_vault 3.2.0

Идентификатор клиента Azure Active Directory (также известный как идентификатор каталога) субъекта-службы. Должен быть UUID.

Обязателен при использовании субъекта-службы для аутентификации в Vault, например, когда указаны и azure_client_id, и azure_client_secret.

Необязателен при использовании управляемого удостоверения для аутентификации в Vault.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    azure_tenant_id = VALUE
    
  • Переменная окружения: ANSIBLE_HASHI_VAULT_AZURE_TENANT_ID
  • Переменная: ansible_hashi_vault_azure_tenant_id

ca_cert

псевдонимы: cacert

строка

Путь к сертификату, используемому для аутентификации.

Если значение не задано другим способом, будет использоваться переменная окружения VAULT_CACERT.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    ca_cert = VALUE
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_CA_CERT

    добавлено в community.hashi_vault 1.2.0

  • Переменная: ansible_hashi_vault_ca_cert

    добавлено в community.hashi_vault 1.2.0

cert_auth_private_key

путь

добавлено в community.hashi_vault 1.4.0

Для аутентификации cert — путь к файлу закрытого ключа в формате PEM.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    cert_auth_private_key = VALUE
    
  • Переменная окружения: ANSIBLE_HASHI_VAULT_CERT_AUTH_PRIVATE_KEY
  • Переменная: ansible_hashi_vault_cert_auth_private_key

    добавлено в community.hashi_vault 6.2.0

cert_auth_public_key

путь

добавлено в community.hashi_vault 1.4.0

Для аутентификации cert — путь к файлу сертификата в формате PEM.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    cert_auth_public_key = VALUE
    
  • Переменная окружения: ANSIBLE_HASHI_VAULT_CERT_AUTH_PUBLIC_KEY
  • Переменная: ansible_hashi_vault_cert_auth_public_key

    добавлено в community.hashi_vault 6.2.0

data

словарь

Словарь, который будет сериализован в JSON и отправлен в теле запроса.

Если словарь содержит ключи с именами path или wrap_ttl, вызов завершится ошибкой hvac<1.2.

По умолчанию: {}

jwt

строка

JSON Web Token (JWT), используемый для аутентификации в Vault с помощью JWT.

Конфигурация:

  • Переменная окружения: ANSIBLE_HASHI_VAULT_JWT

mount_point

строка

Точка монтирования Vault.

Если не указана, используется точка монтирования по умолчанию для данного метода аутентификации.

Не применяется для аутентификации по токену.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    mount_point = VALUE
    

    добавлено в community.hashi_vault 1.5.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_MOUNT_POINT

    добавлено в community.hashi_vault 1.5.0

  • Переменная: ansible_hashi_vault_mount_point

    добавлено в community.hashi_vault 1.5.0

namespace

строка

Пространство имён Vault, в котором находятся секреты. Для этого параметра требуются HVAC 0.7.0+ и Vault 0.11+.

Этого также можно добиться, добавив пространство имён в начало точки монтирования аутентификации и/или пути к секрету (например, mynamespace/secret/mysecret).

Если задана переменная окружения VAULT_NAMESPACE, её значение будет использовано последним среди всех способов указания namespace.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    namespace = VALUE
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_NAMESPACE

    добавлено в community.hashi_vault 0.2.0

  • Переменная: ansible_hashi_vault_namespace

    добавлено в community.hashi_vault 1.2.0

password

строка

Пароль для аутентификации.

Конфигурация:

  • Переменная окружения: ANSIBLE_HASHI_VAULT_PASSWORD

    добавлено в community.hashi_vault 1.2.0

  • Переменная: ansible_hashi_vault_password

    добавлено в community.hashi_vault 1.2.0

proxies

любой тип

добавлено в community.hashi_vault 1.1.0

URL-адреса прокси-серверов, используемых для доступа к службе Vault.

Значением может быть строка или словарь.

Если это словарь, укажите схему (например, http или https) в качестве ключа, а URL-адрес — в качестве значения.

Если это строка, укажите один URL-адрес, который будет использоваться как прокси для схем http и https.

Строка, которую можно интерпретировать как словарь, будет преобразована в словарь (см. примеры).

Для ресурсов HTTP и HTTPS можно указать разные прокси-серверы.

Если значение не указано, используются переменные окружения библиотеки Requests.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    proxies = VALUE
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_PROXIES
  • Переменная: ansible_hashi_vault_proxies

    добавлено в community.hashi_vault 1.2.0

region

строка

Регион AWS, для которого создаётся подключение.

Конфигурация:

  • Переменная окружения: EC2_REGION
  • Переменная окружения: AWS_REGION

retries

любой тип

добавлено в community.hashi_vault 1.3.0

Позволяет повторять запросы при ошибках на основе класса Retry библиотеки urllib3.

В этой коллекции заданы рекомендуемые параметры для повторных подключений к Vault.

Для этого параметра можно указать положительное число (целое) или словарь.

Если этот параметр не указан или число равно 0, повторные попытки отключены.

Число задаёт общее количество повторных попыток; для остальных настроек используются значения коллекции по умолчанию.

Значение-словарь напрямую используется для инициализации класса Retry, поэтому с его помощью можно полностью настроить повторные попытки.

Подробные сведения о повторных попытках см. в руководстве пользователя коллекции.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    retries = VALUE
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_RETRIES
  • Переменная: ansible_hashi_vault_retries

retry_action

строка

добавлено в community.hashi_vault 1.3.0

Управляет тем, показывать ли сообщения о повторных попытках, и тем, как их показывать.

Не влияет на поведение, если запрос не повторяется.

Варианты:

  • "ignore"
  • "warn" ← (по умолчанию)

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    retry_action = warn
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_RETRY_ACTION
  • Переменная: ansible_hashi_vault_retry_action

role_id

строка

Идентификатор или имя роли Vault. Используется в методах аутентификации approle, aws_iam, azure и cert.

Для аутентификации cert, если role_id не указан, по умолчанию выполняется попытка использовать все роли сертификатов, и возвращается любая подходящая роль.

Для аутентификации azure параметр role_id обязателен.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    role_id = VALUE
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_ROLE_ID

    добавлено в community.hashi_vault 0.2.0

  • Переменная: ansible_hashi_vault_role_id

    добавлено в community.hashi_vault 1.2.0

secret_id

строка

Идентификатор секрета для аутентификации Vault AppRole.

Конфигурация:

  • Переменная окружения: ANSIBLE_HASHI_VAULT_SECRET_ID

    добавлено в community.hashi_vault 0.2.0

  • Переменная: ansible_hashi_vault_secret_id

    добавлено в community.hashi_vault 1.2.0

timeout

целое число

добавлено в community.hashi_vault 1.3.0

Задаёт время ожидания подключения в секундах.

Если значение не задано, используется значение по умолчанию библиотеки hvac.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    timeout = VALUE
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_TIMEOUT
  • Переменная: ansible_hashi_vault_timeout

token

строка

Токен Vault. Токен можно указать явно, через перечисленные переменные окружения [env], а также через переменную окружения VAULT_TOKEN.

Если токен не указан явно или через переменные окружения, плагин проверит наличие файла токена, путь к которому определяется параметрами token_path и token_file.

Порядок загрузки токена (используется первый найденный вариант): token param -> ansible var -> ANSIBLE_HASHI_VAULT_TOKEN -> VAULT_TOKEN -> token file.

Конфигурация:

  • Переменная окружения: ANSIBLE_HASHI_VAULT_TOKEN

    добавлено в community.hashi_vault 0.2.0

  • Переменная: ansible_hashi_vault_token

    добавлено в community.hashi_vault 1.2.0

token_file

строка

Если токен не указан, будет предпринята попытка прочитать его из этого файла в token_path.

По умолчанию: ".vault-token"

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    token_file = .vault-token
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_TOKEN_FILE

    добавлено в community.hashi_vault 0.2.0

  • Переменная: ansible_hashi_vault_token_file

    добавлено в community.hashi_vault 1.2.0

token_path

строка

Если токен не указан, будет предпринята попытка прочитать token_file из этого пути.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    token_path = VALUE
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_TOKEN_PATH

    добавлено в community.hashi_vault 0.2.0

  • Переменная: ansible_hashi_vault_token_path

    добавлено в community.hashi_vault 1.2.0

token_validate

логическое значение

добавлено в community.hashi_vault 0.2.0

При аутентификации с помощью токена перед его использованием будет выполнена операция lookup-self для проверки его действительности.

Отключите эту функцию, если у вашего токена нет возможности lookup-self.

Варианты:

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

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    token_validate = false
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_TOKEN_VALIDATE
  • Переменная: ansible_hashi_vault_token_validate

    добавлено в community.hashi_vault 1.2.0

url

строка

URL-адрес службы Vault.

Если значение не задано другим способом, будет использоваться значение переменной окружения VAULT_ADDR.

Если VAULT_ADDR также не задана, возникнет ошибка.

Конфигурация:

  • Запись INI:

    [hashi_vault_collection]
    url = VALUE
    

    добавлено в community.hashi_vault 1.4.0

  • Переменная окружения: ANSIBLE_HASHI_VAULT_ADDR

    добавлено в community.hashi_vault 0.2.0

  • Переменная: ansible_hashi_vault_url

    добавлено в community.hashi_vault 1.2.0

  • Переменная: ansible_hashi_vault_addr

    добавлено в community.hashi_vault 1.2.0

username

строка

Имя пользователя для аутентификации.

Конфигурация:

  • Переменная окружения: ANSIBLE_HASHI_VAULT_USERNAME

    добавлено в community.hashi_vault 1.2.0

  • Переменная: ansible_hashi_vault_username

    добавлено в community.hashi_vault 1.2.0

validate_certs

логическое значение

Управляет проверкой и подтверждением SSL-сертификатов. Обычно отключать эту функцию следует только для самоподписанных сертификатов.

Будет задано значение, противоположное VAULT_SKIP_VERIFY, если оно установлено, а параметр validate_certs явно не указан.

По умолчанию будет задано true, если не заданы ни validate_certs, ни VAULT_SKIP_VERIFY.

Варианты:

  • false
  • true

Конфигурация:

  • Переменная: ansible_hashi_vault_validate_certs

    добавлено в community.hashi_vault 1.2.0

wrap_ttl

строка

Задает длительность действия токена для создания оболочки ответа. Например: 15s, 20m, 25h.

Конфигурация:

  • Переменная: ansible_hashi_vault_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 }}'

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

Ключ

Описание

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

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

Необработанный результат операции записи по указанному пути.

Возвращается: успех

Авторы

  • Brian Scholer (@briantist)

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

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

© 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

Spec-Zone.ru

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