You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

250 lines
10 KiB

6 days ago
# Модули Ansible для управления облачными ресурсами в платформе DECORT
## Введение
Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology).
По каждому модулю есть своя документация, в которой вы можете найти список доступных действий, подробную информацию о входных параметрах и возвращаемых данных, а также примеры использования.
## Системные требования
Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT.
Системные требования для работы модуля:
- Ansible 10.6.0
- Python 3.10.12
- PyJWT 2.10.1 Python module
- requests 2.32.3 Python module
- DynamiX Enterprise 4.2.0
## Подготовка к работе
Для начала работы необходимо, чтобы Ansible было известно местоположение файлов модулей. Для этого необходимо:
- либо разместить директории **library** и **module_utils** в одной директории с плейбуками
- либо в рабочей директории, из которой будет запускаться Ansible, разместить файл **ansible.cfg**, в котором задать пути к файлам модулей, например:
```
[defaults]
library=./library
module_utils=./module_utils
```
## Авторизация
### Общие параметры модулей для авторизации
<table>
<tr>
<th colspan="6">Параметр</th>
<th>Тип</th>
<th>Описание</th>
</tr>
<tr>
<td colspan="6">
app_id
</td>
<td>
(str)
</td>
<td>
Идентификатор приложения, использующийся для получения токена в режимах
<code>authenticator: bvs</code> или <code>authenticator: decs3o</code>.
Данный параметр является обязательным для указанных режимов. Если
параметр не задан в playbook, модуль будет использовать значение
переменной окружения <code>DECORT_APP_ID</code>.
</td>
</tr>
<tr>
<td colspan="6">
app_secret
</td>
<td>
(str)
</td>
<td>
Секретный ключ приложения, использующийся для получения токена в режимах
<code>authenticator: bvs</code> или <code>authenticator: decs3o</code>.
Данный параметр является обязательным для указанных режимов.
Так как он содержит секретную информацию, то его не рекомендуется
задавать непосредственно в playbook. Если параметр не задан в playbook,
то модуль будет использовать значение переменной окружения
<code>DECORT_APP_SECRET</code>.
</td>
</tr>
<tr>
<td colspan="6">
authenticator
</td>
<td>
(str)
<br>Значения:
<br/><code>bvs</code>
<br/><code>decs3o</code>
<br/><code>oauth2</code>
<br/><code>jwt</code>
<br>Default: <code>decs3o</code>
</td>
<td>
Режим аутентификации для получения токена.
Значение <code>oauth2</code> является устаревшим и равнозначным
<code>decs3o</code>.
</td>
</tr>
<tr>
<td colspan="6">
controller_url
</td>
<td>
(str)
</td>
<td>
URL контроллера, соответствующего экземпляру облачной платформы
DECORT. Данный параметр является обязательным.
</td>
</tr>
<tr>
<td colspan="6">
domain
</td>
<td>
(str)
</td>
<td>
Домен BVS, использующийся для получения токена в режиме
<code>authenticator: bvs</code>. Данный параметр является
обязательным для указанного режима. Если параметр не задан в playbook,
модуль будет использовать значение переменной окружения
<code>DECORT_DOMAIN</code>.
</td>
</tr>
<tr>
<td colspan="6">
jwt
</td>
<td>
(str)
</td>
<td>
JSON Web Token (JWT), который будет использоваться для подключения
к контроллеру облачной платформы DECORT в режиме
<code>authenticator: jwt</code>. Данный параметр является
обязательным для указанного режима. Так как он содержит
потенциально секретную информацию, а сам JWT, как правило,
имеет ограниченное время жизни, то его не рекомендуется задавать
непосредственно в playbook. Если этот параметр не определен в
playbook, то модуль будет использовать значение переменной
окружения <code>DECORT_JWT</code>.
</td>
</tr>
<tr>
<td colspan="6">
oauth2_url
</td>
<td>
(str)
</td>
<td>
URL авторизационного сервера, работающего по протоколу Oauth2,
который должен использоваться в режимах
<code>authenticator: bvs</code>
или <code>authenticator: decs3o</code>. Данный параметр является
обязательным для указанных режимов. Если параметр не задан в
playbook, модуль будет использовать значение переменной
окружения <code>DECORT_OAUTH2_URL</code>.
</td>
</tr>
<tr>
<td colspan="6">
password
</td>
<td>
(str)
</td>
<td>
Пароль пользователя, который должен использоваться в режиме
<code>authenticator: bvs</code>. Данный параметр является
обязательным для указанного режима. Так как он содержит секретную
информацию, то его не рекомендуется задавать непосредственно
в playbook. Если параметр не задан в playbook, модуль будет
использовать значение переменной окружения
<code>DECORT_PASSWORD</code>.
</td>
</tr>
<tr>
<td colspan="6">
username
</td>
<td>
(str)
</td>
<td>
Логин пользователя, который должен использоваться в режиме
<code>authenticator: bvs</code>. Данный параметр является
обязательным для указанного режима. Если параметр не задан в playbook,
модуль будет использовать значение переменной окружения
<code>DECORT_USERNAME</code>.
</td>
</tr>
<tr>
<td colspan="6">
verify_ssl
</td>
<td>
(bool)
<br>Default: <code>true</code>
</td>
<td>
Позволяет отключить проверку SSL сертификатов при выполнении API
вызовов в адрес контроллера облачной инфраструктуры, например,
при работе с изолированной облачной инфраструктурой, использующей
самоподписанные сертификаты. Применяйте данный параметр с
осторожностью, предпочтительно в защищенных средах.
</td>
</tr>
</table>
### Пример авторизации с помощью DECS3O
```
- name: Example
hosts: localhost
tasks:
- name: DECS3O auth
decort_module_name:
# Специфичные для модулей параметры упущены
# Пример демонстрирует только параметры для авторизации
app_id: "{{ app_id }}"
app_secret: "{{ app_secret }}"
authenticator: decs3o
controller_url: https://dynamix.local
oauth2_url: https://sso-dynamix.local
```
### Пример авторизации с помощью BVS
```
- name: Example
hosts: localhost
tasks:
- name: BVS auth
decort_module_name:
# Специфичные для модулей параметры упущены
# Пример демонстрирует только параметры для авторизации
app_id: "{{ app_id }}"
app_secret: "{{ app_secret }}"
authenticator: bvs
controller_url: https://dynamix.local
oauth2_url: https://bvs.local
domain: dynamix
username: "{{ username }}"
password: "{{ password }}"
```
### Пример авторизации с помощью JSON Web Token
```
- name: Example
hosts: localhost
tasks:
- name: Auth with JWT
decort_module_name:
# Специфичные для модулей параметры упущены
# Пример демонстрирует только параметры для авторизации
authenticator: jwt
controller_url: "{{ controller_url }}"
jwt: "{{ jwt }}"
```