Spec-Zone.ru › Ansible

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 для перечисления.

END_OF_DOCUMENT_MARKER

Ключевые параметры

Это описывает ключевые параметры поиска. Это значения 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

строка

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

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

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

повторные попытки

любой

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

действие_повтора

строка

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

идентификатор_роли

строка

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

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

Для авторизации azure, идентификатор_роли обязателен.

Настройка:

  • Запись в 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

идентификатор_секрета

строка

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

Настройка:

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

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

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

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

таймаут

целое

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

токен

строка

Токен 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_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

путь_токена

строка

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

Настройка:

  • Запись в 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

проверка_токена

логическое

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

Примечания

Примечание

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

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

Ключ

Описание

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

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

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

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

Авторы

  • Tom Kivlin (@tomkivlin)

Подсказка

Записи конфигурации для каждого типа записи имеют порядок приоритетов от низкого к высокому. Например, переменная, расположенная ниже в списке, переопределит переменную, расположенную выше.

Ссылки на сборку

  • Отслеживание ошибок
  • Репозиторий (источники)
  • Обсуждение, вопросы и ответы, устранение неполадок
  • Общение

© 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

Spec-Zone.ru

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