Spec-Zone.ru › Ansible

community.general.tss lookup – Получение секретов из Thycotic Secret Server

Примечание

Этот плагин поиска входит в состав коллекции community.general (версия 9.5.0).

Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не включена в ansible-core. Чтобы проверить установку, выполните ansible-galaxy collection list.

Для установки используйте: ansible-galaxy collection install community.general. Для использования этого плагина поиска потребуются дополнительные требования. Подробности см. в разделе Требования.

Чтобы использовать его в книге задач, укажите: community.general.tss.

Введено в community.general 1.0.0

  • Описание
  • Требования
  • Термины
  • Параметры
  • Примечания
  • Примеры
  • Возвращаемое значение

Описание

  • Использует Python SDK для Thycotic Secret Server для получения секретов из Secret Server с использованием аутентификации по токену с username и password на REST API по адресу base_url.
  • При использовании самоподписанных сертификатов переменная окружения REQUESTS_CA_BUNDLE может быть установлена в файл, содержащий доверенные сертификаты (в формате .pem).
  • Например, export REQUESTS_CA_BUNDLE='/etc/ssl/certs/ca-bundle.trust.crt'.

Требования

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

  • python-tss-sdk - https://pypi.org/project/python-tss-sdk/

Термины

Параметр

Комментарии

Термины

список / элементы=целое / обязательно

Целое значение ID секрета.

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

Здесь описываются ключевые параметры поиска. Это значения key1=value1, key2=value2 и так далее в следующих примерах: lookup('community.general.tss', key1=value1, key2=value2, ...) и query('community.general.tss', key1=value1, key2=value2, ...)

Параметр

Комментарии

api_path_uri

string

Путь, добавляемый к базовому URL для формирования допустимого запроса REST API.

Значение по умолчанию: "/api/v1"

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

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

base_url

string / required

Базовый URL сервера, например https://localhost/SecretServer.

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

  • Запись INI:

    [tss_lookup]
    base_url = VALUE
    
  • Переменная окружения: TSS_BASE_URL

domain

string

добавлено в community.general 3.6.0

Домен, с которым запрашивается грант доступа OAuth2.

Необязательно, если token не указан.

Требуется версия python-tss-sdk 1.0.0 или выше.

Значение по умолчанию: ""

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

  • Запись INI:

    [tss_lookup]
    domain = ""
    
  • Переменная окружения: TSS_DOMAIN

fetch_attachments

boolean

добавлено в community.general 7.0.0

Логический флаг, указывающий, будут ли загружаться вложенные файлы или нет.

Загрузка произойдет только в том случае, если указан file_download_path.

Варианты:

  • false
  • true

fetch_secret_ids_from_folder

boolean

добавлено в community.general 7.1.0

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

true тогда термины будут считаться идентификаторами папок. В противном случае (по умолчанию) они считаются идентификаторами секретов.

Варианты:

  • false
  • true

file_download_path

path

добавлено в community.general 7.0.0

Указывает местоположение загрузки вложенных файлов.

password

string

Пароль, связанный с указанным именем пользователя.

Требуется, если token не указан.

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

  • Запись INI:

    [tss_lookup]
    password = VALUE
    
  • Переменная окружения: TSS_PASSWORD

secret_path

string

добавлено в community.general 7.2.0

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

token

string

добавлено в community.general 3.7.0

Существующий токен для авторизатора Thycotic.

Если указан, username и password не требуются.

Требуется версия python-tss-sdk 1.0.0 или выше.

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

  • Запись INI:

    [tss_lookup]
    token = VALUE
    
  • Переменная окружения: TSS_TOKEN

token_path_uri

string

Путь, добавляемый к базовому URL для формирования допустимого запроса гранта доступа OAuth2.

Значение по умолчанию: "/oauth2/token"

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

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

username

string

Имя пользователя, с которым запрашивается грант доступа OAuth2.

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

  • Запись INI:

    [tss_lookup]
    username = VALUE
    
  • Переменная окружения: TSS_USERNAME

Примечания

Примечание

  • Когда используются ключевые и позиционные параметры, позиционные параметры должны быть перечислены перед ключевыми параметрами: lookup('community.general.tss', term1, term2, key1=value1, key2=value2) и query('community.general.tss', term1, term2, key1=value1, key2=value2)

Примеры

- hosts: localhost
  vars:
      secret: >-
        {{
            lookup(
                'community.general.tss',
                102,
                base_url='https://secretserver.domain.com/SecretServer/',
                username='user.name',
                password='password'
            )
        }}
  tasks:
      - ansible.builtin.debug:
          msg: >
            the password is {{
              (secret['items']
                | items2dict(key_name='slug',
                             value_name='itemValue'))['password']
            }}

- hosts: localhost
  vars:
      secret: >-
        {{
            lookup(
                'community.general.tss',
                102,
                base_url='https://secretserver.domain.com/SecretServer/',
                username='user.name',
                password='password',
                domain='domain'
            )
        }}
  tasks:
      - ansible.builtin.debug:
          msg: >
            the password is {{
              (secret['items']
                | items2dict(key_name='slug',
                             value_name='itemValue'))['password']
            }}

- hosts: localhost
  vars:
      secret_password: >-
        {{
            ((lookup(
                'community.general.tss',
                102,
                base_url='https://secretserver.domain.com/SecretServer/',
                token='thycotic_access_token',
            )  | from_json).get('items') | items2dict(key_name='slug', value_name='itemValue'))['password']
        }}
  tasks:
      - ansible.builtin.debug:
          msg: the password is {{ secret_password }}

# Private key stores into certificate file which is attached with secret.
# If fetch_attachments=True then private key file will be download on specified path
# and file content will display in debug message.
- hosts: localhost
  vars:
      secret: >-
        {{
            lookup(
                'community.general.tss',
                102,
                fetch_attachments=True,
                file_download_path='/home/certs',
                base_url='https://secretserver.domain.com/SecretServer/',
                token='thycotic_access_token'
            )
        }}
  tasks:
    - ansible.builtin.debug:
        msg: >
          the private key is {{
            (secret['items']
              | items2dict(key_name='slug',
                           value_name='itemValue'))['private-key']
          }}

# If fetch_secret_ids_from_folder=true then secret IDs are in a folder is fetched based on folder ID
- hosts: localhost
  vars:
      secret: >-
        {{
            lookup(
                'community.general.tss',
                102,
                fetch_secret_ids_from_folder=true,
                base_url='https://secretserver.domain.com/SecretServer/',
                token='thycotic_access_token'
            )
        }}
  tasks:
    - ansible.builtin.debug:
        msg: >
          the secret id's are {{
              secret
          }}

# If secret ID is 0 and secret_path has value then secret is fetched by secret path
- hosts: localhost
  vars:
      secret: >-
        {{
            lookup(
                'community.general.tss',
                0,
                secret_path='\folderName\secretName'
                base_url='https://secretserver.domain.com/SecretServer/',
                username='user.name',
                password='password'
            )
        }}
  tasks:
      - ansible.builtin.debug:
          msg: >
            the password is {{
              (secret['items']
                | items2dict(key_name='slug',
                             value_name='itemValue'))['password']
            }}

Значение возврата

Ключ

Описание

Значение возврата

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

JSON-ответы на GET /secrets/{id}.

См. https://updates.thycotic.net/secretserver/restapiguide/TokenAuth/#operation–secrets–id–get.

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

Авторы

  • Адам Мигус (@amigus)

Подсказка

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

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

  • Отслеживание проблем
  • Репозиторий (источники)
  • Задать вопрос
  • Отправить отчет об ошибке
  • Запросить функцию
  • Общение

© 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/general/tss_lookup.html

Spec-Zone.ru

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