|
|
|
|
# Вспомогательный модуль для получения авторизационного JWT токена decort_jwt
|
|
|
|
|
## Обзор модуля decort_jwt
|
|
|
|
|
|
|
|
|
|
Модуль **decort_jwt** предназначен для получения авторизационного токена JWT (JSON Web Token). Данный модуль может быть полезен при массовом создании ресурсов (например, виртуальных машин), так как позволяет оптимизировать количество API вызовов, инициируемых в адрес контроллера облачной платформы.
|
|
|
|
|
|
|
|
|
|
По сути, данный модуль является провайдером информации и не управляет облачными ресурсами (всегда возвращает `changed: False`).
|
|
|
|
|
## Параметры модуля decort_jwt
|
|
|
|
|
|
|
|
|
|
Ниже в алфавитном порядке приведен полный список параметров для модуля **decort_jwt**. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
|
|
|
`ansible-doc -t module decort_jwt`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|Параметр | Тип, допустимые значения | Описание|
|
|
|
|
|
| ------ | ------ | ------ |
|
|
|
|
|
| app_id | (string) | Идентификатор приложения, использующийся для подключения к авторизационному серверу. Данный параметр является обязательным. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
|
|
|
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к авторизационному серверу. Данный параметр является обязательным. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
|
|
|
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, у которого запрашивается JWT. Данный параметр является обязательным. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
|
|
|
| validity | (int)<br>Default: `3600` | Срок действия JWT в секундах. |
|
|
|
|
|
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес авторизационного сервера, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
|
|
|
|
|
|
|
|
## Возвращаемые значения модуля decort_jwt
|
|
|
|
|
|
|
|
|
|
При успешном выполнении модуль **decort_jwt** возвращает JWT-токен, который доступен по ключу `jwt` (str).
|
|
|
|
|
|
|
|
|
|
## Пример использования модуля decort_jwt
|
|
|
|
|
|
|
|
|
|
В данном примере сначала запрашивается JWT со сроком действия 1200 сек., а затем этот JWT используется для создания виртуальной машины в режиме авторизации `jwt` (подробнее о данном режиме см. в разделе «Примеры различных режимов авторизации»).
|
|
|
|
|
```
|
|
|
|
|
- hosts: localhost
|
|
|
|
|
tasks:
|
|
|
|
|
- name: Obtain JWT with validity of 1200 sec from the OAuth2 provider
|
|
|
|
|
decort_jwt:
|
|
|
|
|
app_id: "{{ my_app_id }}"
|
|
|
|
|
app_secret: "{{ my_app_secret }}"
|
|
|
|
|
oauth2_url: "https://sso.digitalenergy.online"
|
|
|
|
|
validity: 1200
|
|
|
|
|
register: my_token
|
|
|
|
|
```
|
|
|
|
|
```
|
|
|
|
|
- name: Create VM in JWT authorization mode
|
|
|
|
|
decort_kvmvm:
|
|
|
|
|
authenticator: jwt
|
|
|
|
|
jwt: "{{ my_token.jwt }}"
|
|
|
|
|
controller_url: "https://cloud.digitalenergy.online"
|
|
|
|
|
name: NewVM01
|
|
|
|
|
cpu: 2
|
|
|
|
|
ram: 4096
|
|
|
|
|
<<<дальнейшие детали опущены>>>
|
|
|
|
|
```
|
|
|
|
|
Обратите внимание, как используется JWT при создании новой ВМ (в предположении, что результат выполнения task для модуля **decort_jwt** был сохранен в переменной my_token):
|
|
|
|
|
```
|
|
|
|
|
jwt: "{{ my_token.jwt }}"
|
|
|
|
|
```
|