community.general.tss lookup — получение секретов из Delinea Secret Server
Примечание
Этот lookup-плагин входит в коллекцию community.general (версия 12.6.1).
Возможно, эта коллекция уже установлена, если вы используете пакет ansible. Она не входит в ansible-core. Чтобы проверить, установлена ли она, выполните ansible-galaxy collection list.
Для установки используйте: ansible-galaxy collection install community.general. Для использования этого lookup-плагина нужны дополнительные требования; подробности см. в разделе Требования.
Чтобы использовать его в плейбуке, укажите: 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'.
Требования
Для выполнения этого lookup на локальном управляющем узле необходимы следующие компоненты.
- python-tss-sdk — https://pypi.org/project/python-tss-sdk/
Параметры
Параметр | Описание |
|---|---|
Terms list / элементы=integer / обязательный | Целочисленный идентификатор секрета. |
Ключевые параметры
Здесь описаны ключевые параметры lookup. Это значения 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. По умолчанию: Конфигурация:
|
base_url string / обязательный | Базовый URL сервера, например Конфигурация:
|
domain string добавлено в community.general 3.6.0 | Домен, для которого запрашивается разрешение на доступ OAuth2. Необязателен, если Требуется версия По умолчанию: Конфигурация:
|
fetch_attachments boolean добавлено в community.general 7.0.0 | Логический флаг, указывающий, нужно ли скачивать вложенные файлы. Скачивание выполняется только в том случае, если указан Варианты:
|
fetch_secret_ids_from_folder boolean добавлено в community.general 7.1.0 | Логический флаг, указывающий, нужно ли получать идентификаторы секретов в папке по идентификатору папки. Если Варианты:
|
file_download_path path добавлено в community.general 7.0.0 | Путь для скачивания вложений. |
password string | Пароль, связанный с указанным именем пользователя. Обязателен, если Конфигурация:
|
secret_path string добавлено в community.general 7.2.0 | Полный путь к секрету, включая папку и имя секрета, если идентификатор секрета равен 0. |
token string добавлено в community.general 3.7.0 | |
token_path_uri string | Путь, добавляемый к базовому URL для формирования корректного запроса на получение разрешения на доступ OAuth2. По умолчанию: Конфигурация:
|
username string | Имя пользователя, для которого запрашивается разрешение на доступ OAuth2. Конфигурация:
|
Примечание
Указанные выше для каждого типа записей параметры конфигурации (переменная Ansible, переменная окружения и т. д.) упорядочены от низкого к высокому приоритету. Например, переменная, расположенная ниже в списке, переопределяет переменную, расположенную выше. Типы записей также упорядочены по приоритету от низкого к высокому. Например, запись ansible.cfg (расположенная выше в списке) переопределяется переменной Ansible (расположенной ниже в списке).
Примечания
Примечание
- При совместном использовании ключевых и позиционных параметров позиционные параметры необходимо указывать перед ключевыми:
lookup('community.general.tss', term1, term2, key1=value1, key2=value2)иquery('community.general.tss', term1, term2, key1=value1, key2=value2)
Примеры
# Using Secret Server Authentication
- name: Lookup secret using Secret Server user credentials
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']
}}
- name: Lookup secret with domain user
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']
}}
- name: Lookup secret using Secret Server token
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.
- name: Lookup secret and fetch attachments using Secret Server token
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
- name: Lookup secret IDs by folder ID using Secret Server token
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
- name: Lookup secret by secret path using Secret Server user credentials
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']
}}
# Using Platform Authentication
- name: Lookup secret using Platform service user credentials
hosts: localhost
vars:
secret: >-
{{
lookup(
'community.general.tss',
102,
base_url='https://platform.delinea.app/',
username='platform_service_username',
password='platform_service_user_password'
)
}}
tasks:
- ansible.builtin.debug:
msg: >
the password is {{
(secret['items']
| items2dict(key_name='slug',
value_name='itemValue'))['password']
}}
- name: Lookup secret using platform token
hosts: localhost
vars:
secret_password: >-
{{
((lookup(
'community.general.tss',
102,
base_url='https://platform.delinea.app/',
token='delinea_platform_access_token',
) | from_json).get('items') | items2dict(key_name='slug', value_name='itemValue'))['password']
}}
tasks:
- ansible.builtin.debug:
msg: the password is {{ secret_password }}
Возвращаемое значение
Ключ | Описание |
|---|---|
Возвращаемое значение list / элементы=dictionary | Ответы JSON на запросы См. https://updates.thycotic.net/secretserver/restapiguide/TokenAuth/#operation--secrets--id--get. Возвращается: при успешном выполнении |
Ссылки на коллекцию
© 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/general/tss_lookup.html