Spec-Zone.ru › Ansible

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

строка

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

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

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

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

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

Варианты:

  • "token" ← (по умолчанию)
  • "userpass"
  • "ldap"
  • "approle"
  • "aws_iam"
  • "azure"
  • "jwt"
  • "cert"
  • "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

string

added in community.hashi_vault 3.2.0

Идентификатор Azure Active Directory Tenant (также известный как идентификатор каталога) службы-принципала. Должен быть 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

aliases: cacert

string

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

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

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

  • Запись в INI:

    [hashi_vault_collection]
    ca_cert = VALUE
    

    added in community.hashi_vault 1.4.0

  • Переменная среды: ANSIBLE_HASHI_VAULT_CA_CERT

    added in community.hashi_vault 1.2.0

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

    added in community.hashi_vault 1.2.0

cert_auth_private_key

path

added in 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

    added in community.hashi_vault 6.2.0

cert_auth_public_key

path

added in 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

    added in community.hashi_vault 6.2.0

data

dictionary

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

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

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

jwt

string

JSON Web Token (JWT) для аутентификации JWT в хранилище Vault.

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

  • Переменная среды: ANSIBLE_HASHI_VAULT_JWT

mount_point

string

Точка подключения хранилища Vault.

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

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

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

  • Запись в INI:

    [hashi_vault_collection]
    mount_point = VALUE
    

    added in community.hashi_vault 1.5.0

  • Переменная среды: ANSIBLE_HASHI_VAULT_MOUNT_POINT

    added in community.hashi_vault 1.5.0

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

    added in community.hashi_vault 1.5.0

namespace

string

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

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

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

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

  • Запись в INI:

    [hashi_vault_collection]
    namespace = VALUE
    

    added in community.hashi_vault 1.4.0

  • Переменная среды: ANSIBLE_HASHI_VAULT_NAMESPACE

    added in community.hashi_vault 0.2.0

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

    added in community.hashi_vault 1.2.0

password

string

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

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

  • Переменная среды: ANSIBLE_HASHI_VAULT_PASSWORD

    added in community.hashi_vault 1.2.0

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

    added in community.hashi_vault 1.2.0

proxies

any

added in community.hashi_vault 1.1.0

URL(ы) прокси-серверов для доступа к хранилищу Vault.

Может быть строкой или словарем.

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

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

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

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

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

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

  • Запись в INI:

    [hashi_vault_collection]
    proxies = VALUE
    

    added in community.hashi_vault 1.4.0

  • Переменная среды: ANSIBLE_HASHI_VAULT_PROXIES
  • Переменная: ansible_hashi_vault_proxies

    added in community.hashi_vault 1.2.0

region

string

Регион AWS для создания соединения.

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

  • Переменная среды: EC2_REGION
  • Переменная среды: AWS_REGION

retries

any

добавлено в 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

string

добавлено в 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

string

Идентификатор или имя роли 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

string

Идентификатор секрета, используемый для аутентификации 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

integer

добавлено в 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

string

Токен Vault. Токен может быть явно задан через перечисленные переменные среды, а также через 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

string

Если токен не указан, токен будет пытаться прочитать из этого файла в 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

string

Если токен не указан, то плагин будет пытаться прочитать 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

boolean

added in community.hashi_vault 0.2.0

Для аутентификации по токену, выполнит операцию lookup-self для определения валидности токена перед использованием.

Отключите, если ваш токен не обладает возможностью lookup-self.

Варианты:

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

Настройка:

  • Запись INI:

    [hashi_vault_collection]
    token_validate = false
    

    added in community.hashi_vault 1.4.0

  • Переменная среды: ANSIBLE_HASHI_VAULT_TOKEN_VALIDATE
  • Переменная: ansible_hashi_vault_token_validate

    added in community.hashi_vault 1.2.0

url

string

URL-адрес сервиса Vault.

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

Если VAULT_ADDR также не определено, будет выведено сообщение об ошибке.

Настройка:

  • Запись INI:

    [hashi_vault_collection]
    url = VALUE
    

    added in community.hashi_vault 1.4.0

  • Переменная среды: ANSIBLE_HASHI_VAULT_ADDR

    added in community.hashi_vault 0.2.0

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

    added in community.hashi_vault 1.2.0

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

    added in community.hashi_vault 1.2.0

username

string

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

Настройка:

  • Переменная среды: ANSIBLE_HASHI_VAULT_USERNAME

    added in community.hashi_vault 1.2.0

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

    added in community.hashi_vault 1.2.0

validate_certs

boolean

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

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

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

Варианты:

  • false
  • true

Настройка:

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

    added in community.hashi_vault 1.2.0

wrap_ttl

string

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

Настройка:

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

Примечания

Примечание

  • Когда используются ключевые и позиционные параметры вместе, позиционные параметры должны быть указаны до ключевых параметров: 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 }}'

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

Ключ

Описание

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

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

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

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

Авторы

  • 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_write_lookup.html

Spec-Zone.ru

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