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. Значение по умолчанию: Конфигурация:
|
base_url string / required | Базовый 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. Конфигурация:
|
Примечания
Примечание
- Когда используются ключевые и позиционные параметры, позиционные параметры должны быть перечислены перед ключевыми параметрами:
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-ответы на См. https://updates.thycotic.net/secretserver/restapiguide/TokenAuth/#operation–secrets–id–get. Возвращено: успех |
Ссылки на коллекции
© 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