Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2aa403ef60 |
187
CHANGELOG.md
187
CHANGELOG.md
@@ -1,114 +1,137 @@
|
|||||||
# Список изменений в версии 6.0.0
|
# Список изменений в версии 5.3.0
|
||||||
|
|
||||||
## Обновления
|
## Обновления
|
||||||
|
|
||||||
### Модуль decort_user_info
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
|
||||||
| --- | --- |
|
|
||||||
| BANS-515 | Фильтрация аудитов по коду ответа происходит в фильтре `status_code`, принимающем параметры `min` и `max`. |
|
|
||||||
|
|
||||||
### Модуль decort_account_info
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
|
||||||
| --- | --- |
|
|
||||||
| BANS-554 | Удалён подпараметр `images.deleted`. |
|
|
||||||
|
|
||||||
### Модуль decort_kvmvm
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
|
||||||
| --- | --- |
|
|
||||||
| BANS-573 | Удалён параметр `arch`. |
|
|
||||||
| BANS-581 |Добавлен параметр `chipset` для указания чипсета при создании виртуальной машины. |
|
|
||||||
| BANS-528 | Добавлен тип сети `VFNIC`. |
|
|
||||||
| BANS-586 | Добавлен параметр `network_order_changing`, позволяющий включить соблюдение очерёдности сетей при их изменении. |
|
|
||||||
| BANS-522 | Добавлен тип сети `EMPTY`. |
|
|
||||||
| BANS-592 | Добавлен тип сети `DPDK`. |
|
|
||||||
| BANS-11 | Добавлена возможность создать виртуальную машину без образа. |
|
|
||||||
| BANS-12 | Добавлена возможность переименования виртуальной машины. |
|
|
||||||
| BANS-596 | Добавлена возможность изменения IP-адреса ВМ во внутренней/внешней сети без переподключения сети. |
|
|
||||||
|
|
||||||
### Модуль decort_osimage
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
|
||||||
| --- | --- |
|
|
||||||
| BANS-573 | Удалён параметр `architecture`. |
|
|
||||||
|
|
||||||
### Модуль decort_rg
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
|
||||||
| --- | --- |
|
|
||||||
| BANS-507 | Добавлена возможность удаления сети по умолчанию. |
|
|
||||||
| BANS-509 | Добавлен параметр `sep_pools` для указания доступных пулов СХД. |
|
|
||||||
| BANS-7 | Добавлен параметр `recursive_deletion` для удаления непустой РГ. |
|
|
||||||
|
|
||||||
### Модуль decort_account
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
|
||||||
| --- | --- |
|
|
||||||
| BANS-508 | Добавлен параметр `sep_pools` для указания доступных пулов СХД. |
|
|
||||||
|
|
||||||
## Исправления
|
|
||||||
|
|
||||||
### Глобальные
|
### Глобальные
|
||||||
| Идентификатор<br>задачи | Описание |
|
| Идентификатор<br>задачи | Описание |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| BANS-511 | При ошибке HTTP-подключения в некоторых случаях работа модуля завершалась ошибкой Python. |
|
| BANS-62 | Добавлен вывод текста ответа в сообщение об ошибке запроса к API. |
|
||||||
|
|
||||||
|
|
||||||
### Модуль decort_bservice
|
### Модуль decort_bservice
|
||||||
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
|
||||||
|-------------------------| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
||||||
| BANS-549 | Модуль требовал параметр `name` вместе с параметром `id`.<br/> Исправлено завершение работы модуля с ошибкой Python при отсутствии параметра `rg_id` при заданном параметре `id`. |
|
|
||||||
|
|
||||||
### Модуль decort_kvmvm
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
| Идентификатор<br>задачи | Описание |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| BANS-550 | Отсутствие параметров `cpu` и/или `ram` при заданном параметре `id` вызывало завершение работы модуля **decort_kvmvm** с ошибкой Python. |
|
| BANS-434 | В модуле **decort_bservice** в возвращаемом словаре `facts` ключи `groupsIds` и `groupsName` заменены на ключ `groups`, который содержит словари с информацией о группах базовой службы. |
|
||||||
| BANS-588 | Исправлена ошибка, при которой модуль производил изменения при незаданных параметрах `data_disks`, `networks`, `tag`, `affinity_label`, `aff_rule`, `aaff_rule`. |
|
|
||||||
|
## Исправления
|
||||||
|
|
||||||
|
### Модуль decort_bservice
|
||||||
|
|
||||||
|
| Идентификатор<br>задачи | Описание |
|
||||||
|
| --- | --- |
|
||||||
|
| BANS-366 | Работа модуля **decort_bservice** завершалась ошибкой Python при удалении базовой службы. |
|
||||||
|
| BANS-367 | Работа модуля **decort_bservice** завершалась ошибкой модуля при использовании параметров `rg_name` и `account_name` вместо параметра `rg_id`. |
|
||||||
|
| BANS-368 | Работа модуля **decort_bservice** завершалась ошибкой Python при повторном запуске создания базовой службы. |
|
||||||
|
| BANS-369 | Модуль **decort_bservice** не реагировал на режим **check mode** при создании базовой службы. |
|
||||||
|
|
||||||
### Модуль decort_disk
|
### Модуль decort_disk
|
||||||
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
| Идентификатор<br>задачи | Описание |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| BANS-534 | Исправлена ошибка получения данных о привязке диска к виртуальной машине. |
|
| BANS-246 | Работа модуля **decort_disk** завершалась ошибкой Python при обработке ошибочных сценариев работы. |
|
||||||
| BANS-557 | Модуль требовал параметр `account_id` или `account_name` при заданном параметре `id`. |
|
| BANS-248 | Работа модуля **decort_disk** завершалась ошибкой Python при попытке валидировать заданный параметр `limitIO`. |
|
||||||
| BANS-558 | Модуль пытался произвести `rename` и `resize` при отсутствующих параметрах `name` и `size` |
|
| BANS-249 | Работа модуля **decort_disk** завершалась ошибкой Python при попытке при попытке выполнить изменения в соответствии с заданным параметром `limitIO`. |
|
||||||
|
| BANS-250 | Работа модуля **decort_disk** завершалась ошибкой Python при заданном параметре `shareable`. |
|
||||||
|
| BANS-255 | Модуль **decort_disk** не выполнял безвозвратное удаление кластера из корзины. |
|
||||||
|
| BANS-260 | Работа модуля **decort_disk** завершалась ошибкой Python при попытке переименовать диск. |
|
||||||
|
| BANS-264 | Работа модуля **decort_disk** завершалась ошибкой Python при попытке изменить объём диска в режиме **check mode**. |
|
||||||
|
|
||||||
### Модуль decort_group
|
### Модуль decort_group
|
||||||
| Идентификатор<br>задачи | Описание |
|
|
||||||
| --- | --- |
|
|
||||||
| BANS-560 | Модуль требовал параметр `name` при заданном параметре `id`. |
|
|
||||||
| BANS-561 | Модуль всегда требовал параметр `count`. |
|
|
||||||
| BANS-562 | Модуль производил обновление сетей при незаданном параметре `networks`. |
|
|
||||||
| BANS-563 | Модуль производил вызов API `cloudapi/bservice/groupUpdate` при незаданных параметрах. |
|
|
||||||
| BANS-564 | Модуль завершал свою работу с ошибкой Python если не заданы все необходимые параметры при создании группы. |
|
|
||||||
|
|
||||||
### Модуль decort_osimage
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
| Идентификатор<br>задачи | Описание |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| BANS-566 | Модуль не удалял шаблонный образ без указания идентификатора аккаунта. |
|
| BANS-390 | Работа модуля **decort_group** завершалась ошибкой запроса к API при создании группы БС. |
|
||||||
| BANS-567 | Модуль завершал свою работу с ошибкой запроса к API при попытке удалить несуществующий или уже удалённый образ. |
|
| BANS-391 | Модуль **decort_group** не использовал заданные в параметре `networks` внешние сети при создании группы БС. |
|
||||||
| BANS-568 | Модуль завершал свою работу ошибкой запроса к API при заданном параметре `virt_id` и незаданном параметре `image_id`. |
|
| BANS-395 | Работа модуля **decort_group** завершалась ошибкой запроса к API при повторном запуске создания группы БС. |
|
||||||
|
| BANS-396 | Модуль **decort_group** при повторном запуске создания сообщал о том, что были выполнены изменения. |
|
||||||
### Модуль decort_lb
|
| BANS-399 | Работа модуля **decort_group** завершалась ошибкой запроса к API при удалении группы БС. |
|
||||||
| Идентификатор<br>задачи | Описание |
|
| BANS-419 | Модуль **decort_group** при повторном запуске изменения параметра networks сообщал о том, что были выполнены изменения. |
|
||||||
| --- | --- |
|
|
||||||
| BANS-569 | Модуль требовал параметр `lb_name` при заданном параметре `lb_id`. |
|
|
||||||
| BANS-570 | Модуль завершал работу с ошибкой запроса к API при заданных параметрах `lb_name` и `rg_id` существующего балансировщика. |
|
|
||||||
| BANS-571 | Модуль удалял конфигурации backend и frontend у существующего балансировщика при незаданных параметрах `backends`, `servers`, `frontends`. |
|
|
||||||
|
|
||||||
### Модуль decort_k8s
|
### Модуль decort_k8s
|
||||||
| Идентификатор<br>задачи | Описание |
|
|
||||||
| --- | --- |
|
|
||||||
| BANS-198 | Модуль завершал свою работу с ошибкой Python при отсутствии необязательных подпараметров `workers.sep_id` и `workers.pool`. |
|
|
||||||
| BANS-576 | Модуль требовал необязательные параметры при заданном параметре `id`. |
|
|
||||||
| BANS-578 | Модуль требовал необязательные параметры для изменения группы worker-узлов. |
|
|
||||||
|
|
||||||
### Модуль decort_rg
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
| Идентификатор<br>задачи | Описание |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| BANS-546 | Модуль требовал параметр `account_id` или `account_name` при заданном параметре `rg_id`. |
|
| BANS-197 | Работа модуля **decort_k8s** завершалась ошибкой Python если не задан параметр `oidc_cert`. |
|
||||||
|
| BANS-202 | Работа модуля **decort_k8s** завершалась ошибкой модуля при попытке использовать `rg_name` и `account_name` вместо `rg_id` при создании кластера. |
|
||||||
|
| BANS-203 | В модуле **decort_k8s** был задан неверный тип данных для параметров `cluster_conf`, `kublet_conf`, `kubeproxy_conf`, `join_conf` |
|
||||||
|
| BANS-216 | Работа модуля **decort_k8s** завершалась ошибкой модуля при попытке создать кластер в режиме **check mode**. |
|
||||||
|
| BANS-218 | Модуль **decort_k8s** не выполнял безвозвратное удаление кластера из корзины. |
|
||||||
|
| BANS-221 | Модуль **decort_k8s** некорректно обрабатывал параметр `vins_id`, что вызывало создание новой внутренней сети при заданном параметре `vins_id`. |
|
||||||
|
| BANS-225 | Модуль **decort_k8s** не сообщал о выполненных изменениях при выполнении восстановления кластера из корзины. |
|
||||||
|
| BANS-226 | Модуль **decort_k8s** не выполнял запуск кластера после его восстановления из корзины. |
|
||||||
|
| BANS-236 | Модуль **decort_k8s** игнорировал заданный параметр `getConfig` при запуске в режиме **check mode**. |
|
||||||
|
| BANS-243 | Модуль **decort_k8s** выполнял изменения в соответствии с заданным параметром `workers` при запуске в режиме **check mode**. |
|
||||||
|
|
||||||
|
### Модуль decort_kvmvm
|
||||||
|
|
||||||
### Модуль decort_account_info
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
| Идентификатор<br>задачи | Описание |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| BANS-547 | Модуль ожидал тип `int` для параметра `ext_ip` вместо типа `str`. |
|
| BANS-38 | Работа модуля **decort_kvmvm** завершалась ошибкой Python при попытке удалить все существующие правила affinity у ВМ. |
|
||||||
|
| BANS-39 | Работа модуля **decort_kvmvm** завершалась ошибкой Python при попытке удалить все существующие правила anti affinity у ВМ. |
|
||||||
|
| BANS-60 | Работа модуля **decort_kvmvm** завершалась ошибкой Python при незаданном параметре `boot_disk` для существующей ВМ. |
|
||||||
|
| BANS-61 | В модуле **decort_kvmvm** происходила автоматическая конвертация из ГБ в МБ при изменении параметра `ram` на значение менее 512 для существующей ВМ. |
|
||||||
|
| BANS-445 | В модуле **decort_kvmvm** был задан неверный тип данных для параметра `ci_user_data`. |
|
||||||
|
|
||||||
|
### Модуль decort_lb
|
||||||
|
|
||||||
|
| Идентификатор<br>задачи | Описание |
|
||||||
|
| --- | --- |
|
||||||
|
| BANS-321 | Работа модуля **decort_lb** завершалась ошибкой модуля при использовании параметра `rg_name`. |
|
||||||
|
| BANS-322 | Работа модуля **decort_lb** завершалась ошибкой Python при использовании параметра `account_id`. |
|
||||||
|
| BANS-323 | Модуль **decort_lb** игнорировал параметр `vins_name` и создавал балансировщик без подключения к внутренней сети. |
|
||||||
|
| BANS-324 | Модуль **decort_lb** при повторном запуске создания сообщал о том, что были выполнены изменения. |
|
||||||
|
| BANS-325 | Модуль **decort_lb** не реагировал на параметр `annotation`. |
|
||||||
|
| BANS-326 | Модуль **decort_lb** при указании нескольких конфигураций frontend в параметре `frontends` добавлял в балансировщик только первую конфигурацию frontend. |
|
||||||
|
| BANS-331 | Работа модуля **decort_lb** завершалась ошибкой Python при выполнении создания балансировщика в режиме **check mode**. |
|
||||||
|
| BANS-334 | Модуль **decort_lb** не выполнял безвозвратное удаление балансировщика из корзины. |
|
||||||
|
| BANS-338 | Работа модуля **decort_lb** завершалась ошибкой Python при запуске восстановления балансировщика из корзины. |
|
||||||
|
| BANS-339 | Работа модуля **decort_lb** завершалась ошибкой Python при запуске восстановления балансировщика из корзины. |
|
||||||
|
| BANS-340 | Модуль **decort_lb** оставлял балансировщик выключенным после его восстановления из корзины. |
|
||||||
|
| BANS-341 | Модуль **decort_lb** оставлял балансировщик остановленным после его восстановления из корзины. |
|
||||||
|
| BANS-346 | Модуль **decort_lb** не производил запуск балансировщика при запуске с заданным параметром `state: enabled` или `state: present`. |
|
||||||
|
| BANS-352 | Работа модуля **decort_lb** завершалась ошибкой Python при удалении конфигурации frontend у балансировщика. |
|
||||||
|
| BANS-353 | Работа модуля **decort_lb** завершалась ошибкой запроса к API при удалении конфигурации frontend и связанной с ней конфигурации backend у балансировщика |
|
||||||
|
| BANS-354 | Модуль **decort_lb** не применял значения из подпараметров `check` и `server_settings` при добавлении нового сервера в существующую конфигурацию backend балансировщика. |
|
||||||
|
| BANS-357 | Модуль **decort_lb** игнорировал режим **check mode** для параметров `backends`, `frontends`, `servers`. |
|
||||||
|
| BANS-457 | Модуль **decort_lb** возвращал некорректный статус для удалённого балансировщика и указывал некорректный статус балансировщика в сообщении при повторном запуске модуля.
|
||||||
|
|
||||||
|
### Модуль decort_osimage
|
||||||
|
|
||||||
|
| Идентификатор<br>задачи | Описание |
|
||||||
|
| --- | --- |
|
||||||
|
| BANS-295 | Работа модуля **decort_osimage** завершалась ошибкой запроса к API при повторном запуске удаления шаблонного образа. |
|
||||||
|
| BANS-296 | Работа модуля **decort_osimage** завершалась ошибкой модуля при повторном запуске удаления шаблонного образа. |
|
||||||
|
| BANS-297 | Работа модуля **decort_osimage** завершалась ошибкой запроса к API при указании параметра `account_name` вместо параметра `account_Id` |
|
||||||
|
| BANS-299 | Модуль **decort_osimage** при повторном запуске переименования образа сообщал о том, что были выполнены изменения. |
|
||||||
|
| BANS-300 | Работа модуля **decort_osimage** завершалась ошибкой Python при создании виртуального образа. |
|
||||||
|
| BANS-301 | Работа модуля **decort_osimage** завершалась ошибкой модуля при повторном запуске удаления виртуального образа. |
|
||||||
|
| BANS-302 | Работа модуля **decort_osimage** завершалась ошибкой Python с удалением шаблонного образа при попытке удалить виртуальный образ. |
|
||||||
|
| BANS-303 | Модуль **decort_osimage** не выполнял переименование виртуального образа. |
|
||||||
|
| BANS-304 | Работа модуля **decort_osimage** завершалась ошибкой Python при повторном запуске удаления виртуального образа. |
|
||||||
|
|
||||||
### Модуль decort_pfw
|
### Модуль decort_pfw
|
||||||
|
|
||||||
| Идентификатор<br>задачи | Описание |
|
| Идентификатор<br>задачи | Описание |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| BANS-577 | Модуль удаляет правила переадресации портов при незаданном параметре `rules`. |
|
| BANS-283 | Работа модуля **decort_pfw** завершалась ошибкой Python при повторном запуске удаления правил. |
|
||||||
|
| BANS-451 | Модуль **decort_pfw** при запуске удаления удалял все правила переадресации портов на виртуальном маршрутизаторе заданной внутренней сети, вместо удаления правил только для заданной ВМ. |
|
||||||
|
|
||||||
|
### Модуль decort_rg
|
||||||
|
|
||||||
|
| Идентификатор<br>задачи | Описание |
|
||||||
|
| --- | --- |
|
||||||
|
| BANS-58 | Работа модуля **decort_rg** завершалась ошибкой Python при передаче некорректных данных об аккаунте и/или пользователе. |
|
||||||
|
| BANS-63 | Модуль **decort_rg** выполнял некорректное получение/изменение квоты на объём дисков. |
|
||||||
|
| BANS-64 | Работа модуля **decort_rg** завершалась ошибкой Python при повторном запуске на создание. |
|
||||||
|
| BANS-65 | Модуль **decort_rg** не выполнял восстановление РГ из корзины при заданном параметре `state: disabled` или `state: enabled`. |
|
||||||
|
| BANS-66 | В модуле **decort_rg** не выполнялась проверка наличия параметра `rg_name` при создании РГ. |
|
||||||
|
| BANS-67 | Работа модуля **decort_rg** завершалась ошибкой запроса к API при создании РГ когда РГ с таким именем есть в корзине. |
|
||||||
|
| BANS-68 | Модуль **decort_rg** не выполнял восстановление РГ из корзины при указании `rg_name` вместо `rg_id`. |
|
||||||
|
| BANS-425 | Работа модуля **decort_rg** завершалась ошибкой модуля при создании РГ в режиме **check mode**. |
|
||||||
|
|
||||||
|
### Модуль decort_vins
|
||||||
|
|
||||||
|
| Идентификатор<br>задачи | Описание |
|
||||||
|
| --- | --- |
|
||||||
|
| BANS-59 | Работа модуля **decort_vins** завершалась ошибкой Python при создании внутренней сети на уровне аккаунта. |
|
||||||
14
README.md
14
README.md
@@ -3,13 +3,13 @@
|
|||||||
|
|
||||||
## Соответствие версий платформы версиям модулей Ansible
|
## Соответствие версий платформы версиям модулей Ansible
|
||||||
|
|
||||||
| Версия платформы | Версия модулей Ansible |
|
| Версия платформы | Версия модулей Ansible |
|
||||||
|:----------------:|:--------------------------:|
|
| :---: | :---: |
|
||||||
| 4.1.0 | 6.0.x |
|
| 4.0.0 | 5.3.0 |
|
||||||
| 4.0.0 | 5.6.x, 5.5.x, 5.4.x, 5.3.x |
|
| 3.8.9 | 5.2.6 |
|
||||||
| 3.8.8, 3.8.9 | 5.2.6 |
|
| 3.8.8 | 5.2.6 |
|
||||||
| 3.8.7 | 5.2.5 |
|
| 3.8.7 | 5.2.5 |
|
||||||
| 3.8.6 | 5.2.4 |
|
| 3.8.6 | 5.2.4 |
|
||||||
|
|
||||||
## Ссылки
|
## Ссылки
|
||||||
|
|
||||||
|
|||||||
@@ -1,380 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
|
|
||||||
# Copyright: ...
|
|
||||||
# ...
|
|
||||||
|
|
||||||
DOCUMENTATION = r'''
|
|
||||||
---
|
|
||||||
module: decort_account
|
|
||||||
|
|
||||||
version_added: "2.16"
|
|
||||||
|
|
||||||
description: See L(Module Documentation,https://repository.basistech.ru/BASIS/decort-ansible/wiki/Home).
|
|
||||||
'''
|
|
||||||
|
|
||||||
# EXAMPLES = r'''
|
|
||||||
# '''
|
|
||||||
|
|
||||||
# RETURN = r'''
|
|
||||||
# '''
|
|
||||||
|
|
||||||
from typing import Iterable
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
|
||||||
from ansible.module_utils.decort_utils import DecortController
|
|
||||||
|
|
||||||
|
|
||||||
class DecortAccount(DecortController):
|
|
||||||
OBJ = 'account'
|
|
||||||
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__(AnsibleModule(**self.amodule_init_args))
|
|
||||||
self.check_amodule_args()
|
|
||||||
|
|
||||||
@property
|
|
||||||
def amodule_init_args(self) -> dict:
|
|
||||||
return self.pack_amodule_init_args(
|
|
||||||
argument_spec=dict(
|
|
||||||
access_emails=dict(
|
|
||||||
type='bool',
|
|
||||||
),
|
|
||||||
acl=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
mode=dict(
|
|
||||||
type='str',
|
|
||||||
choices=[
|
|
||||||
'match',
|
|
||||||
'revoke',
|
|
||||||
'update',
|
|
||||||
],
|
|
||||||
default='update',
|
|
||||||
),
|
|
||||||
users=dict(
|
|
||||||
type='list',
|
|
||||||
required=True,
|
|
||||||
elements='dict',
|
|
||||||
options=dict(
|
|
||||||
rights=dict(
|
|
||||||
type='str',
|
|
||||||
choices=['R', 'RCX', 'ARCXDU'],
|
|
||||||
default='R',
|
|
||||||
),
|
|
||||||
id=dict(
|
|
||||||
type='str',
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
name=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
quotas=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
cpu=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
disks_size=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
ext_traffic=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
gpu=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
public_ip=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
ram=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
state=dict(
|
|
||||||
type='str',
|
|
||||||
choices=[
|
|
||||||
'absent',
|
|
||||||
'absent_permanently',
|
|
||||||
'confirmed',
|
|
||||||
'disabled',
|
|
||||||
'present',
|
|
||||||
],
|
|
||||||
default='present',
|
|
||||||
),
|
|
||||||
sep_pools=dict(
|
|
||||||
type='list',
|
|
||||||
elements='dict',
|
|
||||||
options=dict(
|
|
||||||
sep_id=dict(
|
|
||||||
type='int',
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
pool_names=dict(
|
|
||||||
type='list',
|
|
||||||
required=True,
|
|
||||||
elements='str',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
required_one_of=[
|
|
||||||
('id', 'name')
|
|
||||||
],
|
|
||||||
supports_check_mode=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
def check_amodule_args(self):
|
|
||||||
"""
|
|
||||||
Additional Ansible Module arguments validation that
|
|
||||||
cannot be implemented using Ansible Argument spec.
|
|
||||||
"""
|
|
||||||
|
|
||||||
arg_state = self.aparams['state']
|
|
||||||
if 'absent' in arg_state:
|
|
||||||
# Parameters or combinations of parameters that can
|
|
||||||
# cause changing the object.
|
|
||||||
changing_params = [
|
|
||||||
'access_emails',
|
|
||||||
'acl',
|
|
||||||
['id', 'name'],
|
|
||||||
'quotas',
|
|
||||||
]
|
|
||||||
check_error = False
|
|
||||||
for elem in changing_params:
|
|
||||||
if isinstance(elem, str):
|
|
||||||
param = elem
|
|
||||||
if self.aparams[elem] is not None:
|
|
||||||
self.message(
|
|
||||||
f'If the parameter "state" is set to'
|
|
||||||
f' "{arg_state}", then using the parameter'
|
|
||||||
f' "{param}" is not allowed.'
|
|
||||||
)
|
|
||||||
check_error = True
|
|
||||||
elif isinstance(elem, Iterable):
|
|
||||||
params = elem
|
|
||||||
params_using = map(
|
|
||||||
lambda x: self.aparams[x] is not None, params
|
|
||||||
)
|
|
||||||
if all(params_using):
|
|
||||||
params_str = ', '.join(f'"{p}"' for p in params)
|
|
||||||
self.message(
|
|
||||||
f'If the parameter "state" is set to'
|
|
||||||
f' "{arg_state}", then using the combination'
|
|
||||||
f' of parameters {params_str} are not allowed.'
|
|
||||||
)
|
|
||||||
check_error = True
|
|
||||||
if check_error:
|
|
||||||
self.exit(fail=True)
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
self.get_info()
|
|
||||||
self.change()
|
|
||||||
self.exit()
|
|
||||||
|
|
||||||
def get_info(self):
|
|
||||||
# If this is the first getting info
|
|
||||||
if not getattr(self, 'id', None):
|
|
||||||
self.id, self.facts = self.account_find(
|
|
||||||
account_name=self.aparams['name'],
|
|
||||||
account_id=self.aparams['id'],
|
|
||||||
)
|
|
||||||
# If this is a repeated getting info
|
|
||||||
else:
|
|
||||||
# If check mode is enabled, there is no needed to
|
|
||||||
# request info again
|
|
||||||
if not self.amodule.check_mode:
|
|
||||||
self.id, self.facts = self.account_find(account_id=self.id)
|
|
||||||
|
|
||||||
def change(self):
|
|
||||||
self.change_state()
|
|
||||||
|
|
||||||
self.change_acl()
|
|
||||||
|
|
||||||
if self.account_update_args:
|
|
||||||
self.account_update(account_id=self.id,
|
|
||||||
**self.account_update_args)
|
|
||||||
self.get_info()
|
|
||||||
|
|
||||||
def change_state(self):
|
|
||||||
match self.facts:
|
|
||||||
case None:
|
|
||||||
self.message(self.MESSAGES.obj_not_found(obj=self.OBJ))
|
|
||||||
match self.aparams:
|
|
||||||
case {'state': 'absent' | 'absent_permanently'}:
|
|
||||||
pass
|
|
||||||
case {'state': 'confirmed' | 'disabled' | 'present'}:
|
|
||||||
self.exit(fail=True)
|
|
||||||
case {'status': 'DESTROYED'}:
|
|
||||||
match self.aparams:
|
|
||||||
case {'state': 'absent' | 'absent_permanently'}:
|
|
||||||
self.message(
|
|
||||||
self.MESSAGES.obj_deleted(
|
|
||||||
obj=self.OBJ,
|
|
||||||
id=self.id,
|
|
||||||
permanently=True,
|
|
||||||
already=True,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
case {'state': 'confirmed' | 'disabled' | 'present'}:
|
|
||||||
self.message(
|
|
||||||
self.MESSAGES.obj_not_restored(obj=self.OBJ,
|
|
||||||
id=self.id)
|
|
||||||
)
|
|
||||||
self.exit(fail=True)
|
|
||||||
case {'status': 'DELETED'}:
|
|
||||||
match self.aparams:
|
|
||||||
case {'state': 'absent'}:
|
|
||||||
self.message(
|
|
||||||
self.MESSAGES.obj_deleted(
|
|
||||||
obj=self.OBJ,
|
|
||||||
id=self.id,
|
|
||||||
permanently=False,
|
|
||||||
already=True,
|
|
||||||
)
|
|
||||||
)
|
|
||||||
case {'state': 'absent_permanently'}:
|
|
||||||
self.delete(permanently=True)
|
|
||||||
case {'state': 'confirmed' | 'present'}:
|
|
||||||
self.restore()
|
|
||||||
case {'state': 'disabled'}:
|
|
||||||
self.restore()
|
|
||||||
self.disable()
|
|
||||||
case {'status': 'CONFIRMED'}:
|
|
||||||
match self.aparams:
|
|
||||||
case {'state': 'absent'}:
|
|
||||||
self.delete()
|
|
||||||
case {'state': 'absent_permanently'}:
|
|
||||||
self.delete(permanently=True)
|
|
||||||
case {'state': 'confirmed' | 'present'}:
|
|
||||||
pass
|
|
||||||
case {'state': 'disabled'}:
|
|
||||||
self.disable()
|
|
||||||
case {'status': 'DISABLED'}:
|
|
||||||
match self.aparams:
|
|
||||||
case {'state': 'absent'}:
|
|
||||||
self.delete()
|
|
||||||
case {'state': 'absent_permanently'}:
|
|
||||||
self.delete(permanently=True)
|
|
||||||
case {'state': 'confirmed'}:
|
|
||||||
self.enable()
|
|
||||||
case {'state': 'present' | 'disabled'}:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def delete(self, permanently=False):
|
|
||||||
self.account_delete(account_id=self.id, permanently=permanently)
|
|
||||||
self.get_info()
|
|
||||||
|
|
||||||
def disable(self):
|
|
||||||
self.account_disable(account_id=self.id)
|
|
||||||
self.get_info()
|
|
||||||
|
|
||||||
def enable(self):
|
|
||||||
self.account_enable(account_id=self.id)
|
|
||||||
self.get_info()
|
|
||||||
|
|
||||||
def restore(self):
|
|
||||||
self.account_restore(account_id=self.id)
|
|
||||||
self.get_info()
|
|
||||||
|
|
||||||
def change_acl(self):
|
|
||||||
if not self.aparams['acl']:
|
|
||||||
return
|
|
||||||
|
|
||||||
actual_users = {u['userGroupId']: u['right'] for u in self.facts['acl']}
|
|
||||||
actual_users_ids = set(actual_users.keys())
|
|
||||||
|
|
||||||
aparams_acl = self.aparams['acl']
|
|
||||||
aparams_users = {u['id']: u['rights'] for u in aparams_acl['users']}
|
|
||||||
aparams_users_ids = set(aparams_users.keys())
|
|
||||||
|
|
||||||
del_users_ids = None
|
|
||||||
upd_users = None
|
|
||||||
new_users = None
|
|
||||||
|
|
||||||
match aparams_acl:
|
|
||||||
case {'mode': 'revoke'}:
|
|
||||||
del_users_ids = aparams_users_ids.intersection(actual_users_ids)
|
|
||||||
case {'mode': 'update' | 'match' as mode}:
|
|
||||||
new_users_ids = aparams_users_ids.difference(actual_users_ids)
|
|
||||||
new_users = dict(
|
|
||||||
u for u in aparams_users.items() if u[0] in new_users_ids
|
|
||||||
)
|
|
||||||
|
|
||||||
upd_users_ids =\
|
|
||||||
aparams_users_ids.intersection(actual_users_ids)
|
|
||||||
upd_users = dict()
|
|
||||||
for id in upd_users_ids:
|
|
||||||
if actual_users[id] == 'CXDRAU':
|
|
||||||
actual_user_rights = 'ARCXDU'
|
|
||||||
else:
|
|
||||||
actual_user_rights = actual_users[id]
|
|
||||||
|
|
||||||
if actual_user_rights != aparams_users[id]:
|
|
||||||
upd_users[id] = aparams_users[id]
|
|
||||||
|
|
||||||
if mode == 'match':
|
|
||||||
del_users_ids =\
|
|
||||||
actual_users_ids.difference(aparams_users_ids)
|
|
||||||
|
|
||||||
if del_users_ids or new_users or upd_users:
|
|
||||||
self.account_change_acl(account_id=self.id,
|
|
||||||
del_users=del_users_ids,
|
|
||||||
add_users=new_users,
|
|
||||||
upd_users=upd_users)
|
|
||||||
self.get_info()
|
|
||||||
|
|
||||||
@property
|
|
||||||
def account_update_args(self) -> dict:
|
|
||||||
result_args = dict()
|
|
||||||
|
|
||||||
aparam_access_emails = self.aparams['access_emails']
|
|
||||||
if (aparam_access_emails is not None
|
|
||||||
and self.facts['sendAccessEmails'] != aparam_access_emails):
|
|
||||||
result_args['access_emails'] = aparam_access_emails
|
|
||||||
|
|
||||||
aparam_name = self.aparams['name']
|
|
||||||
if (self.aparams['id'] and aparam_name
|
|
||||||
and self.facts['name'] != aparam_name):
|
|
||||||
result_args['name'] = aparam_name
|
|
||||||
|
|
||||||
aparam_quotas = self.aparams['quotas']
|
|
||||||
if aparam_quotas:
|
|
||||||
quotas_naming = [
|
|
||||||
['cpu', 'CU_C', 'cpu_quota'],
|
|
||||||
['disks_size', 'CU_DM', 'disks_size_quota'],
|
|
||||||
['ext_traffic', 'CU_NP', 'ext_traffic_quota'],
|
|
||||||
['gpu', 'gpu_units', 'gpu_quota'],
|
|
||||||
['public_ip', 'CU_I', 'public_ip_quota'],
|
|
||||||
['ram', 'CU_M', 'ram_quota'],
|
|
||||||
]
|
|
||||||
for aparam, info_key, result_arg in quotas_naming:
|
|
||||||
current_value = int(self.facts['resourceLimits'][info_key])
|
|
||||||
if (aparam_quotas[aparam] is not None
|
|
||||||
and current_value != aparam_quotas[aparam]):
|
|
||||||
result_args[result_arg] = aparam_quotas[aparam]
|
|
||||||
|
|
||||||
aparam_sep_pools = self.aparams['sep_pools']
|
|
||||||
if aparam_sep_pools is not None:
|
|
||||||
sep_pools = set()
|
|
||||||
for sep in aparam_sep_pools:
|
|
||||||
for pool_name in sep['pool_names']:
|
|
||||||
sep_pools.add(
|
|
||||||
f'{sep["sep_id"]}_{pool_name}'
|
|
||||||
)
|
|
||||||
if set(self.facts['uniqPools']) != sep_pools:
|
|
||||||
result_args['sep_pools'] = sep_pools
|
|
||||||
return result_args
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
DecortAccount().run()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
@@ -1,589 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
|
|
||||||
# Copyright: ...
|
|
||||||
# ...
|
|
||||||
|
|
||||||
DOCUMENTATION = r'''
|
|
||||||
---
|
|
||||||
module: decort_account_info
|
|
||||||
|
|
||||||
version_added: "2.16"
|
|
||||||
|
|
||||||
description: See L(Module Documentation,https://repository.basistech.ru/BASIS/decort-ansible/wiki/Home).
|
|
||||||
'''
|
|
||||||
|
|
||||||
# EXAMPLES = r'''
|
|
||||||
# '''
|
|
||||||
|
|
||||||
# RETURN = r'''
|
|
||||||
# '''
|
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
|
||||||
from ansible.module_utils.decort_utils import DecortController
|
|
||||||
|
|
||||||
|
|
||||||
class DecortAccountInfo(DecortController):
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__(AnsibleModule(**self.amodule_init_args))
|
|
||||||
|
|
||||||
@property
|
|
||||||
def amodule_init_args(self) -> dict:
|
|
||||||
return self.pack_amodule_init_args(
|
|
||||||
argument_spec=dict(
|
|
||||||
audits=dict(
|
|
||||||
type='bool',
|
|
||||||
default=False
|
|
||||||
),
|
|
||||||
computes=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
filter=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
ext_net_id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
ext_net_name=dict(
|
|
||||||
type='str'
|
|
||||||
),
|
|
||||||
id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
ip=dict(
|
|
||||||
type='str'
|
|
||||||
),
|
|
||||||
name=dict(
|
|
||||||
type='str'
|
|
||||||
),
|
|
||||||
rg_id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
rg_name=dict(
|
|
||||||
type='str'
|
|
||||||
),
|
|
||||||
tech_status=dict(
|
|
||||||
type='str',
|
|
||||||
choices=self.COMPUTE_TECH_STATUSES,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
pagination=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
number=dict(
|
|
||||||
type='int',
|
|
||||||
default=1,
|
|
||||||
),
|
|
||||||
size=dict(
|
|
||||||
type='int',
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
sorting=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
asc=dict(
|
|
||||||
type='bool',
|
|
||||||
default=True,
|
|
||||||
),
|
|
||||||
field=dict(
|
|
||||||
type='str',
|
|
||||||
choices=\
|
|
||||||
self.FIELDS_FOR_SORTING_ACCOUNT_COMPUTE_LIST,
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
disks=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
filter=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
name=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
size=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
type=dict(
|
|
||||||
type='str',
|
|
||||||
choices=self.DISK_TYPES,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
pagination=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
number=dict(
|
|
||||||
type='int',
|
|
||||||
default=1,
|
|
||||||
),
|
|
||||||
size=dict(
|
|
||||||
type='int',
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
sorting=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
asc=dict(
|
|
||||||
type='bool',
|
|
||||||
default=True,
|
|
||||||
),
|
|
||||||
field=dict(
|
|
||||||
type='str',
|
|
||||||
choices=\
|
|
||||||
self.FIELDS_FOR_SORTING_ACCOUNT_DISK_LIST,
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
flip_groups=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
filter=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
ext_net_id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
ip=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
name=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
vins_id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
vins_name=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
pagination=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
number=dict(
|
|
||||||
type='int',
|
|
||||||
default=1,
|
|
||||||
),
|
|
||||||
size=dict(
|
|
||||||
type='int',
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
images=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
filter=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
name=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
type=dict(
|
|
||||||
type='str',
|
|
||||||
choices=self.IMAGE_TYPES,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
pagination=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
number=dict(
|
|
||||||
type='int',
|
|
||||||
default=1,
|
|
||||||
),
|
|
||||||
size=dict(
|
|
||||||
type='int',
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
sorting=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
asc=dict(
|
|
||||||
type='bool',
|
|
||||||
default=True,
|
|
||||||
),
|
|
||||||
field=dict(
|
|
||||||
type='str',
|
|
||||||
choices=\
|
|
||||||
self.FIELDS_FOR_SORTING_ACCOUNT_IMAGE_LIST,
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
name=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
resource_groups=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
filter=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
name=dict(
|
|
||||||
type='str'
|
|
||||||
),
|
|
||||||
status=dict(
|
|
||||||
type='str',
|
|
||||||
choices=self.RESOURCE_GROUP_STATUSES,
|
|
||||||
),
|
|
||||||
vins_id=dict(
|
|
||||||
type='int'
|
|
||||||
),
|
|
||||||
vm_id=dict(
|
|
||||||
type='int'
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
pagination=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
number=dict(
|
|
||||||
type='int',
|
|
||||||
default=1,
|
|
||||||
),
|
|
||||||
size=dict(
|
|
||||||
type='int',
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
sorting=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
asc=dict(
|
|
||||||
type='bool',
|
|
||||||
default=True,
|
|
||||||
),
|
|
||||||
field=dict(
|
|
||||||
type='str',
|
|
||||||
choices=\
|
|
||||||
self.FIELDS_FOR_SORTING_ACCOUNT_RG_LIST,
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
resource_consumption=dict(
|
|
||||||
type='bool',
|
|
||||||
default=False
|
|
||||||
),
|
|
||||||
vinses=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
filter=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
ext_ip=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
name=dict(
|
|
||||||
type='str'
|
|
||||||
),
|
|
||||||
rg_id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
pagination=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
number=dict(
|
|
||||||
type='int',
|
|
||||||
default=1,
|
|
||||||
),
|
|
||||||
size=dict(
|
|
||||||
type='int',
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
sorting=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
asc=dict(
|
|
||||||
type='bool',
|
|
||||||
default=True,
|
|
||||||
),
|
|
||||||
field=dict(
|
|
||||||
type='str',
|
|
||||||
choices=\
|
|
||||||
self.FIELDS_FOR_SORTING_ACCOUNT_VINS_LIST,
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
mutually_exclusive=[
|
|
||||||
('id', 'name')
|
|
||||||
],
|
|
||||||
required_one_of=[
|
|
||||||
('id', 'name')
|
|
||||||
],
|
|
||||||
supports_check_mode=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def mapped_computes_args(self) -> None | dict:
|
|
||||||
"""
|
|
||||||
Map the module argument `computes` to
|
|
||||||
arguments dictionary for the method
|
|
||||||
`DecortController.account_computes`
|
|
||||||
(excluding for `account_id`).
|
|
||||||
"""
|
|
||||||
|
|
||||||
input_args = self.aparams['computes']
|
|
||||||
if not input_args:
|
|
||||||
return input_args
|
|
||||||
|
|
||||||
mapped_args = {}
|
|
||||||
if input_args['filter']:
|
|
||||||
mapped_args['compute_id'] = input_args['filter']['id']
|
|
||||||
mapped_args['compute_ip'] = input_args['filter']['ip']
|
|
||||||
mapped_args['compute_name'] = input_args['filter']['name']
|
|
||||||
mapped_args['compute_tech_status'] =\
|
|
||||||
input_args['filter']['tech_status']
|
|
||||||
mapped_args['ext_net_id'] = input_args['filter']['ext_net_id']
|
|
||||||
mapped_args['ext_net_name'] =\
|
|
||||||
input_args['filter']['ext_net_name']
|
|
||||||
mapped_args['rg_id'] = input_args['filter']['rg_id']
|
|
||||||
mapped_args['rg_name'] = input_args['filter']['rg_name']
|
|
||||||
if input_args['pagination']:
|
|
||||||
mapped_args['page_number'] =\
|
|
||||||
input_args['pagination']['number']
|
|
||||||
mapped_args['page_size'] =\
|
|
||||||
input_args['pagination']['size']
|
|
||||||
if input_args['sorting']:
|
|
||||||
mapped_args['sort_by_asc'] =\
|
|
||||||
input_args['sorting']['asc']
|
|
||||||
mapped_args['sort_by_field'] =\
|
|
||||||
input_args['sorting']['field']
|
|
||||||
|
|
||||||
return mapped_args
|
|
||||||
|
|
||||||
@property
|
|
||||||
def mapped_disks_args(self) -> None | dict:
|
|
||||||
"""
|
|
||||||
Map the module argument `disks` to
|
|
||||||
arguments dictionary for the method
|
|
||||||
`DecortController.account_disks`
|
|
||||||
(excluding for `account_id`).
|
|
||||||
"""
|
|
||||||
|
|
||||||
input_args = self.aparams['disks']
|
|
||||||
if not input_args:
|
|
||||||
return input_args
|
|
||||||
|
|
||||||
mapped_args = {}
|
|
||||||
if input_args['filter']:
|
|
||||||
mapped_args['disk_id'] = input_args['filter']['id']
|
|
||||||
mapped_args['disk_name'] = input_args['filter']['name']
|
|
||||||
mapped_args['disk_size'] = input_args['filter']['size']
|
|
||||||
mapped_args['disk_type'] = input_args['filter']['type']
|
|
||||||
if input_args['pagination']:
|
|
||||||
mapped_args['page_number'] =\
|
|
||||||
input_args['pagination']['number']
|
|
||||||
mapped_args['page_size'] =\
|
|
||||||
input_args['pagination']['size']
|
|
||||||
if input_args['sorting']:
|
|
||||||
mapped_args['sort_by_asc'] =\
|
|
||||||
input_args['sorting']['asc']
|
|
||||||
mapped_args['sort_by_field'] =\
|
|
||||||
input_args['sorting']['field']
|
|
||||||
|
|
||||||
return mapped_args
|
|
||||||
|
|
||||||
@property
|
|
||||||
def mapped_flip_groups_args(self) -> None | dict:
|
|
||||||
"""
|
|
||||||
Map the module argument `flip_groups` to
|
|
||||||
arguments dictionary for the method
|
|
||||||
`DecortController.account_flip_groups`
|
|
||||||
(excluding for `account_id`).
|
|
||||||
"""
|
|
||||||
|
|
||||||
input_args = self.aparams['flip_groups']
|
|
||||||
if not input_args:
|
|
||||||
return input_args
|
|
||||||
|
|
||||||
mapped_args = {}
|
|
||||||
if input_args['filter']:
|
|
||||||
mapped_args['ext_net_id'] = input_args['filter']['ext_net_id']
|
|
||||||
mapped_args['flig_group_id'] = input_args['filter']['id']
|
|
||||||
mapped_args['flig_group_ip'] = input_args['filter']['ip']
|
|
||||||
mapped_args['flig_group_name'] = input_args['filter']['name']
|
|
||||||
mapped_args['vins_id'] = input_args['filter']['vins_id']
|
|
||||||
mapped_args['vins_name'] = input_args['filter']['vins_name']
|
|
||||||
if input_args['pagination']:
|
|
||||||
mapped_args['page_number'] =\
|
|
||||||
input_args['pagination']['number']
|
|
||||||
mapped_args['page_size'] =\
|
|
||||||
input_args['pagination']['size']
|
|
||||||
|
|
||||||
return mapped_args
|
|
||||||
|
|
||||||
@property
|
|
||||||
def mapped_images_args(self) -> None | dict:
|
|
||||||
"""
|
|
||||||
Map the module argument `images` to
|
|
||||||
arguments dictionary for the method
|
|
||||||
`DecortController.account_images`
|
|
||||||
(excluding for `account_id`).
|
|
||||||
"""
|
|
||||||
|
|
||||||
input_args = self.aparams['images']
|
|
||||||
if not input_args:
|
|
||||||
return input_args
|
|
||||||
|
|
||||||
mapped_args = {}
|
|
||||||
if input_args['filter']:
|
|
||||||
mapped_args['image_id'] = input_args['filter']['id']
|
|
||||||
mapped_args['image_name'] = input_args['filter']['name']
|
|
||||||
mapped_args['image_type'] = input_args['filter']['type']
|
|
||||||
if input_args['pagination']:
|
|
||||||
mapped_args['page_number'] =\
|
|
||||||
input_args['pagination']['number']
|
|
||||||
mapped_args['page_size'] =\
|
|
||||||
input_args['pagination']['size']
|
|
||||||
if input_args['sorting']:
|
|
||||||
mapped_args['sort_by_asc'] =\
|
|
||||||
input_args['sorting']['asc']
|
|
||||||
mapped_args['sort_by_field'] =\
|
|
||||||
input_args['sorting']['field']
|
|
||||||
|
|
||||||
return mapped_args
|
|
||||||
|
|
||||||
@property
|
|
||||||
def mapped_rg_args(self) -> None | dict:
|
|
||||||
"""
|
|
||||||
Map the module argument `resource_groups` to
|
|
||||||
arguments dictionary for the method
|
|
||||||
`DecortController.account_resource_groups`
|
|
||||||
(excluding for `account_id`).
|
|
||||||
"""
|
|
||||||
|
|
||||||
input_args = self.aparams['resource_groups']
|
|
||||||
if not input_args:
|
|
||||||
return input_args
|
|
||||||
|
|
||||||
mapped_args = {}
|
|
||||||
if input_args['filter']:
|
|
||||||
mapped_args['rg_id'] =\
|
|
||||||
input_args['filter']['id']
|
|
||||||
mapped_args['rg_name'] =\
|
|
||||||
input_args['filter']['name']
|
|
||||||
mapped_args['rg_status'] =\
|
|
||||||
input_args['filter']['status']
|
|
||||||
mapped_args['vins_id'] =\
|
|
||||||
input_args['filter']['vins_id']
|
|
||||||
mapped_args['vm_id'] =\
|
|
||||||
input_args['filter']['vm_id']
|
|
||||||
if input_args['pagination']:
|
|
||||||
mapped_args['page_number'] =\
|
|
||||||
input_args['pagination']['number']
|
|
||||||
mapped_args['page_size'] =\
|
|
||||||
input_args['pagination']['size']
|
|
||||||
if input_args['sorting']:
|
|
||||||
mapped_args['sort_by_asc'] =\
|
|
||||||
input_args['sorting']['asc']
|
|
||||||
mapped_args['sort_by_field'] =\
|
|
||||||
input_args['sorting']['field']
|
|
||||||
|
|
||||||
return mapped_args
|
|
||||||
|
|
||||||
@property
|
|
||||||
def mapped_vinses_args(self) -> None | dict:
|
|
||||||
"""
|
|
||||||
Map the module argument `vinses` to
|
|
||||||
arguments dictionary for the method
|
|
||||||
`DecortController.account_vinses`
|
|
||||||
(excluding for `account_id`).
|
|
||||||
"""
|
|
||||||
|
|
||||||
input_args = self.aparams['vinses']
|
|
||||||
if not input_args:
|
|
||||||
return input_args
|
|
||||||
|
|
||||||
mapped_args = {}
|
|
||||||
if input_args['filter']:
|
|
||||||
mapped_args['vins_id'] = input_args['filter']['id']
|
|
||||||
mapped_args['vins_name'] = input_args['filter']['name']
|
|
||||||
mapped_args['ext_ip'] = input_args['filter']['ext_ip']
|
|
||||||
mapped_args['rg_id'] = input_args['filter']['rg_id']
|
|
||||||
if input_args['pagination']:
|
|
||||||
mapped_args['page_number'] =\
|
|
||||||
input_args['pagination']['number']
|
|
||||||
mapped_args['page_size'] =\
|
|
||||||
input_args['pagination']['size']
|
|
||||||
if input_args['sorting']:
|
|
||||||
mapped_args['sort_by_asc'] =\
|
|
||||||
input_args['sorting']['asc']
|
|
||||||
mapped_args['sort_by_field'] =\
|
|
||||||
input_args['sorting']['field']
|
|
||||||
|
|
||||||
return mapped_args
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
self.get_info()
|
|
||||||
self.exit()
|
|
||||||
|
|
||||||
def get_info(self):
|
|
||||||
self.id, self.facts = self.account_find(
|
|
||||||
account_name=self.aparams['name'],
|
|
||||||
account_id=self.aparams['id'],
|
|
||||||
audits=self.aparams['audits'],
|
|
||||||
computes_args=self.mapped_computes_args,
|
|
||||||
disks_args=self.mapped_disks_args,
|
|
||||||
flip_groups_args=self.mapped_flip_groups_args,
|
|
||||||
images_args=self.mapped_images_args,
|
|
||||||
resource_consumption=self.aparams['resource_consumption'],
|
|
||||||
resource_groups_args=self.mapped_rg_args,
|
|
||||||
vinses_args=self.mapped_vinses_args,
|
|
||||||
fail_if_not_found=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
DecortAccountInfo().run()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
@@ -23,6 +23,7 @@ class decort_bservice(DecortController):
|
|||||||
|
|
||||||
validated_acc_id = 0
|
validated_acc_id = 0
|
||||||
validated_rg_id = 0
|
validated_rg_id = 0
|
||||||
|
validated_rg_facts = None
|
||||||
self.bservice_info = None
|
self.bservice_info = None
|
||||||
if arg_amodule.params['name'] == "" and arg_amodule.params['id'] == 0:
|
if arg_amodule.params['name'] == "" and arg_amodule.params['id'] == 0:
|
||||||
self.result['failed'] = True
|
self.result['failed'] = True
|
||||||
@@ -54,12 +55,12 @@ class decort_bservice(DecortController):
|
|||||||
arg_amodule.params['rg_name'])
|
arg_amodule.params['rg_name'])
|
||||||
self.fail_json(**self.result)
|
self.fail_json(**self.result)
|
||||||
|
|
||||||
arg_amodule.params['rg_id'] = validated_rg_id
|
arg_amodule.params['rg_id'] = validated_rg_id
|
||||||
arg_amodule.params['rg_name'] = validated_rg_facts['name']
|
arg_amodule.params['rg_name'] = validated_rg_facts['name']
|
||||||
validated_acc_id = validated_rg_facts['accountId']
|
self.acc_id = validated_rg_facts['accountId']
|
||||||
|
|
||||||
self.bservice_id, self.bservice_info = self.bservice_find(
|
self.bservice_id,self.bservice_info = self.bservice_find(
|
||||||
validated_acc_id,
|
self.acc_id,
|
||||||
validated_rg_id,
|
validated_rg_id,
|
||||||
arg_amodule.params['name'],
|
arg_amodule.params['name'],
|
||||||
arg_amodule.params['id']
|
arg_amodule.params['id']
|
||||||
@@ -149,7 +150,7 @@ class decort_bservice(DecortController):
|
|||||||
ret_dict['techStatus'] = self.bservice_info['techStatus']
|
ret_dict['techStatus'] = self.bservice_info['techStatus']
|
||||||
ret_dict['state'] = self.bservice_info['status']
|
ret_dict['state'] = self.bservice_info['status']
|
||||||
ret_dict['rg_id'] = self.bservice_info['rgId']
|
ret_dict['rg_id'] = self.bservice_info['rgId']
|
||||||
ret_dict['account_id'] = self.bservice_info['accountId']
|
ret_dict['account_id'] = self.acc_id
|
||||||
ret_dict['groups'] = self.bservice_info['groups']
|
ret_dict['groups'] = self.bservice_info['groups']
|
||||||
return ret_dict
|
return ret_dict
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@@ -187,7 +188,7 @@ class decort_bservice(DecortController):
|
|||||||
user=dict(type='str',
|
user=dict(type='str',
|
||||||
required=False,
|
required=False,
|
||||||
fallback=(env_fallback, ['DECORT_USER'])),
|
fallback=(env_fallback, ['DECORT_USER'])),
|
||||||
name=dict(type='str', required=False, default=''),
|
name=dict(type='str', required=True),
|
||||||
sshuser=dict(type='str', required=False,default=None),
|
sshuser=dict(type='str', required=False,default=None),
|
||||||
sshkey=dict(type='str', required=False,default=None),
|
sshkey=dict(type='str', required=False,default=None),
|
||||||
id=dict(type='int', required=False, default=0),
|
id=dict(type='int', required=False, default=0),
|
||||||
|
|||||||
@@ -240,7 +240,7 @@ facts:
|
|||||||
pool: datastore
|
pool: datastore
|
||||||
state: ASSIGNED
|
state: ASSIGNED
|
||||||
account_id: 7
|
account_id: 7
|
||||||
computes: {vm_id: vm_name}
|
attached_to: 18
|
||||||
gid: 1001
|
gid: 1001
|
||||||
'''
|
'''
|
||||||
|
|
||||||
@@ -257,45 +257,39 @@ class decort_disk(DecortController):
|
|||||||
|
|
||||||
validated_acc_id = 0
|
validated_acc_id = 0
|
||||||
validated_acc_info = None
|
validated_acc_info = None
|
||||||
|
validated_disk_id = 0
|
||||||
self.disk_id = 0
|
self.disk_id = 0
|
||||||
self.account_id = 0
|
self.account_id = 0
|
||||||
|
validated_disk_facts = None
|
||||||
# limitIO check for exclusive parameters
|
# limitIO check for exclusive parameters
|
||||||
|
|
||||||
if arg_amodule.params['limitIO']:
|
if arg_amodule.params['limitIO']:
|
||||||
self.disk_check_iotune_arg(arg_amodule.params['limitIO'])
|
self.disk_check_iotune_arg(arg_amodule.params['limitIO'])
|
||||||
|
|
||||||
if not arg_amodule.params['id']:
|
|
||||||
if (
|
|
||||||
not arg_amodule.params['account_id']
|
|
||||||
and not arg_amodule.params['account_name']
|
|
||||||
):
|
|
||||||
self.result['changed'] = False
|
|
||||||
self.result['msg'] = (
|
|
||||||
'Cannot manage Disk by name without specifying account ID '
|
|
||||||
'or name.'
|
|
||||||
)
|
|
||||||
self.amodule.fail_json(**self.result)
|
|
||||||
validated_acc_id, validated_acc_info = self.account_find(
|
|
||||||
arg_amodule.params['account_name'],
|
|
||||||
arg_amodule.params['account_id'])
|
|
||||||
if not validated_acc_id:
|
|
||||||
self.result['changed'] = False
|
|
||||||
self.result['msg'] = (
|
|
||||||
f"Current user does not have access to the account "
|
|
||||||
f"ID {arg_amodule.params['account_id']} / "
|
|
||||||
f"name '{arg_amodule.params['account_name']}' "
|
|
||||||
f"or non-existent account specified."
|
|
||||||
)
|
|
||||||
self.amodule.fail_json(**self.result)
|
|
||||||
|
|
||||||
self.acc_id = validated_acc_id
|
if arg_amodule.params['id'] or arg_amodule.params['name']:
|
||||||
self.acc_info = validated_acc_info
|
if arg_amodule.params['account_id'] or arg_amodule.params['account_name'] :
|
||||||
validated_disk_id, validated_disk_facts = self.disk_find(
|
validated_acc_id,validated_acc_info = self.account_find(arg_amodule.params['account_name'],arg_amodule.params['account_id'])
|
||||||
disk_id=arg_amodule.params['id'],
|
if not validated_acc_id:
|
||||||
name=arg_amodule.params['name'] if "name" in arg_amodule.params else "",
|
self.result['failed'] = True
|
||||||
account_id=self.acc_id,
|
self.result['changed'] = False
|
||||||
check_state=False,
|
self.result['msg'] = ("Current user does not have access to the account ID {} / "
|
||||||
)
|
"name '{}' or non-existent account specified.").format(arg_amodule.params['account_id'],
|
||||||
|
arg_amodule.params['account_name'])
|
||||||
|
self.amodule.fail_json(**self.result)
|
||||||
|
else:
|
||||||
|
self.acc_id = validated_acc_id
|
||||||
|
self.acc_info = validated_acc_info
|
||||||
|
validated_disk_id,validated_disk_facts = self.disk_find(
|
||||||
|
disk_id=arg_amodule.params['id'],
|
||||||
|
name=arg_amodule.params['name'] if "name" in arg_amodule.params else "",
|
||||||
|
account_id=self.acc_id,
|
||||||
|
check_state=False,
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
self.result['failed'] = True
|
||||||
|
self.result['msg'] = ("Cannot manage Disk when its ID is 0 and name is empty")
|
||||||
|
self.amodule.fail_json(**self.result)
|
||||||
|
|
||||||
if arg_amodule.params['place_with']:
|
if arg_amodule.params['place_with']:
|
||||||
image_id, image_facts = self.image_find(arg_amodule.params['place_with'], "", 0)
|
image_id, image_facts = self.image_find(arg_amodule.params['place_with'], "", 0)
|
||||||
@@ -330,17 +324,12 @@ class decort_disk(DecortController):
|
|||||||
if restore:
|
if restore:
|
||||||
self.disk_restore(self.disk_id)
|
self.disk_restore(self.disk_id)
|
||||||
#rename if id present
|
#rename if id present
|
||||||
if (
|
if self.amodule.params['name'] != self.disk_info['name']:
|
||||||
self.amodule.params['name'] is not None
|
|
||||||
and self.amodule.params['name'] != self.disk_info['name']
|
|
||||||
):
|
|
||||||
self.disk_rename(disk_id=self.disk_id,
|
self.disk_rename(disk_id=self.disk_id,
|
||||||
name=self.amodule.params['name'])
|
name=self.amodule.params['name'])
|
||||||
|
self.disk_info['name'] = self.amodule.params['name']
|
||||||
#resize
|
#resize
|
||||||
if (
|
if self.amodule.params['size'] != self.disk_info['sizeMax']:
|
||||||
self.amodule.params['size'] is not None
|
|
||||||
and self.amodule.params['size'] != self.disk_info['sizeMax']
|
|
||||||
):
|
|
||||||
self.disk_resize(self.disk_info,self.amodule.params['size'])
|
self.disk_resize(self.disk_info,self.amodule.params['size'])
|
||||||
#IO TUNE
|
#IO TUNE
|
||||||
if self.amodule.params['limitIO']:
|
if self.amodule.params['limitIO']:
|
||||||
@@ -392,6 +381,7 @@ class decort_disk(DecortController):
|
|||||||
account_id=0,
|
account_id=0,
|
||||||
sep_id=0,
|
sep_id=0,
|
||||||
pool="none",
|
pool="none",
|
||||||
|
attached_to=0,
|
||||||
gid=0
|
gid=0
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -409,7 +399,7 @@ class decort_disk(DecortController):
|
|||||||
ret_dict['account_id'] = self.disk_info['accountId']
|
ret_dict['account_id'] = self.disk_info['accountId']
|
||||||
ret_dict['sep_id'] = self.disk_info['sepId']
|
ret_dict['sep_id'] = self.disk_info['sepId']
|
||||||
ret_dict['pool'] = self.disk_info['pool']
|
ret_dict['pool'] = self.disk_info['pool']
|
||||||
ret_dict['computes'] = self.disk_info['computes']
|
ret_dict['attached_to'] = self.disk_info['vmid']
|
||||||
ret_dict['gid'] = self.disk_info['gid']
|
ret_dict['gid'] = self.disk_info['gid']
|
||||||
ret_dict['iotune'] = self.disk_info['iotune']
|
ret_dict['iotune'] = self.disk_info['iotune']
|
||||||
|
|
||||||
@@ -451,7 +441,7 @@ class decort_disk(DecortController):
|
|||||||
place_with=dict(type='int', default=0),
|
place_with=dict(type='int', default=0),
|
||||||
pool=dict(type='str', default=''),
|
pool=dict(type='str', default=''),
|
||||||
sep_id=dict(type='int', default=0),
|
sep_id=dict(type='int', default=0),
|
||||||
size=dict(type='int'),
|
size=dict(type='int', default=0),
|
||||||
type=dict(type='str',
|
type=dict(type='str',
|
||||||
required=False,
|
required=False,
|
||||||
default="D",
|
default="D",
|
||||||
@@ -500,9 +490,6 @@ def main():
|
|||||||
['app_id', 'app_secret'],
|
['app_id', 'app_secret'],
|
||||||
['user', 'password'],
|
['user', 'password'],
|
||||||
],
|
],
|
||||||
required_one_of=[
|
|
||||||
['id', 'name'],
|
|
||||||
],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
decon = decort_disk(amodule)
|
decon = decort_disk(amodule)
|
||||||
|
|||||||
@@ -77,6 +77,13 @@ class decort_group(DecortController):
|
|||||||
return
|
return
|
||||||
|
|
||||||
def create(self):
|
def create(self):
|
||||||
|
|
||||||
|
if self.amodule.params['driver'] not in ["KVM_X86","KVM_PPC"]:
|
||||||
|
self.result['failed'] = True
|
||||||
|
self.result['msg'] = ("Unsupported driver '{}' is specified for "
|
||||||
|
"Group.").format(self.amodule.params['driver'])
|
||||||
|
self.amodule.fail_json(**self.result)
|
||||||
|
|
||||||
self.group_id=self.group_provision(
|
self.group_id=self.group_provision(
|
||||||
self.bservice_id,
|
self.bservice_id,
|
||||||
self.amodule.params['name'],
|
self.amodule.params['name'],
|
||||||
@@ -102,40 +109,22 @@ class decort_group(DecortController):
|
|||||||
self.group_info['techStatus'] == 'STOPPED' and self.amodule.params['state'] in ('started','present')
|
self.group_info['techStatus'] == 'STOPPED' and self.amodule.params['state'] in ('started','present')
|
||||||
):
|
):
|
||||||
self.group_state(self.bservice_id,self.group_id,self.amodule.params['state'])
|
self.group_state(self.bservice_id,self.group_id,self.amodule.params['state'])
|
||||||
|
self.group_resize_count(self.bservice_id,self.group_info,self.amodule.params['count'])
|
||||||
if self.aparams['count'] != None:
|
self.group_update_hw(
|
||||||
self.group_resize_count(
|
self.bservice_id,
|
||||||
bs_id=self.bservice_id,
|
self.group_info,
|
||||||
gr_dict=self.group_info,
|
self.amodule.params['cpu'],
|
||||||
desired_count=self.aparams['count'],
|
self.amodule.params['boot_disk'],
|
||||||
)
|
self.amodule.params['name'],
|
||||||
|
self.amodule.params['role'],
|
||||||
for aparam_name, info_key in {'cpu': 'cpu',
|
self.amodule.params['ram'],
|
||||||
'boot_disk': 'disk',
|
)
|
||||||
'role': 'role',
|
self.group_update_net(
|
||||||
'ram': 'ram',
|
self.bservice_id,
|
||||||
'name': 'name',
|
self.group_info,
|
||||||
}.items():
|
self.amodule.params['networks']
|
||||||
aparam_value = self.aparams[aparam_name]
|
)
|
||||||
group_info_value = self.group_info[info_key]
|
return
|
||||||
if aparam_value != None and aparam_value != group_info_value:
|
|
||||||
self.group_update(
|
|
||||||
bs_id=self.bservice_id,
|
|
||||||
gr_dict=self.group_info,
|
|
||||||
arg_cpu=self.aparams['cpu'],
|
|
||||||
arg_disk=self.aparams['boot_disk'],
|
|
||||||
arg_name=self.aparams['name'],
|
|
||||||
arg_role=self.aparams['role'],
|
|
||||||
arg_ram=self.aparams['ram'],
|
|
||||||
)
|
|
||||||
break
|
|
||||||
|
|
||||||
if self.aparams['networks'] != None:
|
|
||||||
self.group_update_net(
|
|
||||||
bs_id=self.bservice_id,
|
|
||||||
gr_dict=self.group_info,
|
|
||||||
arg_net=self.aparams['networks'],
|
|
||||||
)
|
|
||||||
|
|
||||||
def destroy(self):
|
def destroy(self):
|
||||||
|
|
||||||
@@ -209,20 +198,20 @@ class decort_group(DecortController):
|
|||||||
user=dict(type='str',
|
user=dict(type='str',
|
||||||
required=False,
|
required=False,
|
||||||
fallback=(env_fallback, ['DECORT_USER'])),
|
fallback=(env_fallback, ['DECORT_USER'])),
|
||||||
name=dict(type='str'),
|
name=dict(type='str', required=True),
|
||||||
id=dict(type='int', required=False),
|
id=dict(type='int', required=False, default=0),
|
||||||
image_id=dict(type='int', required=False),
|
image_id=dict(type='int', required=False),
|
||||||
image_name=dict(type='str', required=False),
|
image_name=dict(type='str', required=False),
|
||||||
driver=dict(type='str', required=False, choices=['KVM_X86', 'SVA_KVM_X86'], default="KVM_X86"),
|
driver=dict(type='str', required=False,default="KVM_X86"),
|
||||||
boot_disk=dict(type='int', required=False),
|
boot_disk=dict(type='int', required=False),
|
||||||
bservice_id=dict(type='int', required=True),
|
bservice_id=dict(type='int', required=True),
|
||||||
count=dict(type='int'),
|
count=dict(type='int', required=True),
|
||||||
timeoutStart=dict(type='int', required=False),
|
timeoutStart=dict(type='int', required=False),
|
||||||
role=dict(type='str', required=False),
|
role=dict(type='str', required=False, default=''),
|
||||||
cpu=dict(type='int', required=False),
|
cpu=dict(type='int', required=False),
|
||||||
ram=dict(type='int', required=False),
|
ram=dict(type='int', required=False),
|
||||||
networks=dict(
|
networks=dict(
|
||||||
type='list', elements='dict',
|
type='list', default=[], elements='dict',
|
||||||
options=dict(
|
options=dict(
|
||||||
type=dict(
|
type=dict(
|
||||||
type='str',
|
type='str',
|
||||||
@@ -255,13 +244,6 @@ def main():
|
|||||||
],
|
],
|
||||||
required_one_of=[
|
required_one_of=[
|
||||||
['id', 'name'],
|
['id', 'name'],
|
||||||
['id', 'networks'],
|
|
||||||
['id', 'count'],
|
|
||||||
['id', 'cpu'],
|
|
||||||
['id', 'ram'],
|
|
||||||
['id', 'boot_disk'],
|
|
||||||
['id', 'image_id'],
|
|
||||||
['id', 'driver'],
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,6 @@ EXAMPLES = '''
|
|||||||
- node.mainapp.domen.local/group1=g1
|
- node.mainapp.domen.local/group1=g1
|
||||||
register: some_cluster
|
register: some_cluster
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
from ansible.module_utils.basic import AnsibleModule
|
||||||
from ansible.module_utils.basic import env_fallback
|
from ansible.module_utils.basic import env_fallback
|
||||||
from ansible.module_utils.decort_utils import *
|
from ansible.module_utils.decort_utils import *
|
||||||
@@ -77,14 +76,20 @@ class decort_k8s(DecortController):
|
|||||||
validated_rg_facts = None
|
validated_rg_facts = None
|
||||||
validated_k8ci_id = 0
|
validated_k8ci_id = 0
|
||||||
self.k8s_should_exist = False
|
self.k8s_should_exist = False
|
||||||
|
if not arg_amodule.params['workers']:
|
||||||
|
self.result['failed'] = True
|
||||||
|
self.result['changed'] = False
|
||||||
|
self.result['msg'] = "At least one worker group must be present"
|
||||||
|
self.amodule.fail_json(**self.result)
|
||||||
|
|
||||||
if arg_amodule.params['name'] == "" and arg_amodule.params['id'] is None:
|
if arg_amodule.params['name'] == "" and arg_amodule.params['id'] == 0:
|
||||||
self.result['failed'] = True
|
self.result['failed'] = True
|
||||||
self.result['changed'] = False
|
self.result['changed'] = False
|
||||||
self.result['msg'] = "Cannot manage k8s cluster when its ID is 0 and name is empty."
|
self.result['msg'] = "Cannot manage k8s cluster when its ID is 0 and name is empty."
|
||||||
self.amodule.fail_json(**self.result)
|
self.amodule.fail_json(**self.result)
|
||||||
|
|
||||||
if arg_amodule.params['id'] is None:
|
|
||||||
|
if not arg_amodule.params['id']:
|
||||||
if not arg_amodule.params['rg_id']: # RG ID is not set -> locate RG by name -> need account ID
|
if not arg_amodule.params['rg_id']: # RG ID is not set -> locate RG by name -> need account ID
|
||||||
validated_acc_id, _ = self.account_find(arg_amodule.params['account_name'],
|
validated_acc_id, _ = self.account_find(arg_amodule.params['account_name'],
|
||||||
arg_amodule.params['account_id'])
|
arg_amodule.params['account_id'])
|
||||||
@@ -109,23 +114,10 @@ class decort_k8s(DecortController):
|
|||||||
arg_amodule.params['rg_name'])
|
arg_amodule.params['rg_name'])
|
||||||
self.amodule.fail_json(**self.result)
|
self.amodule.fail_json(**self.result)
|
||||||
# fail the module - exit
|
# fail the module - exit
|
||||||
|
|
||||||
|
|
||||||
self.rg_id = validated_rg_id
|
#validate k8ci ID
|
||||||
arg_amodule.params['rg_id'] = validated_rg_id
|
|
||||||
arg_amodule.params['rg_name'] = validated_rg_facts['name']
|
|
||||||
self.acc_id = validated_rg_facts['accountId']
|
|
||||||
|
|
||||||
self.k8s_id,self.k8s_info = self.k8s_find(k8s_id=arg_amodule.params['id'],
|
|
||||||
k8s_name=arg_amodule.params['name'],
|
|
||||||
rg_id=validated_rg_id,
|
|
||||||
check_state=False)
|
|
||||||
|
|
||||||
if self.k8s_id:
|
|
||||||
self.k8s_should_exist = True
|
|
||||||
self.acc_id = self.k8s_info['accountId']
|
|
||||||
# check workers and groups for add or remove?
|
|
||||||
|
|
||||||
if not self.k8s_id:
|
|
||||||
validated_k8ci_id = self.k8s_k8ci_find(arg_amodule.params['k8ci_id'])
|
validated_k8ci_id = self.k8s_k8ci_find(arg_amodule.params['k8ci_id'])
|
||||||
if not validated_k8ci_id:
|
if not validated_k8ci_id:
|
||||||
self.result['failed'] = True
|
self.result['failed'] = True
|
||||||
@@ -133,12 +125,22 @@ class decort_k8s(DecortController):
|
|||||||
self.result['msg'] = "Cannot find K8CI ID {}.".format(arg_amodule.params['k8ci_id'])
|
self.result['msg'] = "Cannot find K8CI ID {}.".format(arg_amodule.params['k8ci_id'])
|
||||||
self.amodule.fail_json(**self.result)
|
self.amodule.fail_json(**self.result)
|
||||||
|
|
||||||
if not arg_amodule.params['workers']:
|
self.rg_id = validated_rg_id
|
||||||
self.result['failed'] = True
|
arg_amodule.params['rg_id'] = validated_rg_id
|
||||||
self.result['changed'] = False
|
arg_amodule.params['rg_name'] = validated_rg_facts['name']
|
||||||
self.result['msg'] = "At least one worker group must be present"
|
self.acc_id = validated_rg_facts['accountId']
|
||||||
self.amodule.fail_json(**self.result)
|
arg_amodule.params['k8ci_id'] = validated_k8ci_id
|
||||||
|
|
||||||
|
self.k8s_id,self.k8s_info = self.k8s_find(k8s_id=arg_amodule.params['id'],
|
||||||
|
k8s_name=arg_amodule.params['name'],
|
||||||
|
rg_id=validated_rg_id,
|
||||||
|
check_state=False)
|
||||||
|
|
||||||
|
if self.k8s_id:
|
||||||
|
self.k8s_should_exist = True
|
||||||
|
self.acc_id = self.k8s_info['accountId']
|
||||||
|
# check workers and groups for add or remove?
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
def package_facts(self,check_mode=False):
|
def package_facts(self,check_mode=False):
|
||||||
@@ -167,7 +169,7 @@ class decort_k8s(DecortController):
|
|||||||
ret_dict['name'] = self.k8s_info['name']
|
ret_dict['name'] = self.k8s_info['name']
|
||||||
ret_dict['techStatus'] = self.k8s_info['techStatus']
|
ret_dict['techStatus'] = self.k8s_info['techStatus']
|
||||||
ret_dict['state'] = self.k8s_info['status']
|
ret_dict['state'] = self.k8s_info['status']
|
||||||
ret_dict['rg_id'] = self.k8s_info['rgId']
|
ret_dict['rg_id'] = self.rg_id
|
||||||
ret_dict['vins_id'] = self.k8s_vins_id
|
ret_dict['vins_id'] = self.k8s_vins_id
|
||||||
ret_dict['account_id'] = self.acc_id
|
ret_dict['account_id'] = self.acc_id
|
||||||
ret_dict['k8s_Masters'] = self.k8s_info['k8sGroups']['masters']
|
ret_dict['k8s_Masters'] = self.k8s_info['k8sGroups']['masters']
|
||||||
@@ -264,13 +266,15 @@ class decort_k8s(DecortController):
|
|||||||
self.k8s_info = self.k8s_get_by_id(k8s_id=self.k8s_id)
|
self.k8s_info = self.k8s_get_by_id(k8s_id=self.k8s_id)
|
||||||
#k8s state
|
#k8s state
|
||||||
self.k8s_state(self.k8s_info, disared_state, started)
|
self.k8s_state(self.k8s_info, disared_state, started)
|
||||||
self.k8s_info = self.k8s_get_by_id(k8s_id=self.k8s_id)
|
self.k8s_id,self.k8s_info = self.k8s_find(k8s_id=self.amodule.params['id'],
|
||||||
|
k8s_name=self.amodule.params['name'],
|
||||||
|
rg_id=self.rg_id,
|
||||||
|
check_state=False)
|
||||||
if started == True and self.k8s_info['techStatus'] == "STOPPED":
|
if started == True and self.k8s_info['techStatus'] == "STOPPED":
|
||||||
self.k8s_state(self.k8s_info, disared_state,started)
|
self.k8s_state(self.k8s_info, disared_state,started)
|
||||||
self.k8s_info['techStatus'] == "STARTED"
|
self.k8s_info['techStatus'] == "STARTED"
|
||||||
#check groups and modify if needed
|
#check groups and modify if needed
|
||||||
if self.aparams['workers'] is not None:
|
self.k8s_workers_modify(self.k8s_info,self.amodule.params['workers'])
|
||||||
self.k8s_workers_modify(self.k8s_info, self.aparams['workers'])
|
|
||||||
if self.result['changed'] == True:
|
if self.result['changed'] == True:
|
||||||
self.k8s_info = self.k8s_get_by_id(k8s_id=self.k8s_id)
|
self.k8s_info = self.k8s_get_by_id(k8s_id=self.k8s_id)
|
||||||
#TODO check workers metadata and modify if needed
|
#TODO check workers metadata and modify if needed
|
||||||
@@ -315,12 +319,12 @@ class decort_k8s(DecortController):
|
|||||||
required=False,
|
required=False,
|
||||||
fallback=(env_fallback, ['DECORT_USER'])),
|
fallback=(env_fallback, ['DECORT_USER'])),
|
||||||
name=dict(type='str', required=False, default=""),
|
name=dict(type='str', required=False, default=""),
|
||||||
id=dict(type='int', required=False),
|
id=dict(type='int', required=False, default=0),
|
||||||
getConfig=dict(type='bool',required=False, default=False),
|
getConfig=dict(type='bool',required=False, default=False),
|
||||||
rg_id=dict(type='int', default=0),
|
rg_id=dict(type='int', default=0),
|
||||||
rg_name=dict(type='str',default=""),
|
rg_name=dict(type='str',default=""),
|
||||||
vins_id=dict(type='int', required=False,default=None),
|
vins_id=dict(type='int', required=False,default=None),
|
||||||
k8ci_id=dict(type='int'),
|
k8ci_id=dict(type='int', required=True),
|
||||||
network_plugin=dict(type='str',required=False,default="flannel"),
|
network_plugin=dict(type='str',required=False,default="flannel"),
|
||||||
master_count=dict(type='int', default=1),
|
master_count=dict(type='int', default=1),
|
||||||
master_cpu=dict(type='int', default=2),
|
master_cpu=dict(type='int', default=2),
|
||||||
@@ -328,49 +332,7 @@ class decort_k8s(DecortController):
|
|||||||
master_disk=dict(type='int', default=10),
|
master_disk=dict(type='int', default=10),
|
||||||
master_sepid=dict(type='int', required=False, default=None),
|
master_sepid=dict(type='int', required=False, default=None),
|
||||||
master_pool=dict(type='str', required=False, default=None),
|
master_pool=dict(type='str', required=False, default=None),
|
||||||
workers=dict(
|
workers=dict(type='list',required=True),
|
||||||
type='list',
|
|
||||||
elements='dict',
|
|
||||||
options=dict(
|
|
||||||
name=dict(
|
|
||||||
type='str',
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
num=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
cpu=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
ram=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
disk=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
sep_id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
pool=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
annotations=dict(
|
|
||||||
type='list',
|
|
||||||
elements='str',
|
|
||||||
),
|
|
||||||
ci_user_data=dict(
|
|
||||||
type='dict',
|
|
||||||
),
|
|
||||||
labels=dict(
|
|
||||||
type='list',
|
|
||||||
elements='str',
|
|
||||||
),
|
|
||||||
taints=dict(
|
|
||||||
type='list',
|
|
||||||
elements='str',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
workers_metadata=dict(type='bool',required=False,default=False),
|
workers_metadata=dict(type='bool',required=False,default=False),
|
||||||
extnet_id=dict(type='int', default=0),
|
extnet_id=dict(type='int', default=0),
|
||||||
description=dict(type='str', default="Created by decort ansible module"),
|
description=dict(type='str', default="Created by decort ansible module"),
|
||||||
@@ -404,6 +366,7 @@ def main():
|
|||||||
],
|
],
|
||||||
required_one_of=[
|
required_one_of=[
|
||||||
['id', 'name'],
|
['id', 'name'],
|
||||||
|
['rg_id','rg_name']
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -69,11 +69,11 @@ options:
|
|||||||
required: no
|
required: no
|
||||||
arch:
|
arch:
|
||||||
description:
|
description:
|
||||||
- Architecture of the KVM VM. DECORT supports KVM hosts based on Intel x86.
|
- Architecture of the KVM VM. DECORT supports KVM hosts based on Intel x86 and IBM PowerPC hardware.
|
||||||
- This parameter is used when new KVM VM is created and ignored for all other operations.
|
- This parameter is used when new KVM VM is created and ignored for all other operations.
|
||||||
- Module may fail if your DECORT installation does not have physical nodes of specified architecture.
|
- Module may fail if your DECORT installation does not have physical nodes of specified architecture.
|
||||||
default: X86_64
|
default: X86_64
|
||||||
choices: [ X86_64 ]
|
choices: [ X86_64, PPC64_LE ]
|
||||||
required: yes
|
required: yes
|
||||||
authenticator:
|
authenticator:
|
||||||
description:
|
description:
|
||||||
@@ -355,8 +355,6 @@ class decort_kvmvm(DecortController):
|
|||||||
# call superclass constructor first
|
# call superclass constructor first
|
||||||
super(decort_kvmvm, self).__init__(arg_amodule)
|
super(decort_kvmvm, self).__init__(arg_amodule)
|
||||||
|
|
||||||
self.check_amodule_args()
|
|
||||||
|
|
||||||
self.comp_should_exist = False
|
self.comp_should_exist = False
|
||||||
# This following flag is used to avoid extra (and unnecessary) get of compute details prior to
|
# This following flag is used to avoid extra (and unnecessary) get of compute details prior to
|
||||||
# packaging facts before the module completes. As ""
|
# packaging facts before the module completes. As ""
|
||||||
@@ -417,59 +415,19 @@ class decort_kvmvm(DecortController):
|
|||||||
check_state=False)
|
check_state=False)
|
||||||
|
|
||||||
if self.comp_id:
|
if self.comp_id:
|
||||||
|
if self.comp_info['status'] != 'DESTROYED' and self.comp_info['arch'] not in ["X86_64", "PPC64_LE"]:
|
||||||
|
# If we found a Compute in a non-DESTROYED state and it is not of type valid arch, abort the module
|
||||||
|
self.result['failed'] = True
|
||||||
|
self.result['msg'] = ("Compute ID {} architecture '{}' is not supported by "
|
||||||
|
"decort_kvmvm module.").format(self.comp_id,
|
||||||
|
self.amodule.params['arch'])
|
||||||
|
self.amodule.fail_json(**self.result)
|
||||||
|
# fail the module - exit
|
||||||
self.comp_should_exist = True
|
self.comp_should_exist = True
|
||||||
self.acc_id = self.comp_info['accountId']
|
self.acc_id = self.comp_info['accountId']
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
def check_amodule_args(self):
|
|
||||||
"""
|
|
||||||
Additional Ansible Module arguments validation that
|
|
||||||
cannot be implemented using Ansible Argument spec.
|
|
||||||
"""
|
|
||||||
|
|
||||||
# Check parameter "networks" for DPDK type
|
|
||||||
aparam_nets = self.aparams['networks']
|
|
||||||
if aparam_nets:
|
|
||||||
net_types = {net['type'] for net in aparam_nets}
|
|
||||||
DPDK = 'DPDK'
|
|
||||||
if DPDK in net_types and not net_types.issubset({'DPDK', 'EMPTY'}):
|
|
||||||
self.message(
|
|
||||||
'Check for parameter "networks" failed: a compute cannot'
|
|
||||||
' be connected to a DPDK network and a network of another'
|
|
||||||
' type at the same time.'
|
|
||||||
)
|
|
||||||
self.exit(fail=True)
|
|
||||||
|
|
||||||
# Check for unacceptable parameters for a blank Compute
|
|
||||||
if (
|
|
||||||
self.aparams['image_id'] is None
|
|
||||||
and self.aparams['image_name'] is None
|
|
||||||
):
|
|
||||||
for parameter in (
|
|
||||||
'ssh_key',
|
|
||||||
'ssh_key_user',
|
|
||||||
'ci_user_data',
|
|
||||||
):
|
|
||||||
if self.aparams[parameter] is not None:
|
|
||||||
self.message(
|
|
||||||
f'Check for parameter "{parameter}" failed: '
|
|
||||||
f'"image_id" or "image_name" must be specified '
|
|
||||||
f'to set {parameter}.'
|
|
||||||
)
|
|
||||||
self.exit(fail=True)
|
|
||||||
|
|
||||||
if (
|
|
||||||
self.aparams['sep_id'] is not None
|
|
||||||
and self.aparams['boot_disk'] is None
|
|
||||||
):
|
|
||||||
self.message(
|
|
||||||
'Check for parameter "sep_id" failed: '
|
|
||||||
'"image_id" or "image_name" or "boot_disk" '
|
|
||||||
'must be specified to set sep_id.'
|
|
||||||
)
|
|
||||||
self.exit(fail=True)
|
|
||||||
|
|
||||||
def nop(self):
|
def nop(self):
|
||||||
"""No operation (NOP) handler for Compute management by decort_kvmvm module.
|
"""No operation (NOP) handler for Compute management by decort_kvmvm module.
|
||||||
This function is intended to be called from the main switch construct of the module
|
This function is intended to be called from the main switch construct of the module
|
||||||
@@ -517,45 +475,42 @@ class decort_kvmvm(DecortController):
|
|||||||
# each of the following calls will abort if argument is missing
|
# each of the following calls will abort if argument is missing
|
||||||
self.check_amodule_argument('cpu')
|
self.check_amodule_argument('cpu')
|
||||||
self.check_amodule_argument('ram')
|
self.check_amodule_argument('ram')
|
||||||
validated_bdisk_size = self.amodule.params['boot_disk'] or 0
|
|
||||||
|
|
||||||
image_id, image_facts = None, None
|
if self.amodule.params['arch'] not in ["X86_64", "PPC64_LE"]:
|
||||||
if (
|
self.result['failed'] = True
|
||||||
self.amodule.params['image_id'] is None
|
self.result['msg'] = ("Unsupported architecture '{}' is specified for "
|
||||||
and self.amodule.params['image_name'] is None
|
"KVM VM create.").format(self.amodule.params['arch'])
|
||||||
):
|
self.amodule.fail_json(**self.result)
|
||||||
if self.amodule.params['state'] not in ('poweredoff', 'halted'):
|
# fail the module - exit
|
||||||
self.result['msg'] = (
|
|
||||||
'"state" parameter for a blank Compute must be either '
|
validated_bdisk_size = 0
|
||||||
'"poweredoff" or "halted".'
|
|
||||||
)
|
image_facts = None
|
||||||
self.exit(fail=True)
|
# either image_name or image_id must be present
|
||||||
|
if self.check_amodule_argument('image_id', abort=False) and self.amodule.params['image_id'] > 0 :
|
||||||
|
# find image by image ID and account ID
|
||||||
|
# image_find(self, image_id, image_name, account_id, rg_id=0, sepid=0, pool=""):
|
||||||
|
_, image_facts = self.image_find(image_id=self.amodule.params['image_id'],
|
||||||
|
image_name="",
|
||||||
|
account_id=self.acc_id)
|
||||||
|
elif self.check_amodule_argument('image_name', abort=False) and self.amodule.params['image_name'] != "":
|
||||||
|
# find image by image name and account ID
|
||||||
|
_, image_facts = self.image_find(image_id=0,
|
||||||
|
image_name=self.amodule.params['image_name'],
|
||||||
|
account_id=self.acc_id)
|
||||||
else:
|
else:
|
||||||
# either image_name or image_id must be present
|
# neither image_name nor image_id are set - abort the script
|
||||||
if (
|
self.result['failed'] = True
|
||||||
self.check_amodule_argument('image_id', abort=False)
|
self.result['msg'] = "Missing both 'image_name' and 'image_id'. You need to specify one to create a Compute."
|
||||||
and self.amodule.params['image_id'] > 0
|
self.amodule.fail_json(**self.result)
|
||||||
):
|
# fail the module - exit
|
||||||
# find image by image ID and account ID
|
|
||||||
# image_find(self, image_id, image_name, account_id, rg_id=0, sepid=0, pool=""):
|
|
||||||
image_id, image_facts = self.image_find(
|
|
||||||
image_id=self.amodule.params['image_id'],
|
|
||||||
image_name="",
|
|
||||||
account_id=self.acc_id)
|
|
||||||
elif (
|
|
||||||
self.check_amodule_argument('image_name', abort=False)
|
|
||||||
and self.amodule.params['image_name'] != ""
|
|
||||||
):
|
|
||||||
# find image by image name and account ID
|
|
||||||
image_id, image_facts = self.image_find(
|
|
||||||
image_id=0,
|
|
||||||
image_name=self.amodule.params['image_name'],
|
|
||||||
account_id=self.acc_id,
|
|
||||||
)
|
|
||||||
|
|
||||||
if validated_bdisk_size <= image_facts['size']:
|
if ((not self.check_amodule_argument('boot_disk', False)) or
|
||||||
# adjust disk size to the minimum allowed by OS image, which will be used to spin off this Compute
|
self.amodule.params['boot_disk'] <= image_facts['size']):
|
||||||
validated_bdisk_size = image_facts['size']
|
# adjust disk size to the minimum allowed by OS image, which will be used to spin off this Compute
|
||||||
|
validated_bdisk_size = image_facts['size']
|
||||||
|
else:
|
||||||
|
validated_bdisk_size =self.amodule.params['boot_disk']
|
||||||
|
|
||||||
# NOTE: due to a libvirt "feature", that impacts management of a VM created without any network interfaces,
|
# NOTE: due to a libvirt "feature", that impacts management of a VM created without any network interfaces,
|
||||||
# we create KVM VM in HALTED state.
|
# we create KVM VM in HALTED state.
|
||||||
@@ -581,24 +536,17 @@ class decort_kvmvm(DecortController):
|
|||||||
cloud_init_params = None
|
cloud_init_params = None
|
||||||
# if we get through here, all parameters required to create new Compute instance should be at hand
|
# if we get through here, all parameters required to create new Compute instance should be at hand
|
||||||
|
|
||||||
match self.amodule.params['chipset'].lower():
|
|
||||||
case 'q35':
|
|
||||||
chipset = 'Q35'
|
|
||||||
case 'i440fx':
|
|
||||||
chipset = 'i440fx'
|
|
||||||
|
|
||||||
# NOTE: KVM VM is created in HALTED state and must be explicitly started
|
# NOTE: KVM VM is created in HALTED state and must be explicitly started
|
||||||
self.comp_id = self.kvmvm_provision(rg_id=self.rg_id,
|
self.comp_id = self.kvmvm_provision(rg_id=self.rg_id,
|
||||||
comp_name=self.amodule.params['name'],
|
comp_name=self.amodule.params['name'], arch=self.amodule.params['arch'],
|
||||||
cpu=self.amodule.params['cpu'], ram=self.amodule.params['ram'],
|
cpu=self.amodule.params['cpu'], ram=self.amodule.params['ram'],
|
||||||
boot_disk=validated_bdisk_size,
|
boot_disk=validated_bdisk_size,
|
||||||
image_id=image_id,
|
image_id=image_facts['id'],
|
||||||
annotation=self.amodule.params['annotation'],
|
annotation=self.amodule.params['annotation'],
|
||||||
userdata=cloud_init_params,
|
userdata=cloud_init_params,
|
||||||
sep_id=self.amodule.params['sep_id' ] if "sep_id" in self.amodule.params else None,
|
sep_id=self.amodule.params['sep_id' ] if "sep_id" in self.amodule.params else None,
|
||||||
pool_name=self.amodule.params['pool'] if "pool" in self.amodule.params else None,
|
pool_name=self.amodule.params['pool'] if "pool" in self.amodule.params else None,
|
||||||
start_on_create=start_compute,
|
start_on_create=start_compute)
|
||||||
chipset=chipset)
|
|
||||||
self.comp_should_exist = True
|
self.comp_should_exist = True
|
||||||
|
|
||||||
# Originally we would have had to re-read comp_info after VM was provisioned
|
# Originally we would have had to re-read comp_info after VM was provisioned
|
||||||
@@ -626,17 +574,9 @@ class decort_kvmvm(DecortController):
|
|||||||
# Compute was created
|
# Compute was created
|
||||||
#
|
#
|
||||||
# Setup network connections
|
# Setup network connections
|
||||||
if self.amodule.params['networks'] is not None:
|
self.compute_networks(self.comp_info, self.amodule.params['networks'])
|
||||||
self.compute_networks(
|
|
||||||
comp_dict=self.comp_info,
|
|
||||||
new_networks=self.amodule.params['networks'],
|
|
||||||
)
|
|
||||||
# Next manage data disks
|
# Next manage data disks
|
||||||
if self.amodule.params['data_disks'] is not None:
|
self.compute_data_disks(self.comp_info, self.amodule.params['data_disks'])
|
||||||
self.compute_data_disks(
|
|
||||||
comp_dict=self.comp_info,
|
|
||||||
new_data_disks=self.amodule.params['data_disks'],
|
|
||||||
)
|
|
||||||
|
|
||||||
self.compute_affinity(self.comp_info,
|
self.compute_affinity(self.comp_info,
|
||||||
self.amodule.params['tag'],
|
self.amodule.params['tag'],
|
||||||
@@ -683,49 +623,25 @@ class decort_kvmvm(DecortController):
|
|||||||
|
|
||||||
Note that it does not modify power state of KVM VM.
|
Note that it does not modify power state of KVM VM.
|
||||||
"""
|
"""
|
||||||
if self.amodule.params['networks'] is not None:
|
self.compute_networks(self.comp_info, self.amodule.params['networks'])
|
||||||
self.compute_networks(
|
|
||||||
comp_dict=self.comp_info,
|
|
||||||
new_networks=self.aparams['networks'],
|
|
||||||
order_changing=self.aparams['network_order_changing'],
|
|
||||||
)
|
|
||||||
|
|
||||||
boot_disk_new_size = self.amodule.params['boot_disk']
|
boot_disk_new_size = self.amodule.params['boot_disk']
|
||||||
if boot_disk_new_size:
|
if boot_disk_new_size:
|
||||||
self.compute_bootdisk_size(self.comp_info, boot_disk_new_size)
|
self.compute_bootdisk_size(self.comp_info, boot_disk_new_size)
|
||||||
|
|
||||||
if self.amodule.params['data_disks'] is not None:
|
self.compute_data_disks(self.comp_info, self.amodule.params['data_disks'])
|
||||||
self.compute_data_disks(self.comp_info, self.amodule.params['data_disks'])
|
|
||||||
|
|
||||||
self.compute_resize(self.comp_info,
|
self.compute_resize(self.comp_info,
|
||||||
self.amodule.params['cpu'], self.amodule.params['ram'],
|
self.amodule.params['cpu'], self.amodule.params['ram'],
|
||||||
wait_for_state_change=arg_wait_cycles)
|
wait_for_state_change=arg_wait_cycles)
|
||||||
|
|
||||||
self.compute_affinity(self.comp_info,
|
self.compute_affinity(self.comp_info,
|
||||||
self.amodule.params['tag'],
|
self.amodule.params['tag'],
|
||||||
self.amodule.params['aff_rule'],
|
self.amodule.params['aff_rule'],
|
||||||
self.amodule.params['aaff_rule'],
|
self.amodule.params['aaff_rule'],
|
||||||
label=self.amodule.params['affinity_label'])
|
label=self.amodule.params['affinity_label'])
|
||||||
|
|
||||||
if self.compute_update_args:
|
|
||||||
self.compute_update(
|
|
||||||
compute_id=self.comp_info['id'],
|
|
||||||
**self.compute_update_args,
|
|
||||||
)
|
|
||||||
|
|
||||||
return
|
return
|
||||||
|
|
||||||
@property
|
|
||||||
def compute_update_args(self) -> dict:
|
|
||||||
result_args = {}
|
|
||||||
|
|
||||||
aparam_name = self.amodule.params['name']
|
|
||||||
if aparam_name is not None and aparam_name != self.comp_info['name']:
|
|
||||||
result_args['name'] = aparam_name
|
|
||||||
|
|
||||||
return result_args
|
|
||||||
|
|
||||||
|
|
||||||
def package_facts(self, check_mode=False):
|
def package_facts(self, check_mode=False):
|
||||||
"""Package a dictionary of KVM VM facts according to the decort_kvmvm module specification.
|
"""Package a dictionary of KVM VM facts according to the decort_kvmvm module specification.
|
||||||
This dictionary will be returned to the upstream Ansible engine at the completion of decort_kvmvm
|
This dictionary will be returned to the upstream Ansible engine at the completion of decort_kvmvm
|
||||||
@@ -754,8 +670,6 @@ class decort_kvmvm(DecortController):
|
|||||||
private_ips=[], # IPs on ViNSes; usually, at least one IP is listed
|
private_ips=[], # IPs on ViNSes; usually, at least one IP is listed
|
||||||
nat_ip="", # IP of the external ViNS interface; can be empty.
|
nat_ip="", # IP of the external ViNS interface; can be empty.
|
||||||
tags={},
|
tags={},
|
||||||
chipset="",
|
|
||||||
interfaces=[],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if check_mode or self.comp_info is None:
|
if check_mode or self.comp_info is None:
|
||||||
@@ -808,10 +722,6 @@ class decort_kvmvm(DecortController):
|
|||||||
# if it is a data disk - append its ID to the list of data disks IDs
|
# if it is a data disk - append its ID to the list of data disks IDs
|
||||||
ret_dict['data_disks'].append(ddisk['id'])
|
ret_dict['data_disks'].append(ddisk['id'])
|
||||||
|
|
||||||
ret_dict['chipset'] = self.comp_info['chipset']
|
|
||||||
|
|
||||||
ret_dict['interfaces'] = self.comp_info['interfaces']
|
|
||||||
|
|
||||||
return ret_dict
|
return ret_dict
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@@ -835,6 +745,7 @@ class decort_kvmvm(DecortController):
|
|||||||
required=False,
|
required=False,
|
||||||
fallback=(env_fallback, ['DECORT_APP_SECRET']),
|
fallback=(env_fallback, ['DECORT_APP_SECRET']),
|
||||||
no_log=True),
|
no_log=True),
|
||||||
|
arch=dict(type='str', choices=['X86_64', 'PPC64_LE'], default='X86_64'),
|
||||||
authenticator=dict(type='str',
|
authenticator=dict(type='str',
|
||||||
required=True,
|
required=True,
|
||||||
choices=['legacy', 'oauth2', 'jwt']),
|
choices=['legacy', 'oauth2', 'jwt']),
|
||||||
@@ -845,7 +756,7 @@ class decort_kvmvm(DecortController):
|
|||||||
# count=dict(type='int', required=False, default=1),
|
# count=dict(type='int', required=False, default=1),
|
||||||
cpu=dict(type='int', required=False),
|
cpu=dict(type='int', required=False),
|
||||||
# datacenter=dict(type='str', required=False, default=''),
|
# datacenter=dict(type='str', required=False, default=''),
|
||||||
data_disks=dict(type='list', required=False), # list of integer disk IDs
|
data_disks=dict(type='list', default=[], required=False), # list of integer disk IDs
|
||||||
id=dict(type='int', required=False, default=0),
|
id=dict(type='int', required=False, default=0),
|
||||||
image_id=dict(type='int', required=False),
|
image_id=dict(type='int', required=False),
|
||||||
image_name=dict(type='str', required=False),
|
image_name=dict(type='str', required=False),
|
||||||
@@ -854,39 +765,7 @@ class decort_kvmvm(DecortController):
|
|||||||
fallback=(env_fallback, ['DECORT_JWT']),
|
fallback=(env_fallback, ['DECORT_JWT']),
|
||||||
no_log=True),
|
no_log=True),
|
||||||
name=dict(type='str'),
|
name=dict(type='str'),
|
||||||
networks=dict(
|
networks=dict(type='list', default=[], required=False), # list of dictionaries
|
||||||
type='list',
|
|
||||||
elements='dict',
|
|
||||||
options=dict(
|
|
||||||
type=dict(
|
|
||||||
type='str',
|
|
||||||
required=True,
|
|
||||||
choices=[
|
|
||||||
'VINS',
|
|
||||||
'EXTNET',
|
|
||||||
'VFNIC',
|
|
||||||
'DPDK',
|
|
||||||
'EMPTY',
|
|
||||||
],
|
|
||||||
),
|
|
||||||
id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
ip_addr=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
required_if=[
|
|
||||||
('type', 'VINS', ('id',)),
|
|
||||||
('type', 'EXTNET', ('id',)),
|
|
||||||
('type', 'VFNIC', ('id',)),
|
|
||||||
('type', 'DPDK', ('id',)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
network_order_changing=dict(
|
|
||||||
type='bool',
|
|
||||||
default=False,
|
|
||||||
),
|
|
||||||
oauth2_url=dict(type='str',
|
oauth2_url=dict(type='str',
|
||||||
required=False,
|
required=False,
|
||||||
fallback=(env_fallback, ['DECORT_OAUTH2_URL'])),
|
fallback=(env_fallback, ['DECORT_OAUTH2_URL'])),
|
||||||
@@ -915,11 +794,6 @@ class decort_kvmvm(DecortController):
|
|||||||
# wait_for_ip_address=dict(type='bool', required=False, default=False),
|
# wait_for_ip_address=dict(type='bool', required=False, default=False),
|
||||||
workflow_callback=dict(type='str', required=False),
|
workflow_callback=dict(type='str', required=False),
|
||||||
workflow_context=dict(type='str', required=False),
|
workflow_context=dict(type='str', required=False),
|
||||||
chipset=dict(
|
|
||||||
type='str',
|
|
||||||
default='i440fx',
|
|
||||||
choices=['Q35', 'q35', 'I440FX', 'i440fx']
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Workflow digest:
|
# Workflow digest:
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ class decort_lb(DecortController):
|
|||||||
"rise": 2,
|
"rise": 2,
|
||||||
"slowstart": 60000,
|
"slowstart": 60000,
|
||||||
"weight": 100,
|
"weight": 100,
|
||||||
}
|
}
|
||||||
if arg_amodule.params['lb_id']:
|
if arg_amodule.params['lb_id']:
|
||||||
self.lb_id, self.lb_facts = self.lb_find(arg_amodule.params['lb_id'])
|
self.lb_id, self.lb_facts = self.lb_find(arg_amodule.params['lb_id'])
|
||||||
if not self.lb_id:
|
if not self.lb_id:
|
||||||
@@ -54,6 +54,7 @@ class decort_lb(DecortController):
|
|||||||
self.result['msg'] = "Specified LB ID {} not found."\
|
self.result['msg'] = "Specified LB ID {} not found."\
|
||||||
.format(arg_amodule.params['lb _id'])
|
.format(arg_amodule.params['lb _id'])
|
||||||
self.fail_json(**self.result)
|
self.fail_json(**self.result)
|
||||||
|
self.acc_id = self.lb_facts['accountId']
|
||||||
self.rg_id = self.lb_facts['rgId']
|
self.rg_id = self.lb_facts['rgId']
|
||||||
self.vins_id = self.lb_facts['vinsId']
|
self.vins_id = self.lb_facts['vinsId']
|
||||||
return
|
return
|
||||||
@@ -104,7 +105,7 @@ class decort_lb(DecortController):
|
|||||||
)
|
)
|
||||||
self.amodule.fail_json(**self.result)
|
self.amodule.fail_json(**self.result)
|
||||||
|
|
||||||
if self.rg_id and arg_amodule.params['lb_name']:
|
if self.rg_id and self.vins_id:
|
||||||
self.lb_id, self.lb_facts = self.lb_find(0,arg_amodule.params['lb_name'],self.rg_id)
|
self.lb_id, self.lb_facts = self.lb_find(0,arg_amodule.params['lb_name'],self.rg_id)
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -273,11 +274,11 @@ class decort_lb(DecortController):
|
|||||||
vins_id=dict(type='int', required=False, default=0),
|
vins_id=dict(type='int', required=False, default=0),
|
||||||
verify_ssl=dict(type='bool', required=False, default=True),
|
verify_ssl=dict(type='bool', required=False, default=True),
|
||||||
lb_id=dict(type='int', required=False, default=0),
|
lb_id=dict(type='int', required=False, default=0),
|
||||||
lb_name=dict(type='str'),
|
lb_name=dict(type='str', required=True),
|
||||||
ha_lb=dict(type='bool', required=False, default=False),
|
ha_lb=dict(type='bool', required=False, default=False),
|
||||||
backends=dict(type='list',required=False),
|
backends=dict(type='list',required=False,default=[]),
|
||||||
frontends=dict(type='list',required=False),
|
frontends=dict(type='list',required=False,default=[]),
|
||||||
servers=dict(type='list',required=False),
|
servers=dict(type='list',required=False,default=[]),
|
||||||
permanently=dict(type='bool', required=False, default=False),
|
permanently=dict(type='bool', required=False, default=False),
|
||||||
workflow_callback=dict(type='str', required=False),
|
workflow_callback=dict(type='str', required=False),
|
||||||
workflow_context=dict(type='str', required=False),
|
workflow_context=dict(type='str', required=False),
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ options:
|
|||||||
required: no
|
required: no
|
||||||
architecture:
|
architecture:
|
||||||
description:
|
description:
|
||||||
- 'Binary architecture of the image. Note. `X86_64`. Used when creating
|
- 'Binary architecture of the image. Note. `X86_64` or `PPC64_LE`. Used when creating
|
||||||
-an operating system image.'
|
-an operating system image.'
|
||||||
required: no
|
required: no
|
||||||
imagetype:
|
imagetype:
|
||||||
@@ -208,6 +208,10 @@ options:
|
|||||||
- 'The password for loading the binary media. Used in conjunction with `usernameDL`. Used when creating
|
- 'The password for loading the binary media. Used in conjunction with `usernameDL`. Used when creating
|
||||||
- an operating system image.'
|
- an operating system image.'
|
||||||
required: no
|
required: no
|
||||||
|
permanently:
|
||||||
|
description:
|
||||||
|
- 'Whether to permanently delete the image. Used when deleting an image. The default is false.'
|
||||||
|
required: no
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
@@ -359,28 +363,29 @@ class decort_osimage(DecortController):
|
|||||||
passwordDL=amodule.params['passwordDL'],
|
passwordDL=amodule.params['passwordDL'],
|
||||||
sepId=amodule.params['sepId'],
|
sepId=amodule.params['sepId'],
|
||||||
poolName=amodule.params['poolName'],
|
poolName=amodule.params['poolName'],
|
||||||
|
architecture=amodule.params['architecture'],
|
||||||
drivers=amodule.params['drivers'])
|
drivers=amodule.params['drivers'])
|
||||||
self.result['changed'] = True
|
self.result['changed'] = True
|
||||||
return image_facts
|
return image_facts
|
||||||
|
|
||||||
def decort_virt_image_link(self,amodule):
|
def decort_virt_image_link(self,amodule):
|
||||||
# function that links an OS image to a virtual one
|
# function that links an OS image to a virtual one
|
||||||
self.virt_image_link(imageId=self.validated_virt_image_id, targetId=self.target_image_id)
|
self.virt_image_link(imageId=self.validated_virt_image_id, targetId=self.validated_image_id)
|
||||||
image_id, image_facts = decort_osimage.decort_virt_image_find(self, amodule)
|
image_id, image_facts = decort_osimage.decort_virt_image_find(self, amodule)
|
||||||
self.result['facts'] = decort_osimage.decort_osimage_package_facts(image_facts, amodule.check_mode)
|
self.result['facts'] = decort_osimage.decort_osimage_package_facts(image_facts, amodule.check_mode)
|
||||||
self.result['msg'] = ("Image '{}' linked to virtual image '{}'").format(self.target_image_id,
|
self.result['msg'] = ("Image '{}' linked to virtual image '{}'").format(self.validated_image_id,
|
||||||
decort_osimage.decort_osimage_package_facts(image_facts)['id'],)
|
decort_osimage.decort_osimage_package_facts(image_facts)['id'],)
|
||||||
return image_id, image_facts
|
return image_id, image_facts
|
||||||
|
|
||||||
def decort_image_delete(self,amodule):
|
def decort_image_delete(self,amodule):
|
||||||
# function that removes an image
|
# function that removes an image
|
||||||
self.image_delete(imageId=amodule.image_id_delete)
|
self.image_delete(imageId=amodule.image_id_delete, permanently=amodule.params['permanently'])
|
||||||
self.result['changed'] = True
|
self.result['changed'] = True
|
||||||
self.result['msg'] = ("Image '{}' deleted").format(amodule.image_id_delete)
|
self.result['msg'] = ("Image '{}' deleted").format(amodule.image_id_delete)
|
||||||
|
|
||||||
def decort_virt_image_create(self,amodule):
|
def decort_virt_image_create(self,amodule):
|
||||||
# function that creates a virtual image
|
# function that creates a virtual image
|
||||||
image_facts = self.virt_image_create(name=amodule.params['virt_name'], targetId=self.target_image_id)
|
image_facts = self.virt_image_create(name=amodule.params['virt_name'], targetId=self.validated_image_id)
|
||||||
image_id, image_facts = decort_osimage.decort_virt_image_find(self, amodule)
|
image_id, image_facts = decort_osimage.decort_virt_image_find(self, amodule)
|
||||||
self.result['facts'] = decort_osimage.decort_osimage_package_facts(image_facts, amodule.check_mode)
|
self.result['facts'] = decort_osimage.decort_osimage_package_facts(image_facts, amodule.check_mode)
|
||||||
return image_id, image_facts
|
return image_id, image_facts
|
||||||
@@ -482,6 +487,7 @@ class decort_osimage(DecortController):
|
|||||||
default='present',
|
default='present',
|
||||||
choices=['absent', 'present']),
|
choices=['absent', 'present']),
|
||||||
drivers=dict(type='str', required=False, default="KVM_X86"),
|
drivers=dict(type='str', required=False, default="KVM_X86"),
|
||||||
|
architecture=dict(type='str', required=False, default="X86_64"),
|
||||||
imagetype=dict(type='str', required=False, default="linux"),
|
imagetype=dict(type='str', required=False, default="linux"),
|
||||||
boottype=dict(type='str', required=False, default="uefi"),
|
boottype=dict(type='str', required=False, default="uefi"),
|
||||||
url=dict(type='str', required=False),
|
url=dict(type='str', required=False),
|
||||||
@@ -493,6 +499,7 @@ class decort_osimage(DecortController):
|
|||||||
image_password=dict(type='str', required=False),
|
image_password=dict(type='str', required=False),
|
||||||
usernameDL=dict(type='str', required=False),
|
usernameDL=dict(type='str', required=False),
|
||||||
passwordDL=dict(type='str', required=False),
|
passwordDL=dict(type='str', required=False),
|
||||||
|
permanently=dict(type='bool', required=False, default=False),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -517,25 +524,22 @@ def main():
|
|||||||
if amodule.params['virt_name'] or amodule.params['virt_id']:
|
if amodule.params['virt_name'] or amodule.params['virt_id']:
|
||||||
|
|
||||||
image_id, image_facts = decort_osimage.decort_virt_image_find(decon, amodule)
|
image_id, image_facts = decort_osimage.decort_virt_image_find(decon, amodule)
|
||||||
if amodule.params['image_name'] or amodule.params['image_id']:
|
decon.validated_image_id, _ = decort_osimage.decort_image_find(decon, amodule)
|
||||||
decon.target_image_id, _ = decort_osimage.decort_image_find(decon, amodule)
|
|
||||||
else:
|
|
||||||
decon.target_image_id = 0
|
|
||||||
if decort_osimage.decort_osimage_package_facts(image_facts)['id'] > 0:
|
if decort_osimage.decort_osimage_package_facts(image_facts)['id'] > 0:
|
||||||
decon.result['facts'] = decort_osimage.decort_osimage_package_facts(image_facts, amodule.check_mode)
|
decon.result['facts'] = decort_osimage.decort_osimage_package_facts(image_facts, amodule.check_mode)
|
||||||
decon.validated_virt_image_id = decort_osimage.decort_osimage_package_facts(image_facts)['id']
|
decon.validated_virt_image_id = decort_osimage.decort_osimage_package_facts(image_facts)['id']
|
||||||
decon.validated_virt_image_name = decort_osimage.decort_osimage_package_facts(image_facts)['name']
|
decon.validated_virt_image_name = decort_osimage.decort_osimage_package_facts(image_facts)['name']
|
||||||
|
|
||||||
if decort_osimage.decort_osimage_package_facts(image_facts)['id'] == 0 and amodule.params['state'] == "present" and decon.target_image_id > 0:
|
if decort_osimage.decort_osimage_package_facts(image_facts)['id'] == 0 and amodule.params['state'] == "present" and decon.validated_image_id > 0:
|
||||||
image_id, image_facts = decort_osimage.decort_virt_image_create(decon,amodule)
|
image_id, image_facts = decort_osimage.decort_virt_image_create(decon,amodule)
|
||||||
decon.result['msg'] = ("Virtual image '{}' created").format(decort_osimage.decort_osimage_package_facts(image_facts)['id'])
|
decon.result['msg'] = ("Virtual image '{}' created").format(decort_osimage.decort_osimage_package_facts(image_facts)['id'])
|
||||||
decon.result['changed'] = True
|
decon.result['changed'] = True
|
||||||
elif decort_osimage.decort_osimage_package_facts(image_facts)['id'] == 0 and amodule.params['state'] == "present" and decon.target_image_id == 0:
|
elif decort_osimage.decort_osimage_package_facts(image_facts)['id'] == 0 and amodule.params['state'] == "present" and decon.validated_image_id == 0:
|
||||||
decon.result['msg'] = ("Cannot find OS image")
|
decon.result['msg'] = ("Cannot find OS image")
|
||||||
amodule.fail_json(**decon.result)
|
amodule.fail_json(**decon.result)
|
||||||
|
|
||||||
if decon.validated_virt_image_id and decon.target_image_id:
|
if decon.validated_virt_image_id:
|
||||||
if decort_osimage.decort_osimage_package_facts(image_facts)['linkto'] != decon.target_image_id:
|
if decort_osimage.decort_osimage_package_facts(image_facts)['linkto'] != decon.validated_image_id:
|
||||||
decort_osimage.decort_virt_image_link(decon,amodule)
|
decort_osimage.decort_virt_image_link(decon,amodule)
|
||||||
decon.result['changed'] = True
|
decon.result['changed'] = True
|
||||||
amodule.exit_json(**decon.result)
|
amodule.exit_json(**decon.result)
|
||||||
@@ -560,6 +564,8 @@ def main():
|
|||||||
decon.validated_image_id = decort_osimage.decort_osimage_package_facts(image_facts)['id']
|
decon.validated_image_id = decort_osimage.decort_osimage_package_facts(image_facts)['id']
|
||||||
|
|
||||||
elif amodule.params['state'] == "absent" and decon.validated_image_id:
|
elif amodule.params['state'] == "absent" and decon.validated_image_id:
|
||||||
|
if amodule.params['image_name'] or amodule.params['image_id'] and\
|
||||||
|
decort_osimage.decort_osimage_package_facts(image_facts)['accountId'] == amodule.params['account_Id']:
|
||||||
amodule.image_id_delete = decon.validated_image_id
|
amodule.image_id_delete = decon.validated_image_id
|
||||||
decort_osimage.decort_image_delete(decon,amodule)
|
decort_osimage.decort_image_delete(decon,amodule)
|
||||||
|
|
||||||
|
|||||||
@@ -248,7 +248,7 @@ def decort_pfw_parameters():
|
|||||||
required=False,
|
required=False,
|
||||||
fallback=(env_fallback, ['DECORT_PASSWORD']),
|
fallback=(env_fallback, ['DECORT_PASSWORD']),
|
||||||
no_log=True),
|
no_log=True),
|
||||||
rules=dict(type='list', required=False),
|
rules=dict(type='list', required=False, default=[]),
|
||||||
state=dict(type='str',
|
state=dict(type='str',
|
||||||
default='present',
|
default='present',
|
||||||
choices=['absent', 'present']),
|
choices=['absent', 'present']),
|
||||||
@@ -314,11 +314,9 @@ def main():
|
|||||||
if amodule.params['state'] == 'absent':
|
if amodule.params['state'] == 'absent':
|
||||||
# ignore amodule.params['rules'] and remove all rules associated with this Compute
|
# ignore amodule.params['rules'] and remove all rules associated with this Compute
|
||||||
pfw_facts = decon.pfw_configure(comp_facts, vins_facts, None)
|
pfw_facts = decon.pfw_configure(comp_facts, vins_facts, None)
|
||||||
elif amodule.params['rules'] is not None:
|
else:
|
||||||
# manage PFW rules accodring to the module arguments
|
# manage PFW rules accodring to the module arguments
|
||||||
pfw_facts = decon.pfw_configure(comp_facts, vins_facts, amodule.params['rules'])
|
pfw_facts = decon.pfw_configure(comp_facts, vins_facts, amodule.params['rules'])
|
||||||
else:
|
|
||||||
pfw_facts = decon._pfw_get(comp_facts['id'], vins_facts['id'])
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# complete module run
|
# complete module run
|
||||||
|
|||||||
@@ -217,44 +217,31 @@ class decort_rg(DecortController):
|
|||||||
self.validated_rg_id = 0
|
self.validated_rg_id = 0
|
||||||
self.validated_rg_facts = None
|
self.validated_rg_facts = None
|
||||||
|
|
||||||
if amodule.params['rg_id'] is None:
|
if self.amodule.params['account_id']:
|
||||||
if self.amodule.params['account_id']:
|
self.validated_acc_id, _ = self.account_find("", amodule.params['account_id'])
|
||||||
self.validated_acc_id, _ = self.account_find("", amodule.params['account_id'])
|
elif amodule.params['account_name']:
|
||||||
elif amodule.params['account_name']:
|
self.validated_acc_id, _ = self.account_find(amodule.params['account_name'])
|
||||||
self.validated_acc_id, _ = self.account_find(amodule.params['account_name'])
|
if not self.validated_acc_id:
|
||||||
if not self.validated_acc_id:
|
# we failed to locate account by either name or ID - abort with an error
|
||||||
# we failed to locate account by either name or ID - abort with an error
|
self.result['failed'] = True
|
||||||
self.result['failed'] = True
|
self.result['msg'] = ("Current user does not have access to the requested account "
|
||||||
self.result['msg'] = ("Current user does not have access to the requested account "
|
"or non-existent account specified.")
|
||||||
"or non-existent account specified.")
|
self.amodule.fail_json(**self.result)
|
||||||
self.amodule.fail_json(**self.result)
|
|
||||||
|
if amodule.params['rg_id'] > 0:
|
||||||
|
self.validated_rg_id = amodule.params['rg_id']
|
||||||
|
|
||||||
# Check if the RG with the specified parameters already exists
|
# Check if the RG with the specified parameters already exists
|
||||||
self.get_info()
|
self.validated_rg_id, self.rg_facts = self.rg_find(self.validated_acc_id,
|
||||||
|
arg_rg_id = self.validated_rg_id,
|
||||||
|
arg_rg_name=amodule.params['rg_name'],
|
||||||
|
arg_check_state=False)
|
||||||
|
|
||||||
if amodule.params['state'] != "absent":
|
if amodule.params['state'] != "absent":
|
||||||
self.rg_should_exist = True
|
self.rg_should_exist = True
|
||||||
else:
|
else:
|
||||||
self.rg_should_exist = False
|
self.rg_should_exist = False
|
||||||
|
|
||||||
def get_info(self):
|
|
||||||
# If this is the first getting info
|
|
||||||
if not self.validated_rg_id:
|
|
||||||
self.validated_rg_id, self.rg_facts = self.rg_find(
|
|
||||||
arg_account_id=self.validated_acc_id,
|
|
||||||
arg_rg_id=self.aparams['rg_id'],
|
|
||||||
arg_rg_name=self.aparams['rg_name'],
|
|
||||||
arg_check_state=False,
|
|
||||||
)
|
|
||||||
# If this is a repeated getting info
|
|
||||||
else:
|
|
||||||
# If check mode is enabled, there is no needed to
|
|
||||||
# request info again
|
|
||||||
if self.amodule.check_mode:
|
|
||||||
return
|
|
||||||
|
|
||||||
_, self.rg_facts = self.rg_find(arg_rg_id=self.validated_rg_id)
|
|
||||||
|
|
||||||
def access(self):
|
def access(self):
|
||||||
should_change_access = False
|
should_change_access = False
|
||||||
acc_granted = False
|
acc_granted = False
|
||||||
@@ -309,37 +296,17 @@ class decort_rg(DecortController):
|
|||||||
self.result['msg'] = ("Cannot limit less than already reserved'{}'").format(incorrect_quota)
|
self.result['msg'] = ("Cannot limit less than already reserved'{}'").format(incorrect_quota)
|
||||||
self.result['failed'] = True
|
self.result['failed'] = True
|
||||||
|
|
||||||
if not self.result['failed']:
|
if self.result['failed'] != True:
|
||||||
self.rg_update(
|
self.rg_update(self.rg_facts, self.amodule.params['quotas'],
|
||||||
arg_rg_dict=self.rg_facts,
|
self.amodule.params['resType'], self.amodule.params['rename'])
|
||||||
arg_quotas=self.amodule.params['quotas'],
|
|
||||||
arg_res_types=self.amodule.params['resType'],
|
|
||||||
arg_newname=self.amodule.params['rename'],
|
|
||||||
arg_sep_pools=self.amodule.params['sep_pools'],
|
|
||||||
)
|
|
||||||
self.rg_should_exist = True
|
self.rg_should_exist = True
|
||||||
return
|
return
|
||||||
|
|
||||||
def setDefNet(self):
|
def setDefNet(self):
|
||||||
rg_def_net_type = self.rg_facts['def_net_type']
|
if self.amodule.params['def_netId'] != self.rg_facts['def_net_id']:
|
||||||
rg_def_net_id = self.rg_facts['def_net_id']
|
self.rg_setDefNet(self.validated_rg_id,
|
||||||
aparam_def_net_type = self.aparams['def_netType']
|
self.amodule.params['def_netType'],
|
||||||
aparam_def_net_id = self.aparams['def_netId']
|
self.amodule.params['def_netId'])
|
||||||
|
|
||||||
need_to_reset = (aparam_def_net_type == 'NONE'
|
|
||||||
and rg_def_net_type != aparam_def_net_type)
|
|
||||||
|
|
||||||
need_to_change = False
|
|
||||||
if aparam_def_net_id is not None:
|
|
||||||
need_to_change = (aparam_def_net_id != rg_def_net_id
|
|
||||||
or aparam_def_net_type != rg_def_net_type)
|
|
||||||
|
|
||||||
if need_to_reset or need_to_change:
|
|
||||||
self.rg_setDefNet(
|
|
||||||
arg_rg_id=self.validated_rg_id,
|
|
||||||
arg_net_type=aparam_def_net_type,
|
|
||||||
arg_net_id=aparam_def_net_id,
|
|
||||||
)
|
|
||||||
self.rg_should_exist = True
|
self.rg_should_exist = True
|
||||||
return
|
return
|
||||||
|
|
||||||
@@ -384,11 +351,8 @@ class decort_rg(DecortController):
|
|||||||
return
|
return
|
||||||
|
|
||||||
def destroy(self):
|
def destroy(self):
|
||||||
self.rg_delete(
|
|
||||||
rg_id=self.validated_rg_id,
|
self.rg_delete(self.validated_rg_id, self.amodule.params['permanently'])
|
||||||
permanently=self.amodule.params['permanently'],
|
|
||||||
recursively=self.aparams['recursive_deletion'],
|
|
||||||
)
|
|
||||||
if self.amodule.params['permanently'] == True:
|
if self.amodule.params['permanently'] == True:
|
||||||
self.rg_facts['status'] = 'DESTROYED'
|
self.rg_facts['status'] = 'DESTROYED'
|
||||||
else:
|
else:
|
||||||
@@ -429,7 +393,6 @@ class decort_rg(DecortController):
|
|||||||
ret_dict['defNetType'] = self.rg_facts['def_net_type']
|
ret_dict['defNetType'] = self.rg_facts['def_net_type']
|
||||||
ret_dict['ViNS'] = self.rg_facts['vins']
|
ret_dict['ViNS'] = self.rg_facts['vins']
|
||||||
ret_dict['computes'] = self.rg_facts['vms']
|
ret_dict['computes'] = self.rg_facts['vms']
|
||||||
ret_dict['uniqPools'] = self.rg_facts['uniqPools']
|
|
||||||
|
|
||||||
return ret_dict
|
return ret_dict
|
||||||
|
|
||||||
@@ -455,7 +418,7 @@ class decort_rg(DecortController):
|
|||||||
controller_url=dict(type='str', required=True),
|
controller_url=dict(type='str', required=True),
|
||||||
# datacenter=dict(type='str', required=False, default=''),
|
# datacenter=dict(type='str', required=False, default=''),
|
||||||
def_netType=dict(type='str', choices=['PRIVATE','PUBLIC', 'NONE'], default='PRIVATE'),
|
def_netType=dict(type='str', choices=['PRIVATE','PUBLIC', 'NONE'], default='PRIVATE'),
|
||||||
def_netId=dict(type='int'),
|
def_netId=dict(type='int', default=0),
|
||||||
extNetId=dict(type='int', default=0),
|
extNetId=dict(type='int', default=0),
|
||||||
extNetIp=dict(type='str', default=""),
|
extNetIp=dict(type='str', default=""),
|
||||||
owner=dict(type='str', default=""),
|
owner=dict(type='str', default=""),
|
||||||
@@ -483,29 +446,10 @@ class decort_rg(DecortController):
|
|||||||
required=False,
|
required=False,
|
||||||
fallback=(env_fallback, ['DECORT_USER'])),
|
fallback=(env_fallback, ['DECORT_USER'])),
|
||||||
rg_name=dict(type='str', required=False,),
|
rg_name=dict(type='str', required=False,),
|
||||||
rg_id=dict(type='int', required=False),
|
rg_id=dict(type='int', required=False, default=0),
|
||||||
verify_ssl=dict(type='bool', required=False, default=True),
|
verify_ssl=dict(type='bool', required=False, default=True),
|
||||||
workflow_callback=dict(type='str', required=False),
|
workflow_callback=dict(type='str', required=False),
|
||||||
workflow_context=dict(type='str', required=False),
|
workflow_context=dict(type='str', required=False),
|
||||||
sep_pools=dict(
|
|
||||||
type='list',
|
|
||||||
elements='dict',
|
|
||||||
options=dict(
|
|
||||||
sep_id=dict(
|
|
||||||
type='int',
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
pool_names=dict(
|
|
||||||
type='list',
|
|
||||||
required=True,
|
|
||||||
elements='str',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
recursive_deletion=dict(
|
|
||||||
type='bool',
|
|
||||||
default=False,
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Workflow digest:
|
# Workflow digest:
|
||||||
@@ -542,16 +486,11 @@ def main():
|
|||||||
elif amodule.params['state'] == "disabled":
|
elif amodule.params['state'] == "disabled":
|
||||||
decon.enable()
|
decon.enable()
|
||||||
if amodule.params['state'] in ['present', 'enabled']:
|
if amodule.params['state'] in ['present', 'enabled']:
|
||||||
if (
|
if amodule.params['quotas'] or amodule.params['resType'] or amodule.params['rename'] != "":
|
||||||
amodule.params['quotas']
|
|
||||||
or amodule.params['resType']
|
|
||||||
or amodule.params['rename'] != ""
|
|
||||||
or amodule.params['sep_pools'] is not None
|
|
||||||
):
|
|
||||||
decon.update()
|
decon.update()
|
||||||
if amodule.params['access']:
|
if amodule.params['access']:
|
||||||
decon.access()
|
decon.access()
|
||||||
if amodule.params['def_netType'] is not None:
|
if amodule.params['def_netId'] > 0:
|
||||||
decon.setDefNet()
|
decon.setDefNet()
|
||||||
|
|
||||||
elif decon.rg_facts['status'] == "DELETED":
|
elif decon.rg_facts['status'] == "DELETED":
|
||||||
@@ -589,8 +528,6 @@ def main():
|
|||||||
amodule.fail_json(**decon.result)
|
amodule.fail_json(**decon.result)
|
||||||
else:
|
else:
|
||||||
if decon.rg_should_exist:
|
if decon.rg_should_exist:
|
||||||
if decon.result['changed']:
|
|
||||||
decon.get_info()
|
|
||||||
decon.result['facts'] = decon.package_facts(amodule.check_mode)
|
decon.result['facts'] = decon.package_facts(amodule.check_mode)
|
||||||
amodule.exit_json(**decon.result)
|
amodule.exit_json(**decon.result)
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -1,357 +0,0 @@
|
|||||||
#!/usr/bin/python
|
|
||||||
|
|
||||||
# Copyright: ...
|
|
||||||
# ...
|
|
||||||
|
|
||||||
DOCUMENTATION = r'''
|
|
||||||
---
|
|
||||||
module: decort_user_info
|
|
||||||
|
|
||||||
version_added: "2.16"
|
|
||||||
|
|
||||||
description: See L(Module Documentation,https://repository.basistech.ru/BASIS/decort-ansible/wiki/Home).
|
|
||||||
'''
|
|
||||||
|
|
||||||
# EXAMPLES = r'''
|
|
||||||
# '''
|
|
||||||
|
|
||||||
# RETURN = r'''
|
|
||||||
# '''
|
|
||||||
|
|
||||||
from ansible.module_utils.basic import AnsibleModule
|
|
||||||
from ansible.module_utils.decort_utils import DecortController
|
|
||||||
|
|
||||||
|
|
||||||
class DecortUserInfo(DecortController):
|
|
||||||
def __init__(self):
|
|
||||||
super().__init__(AnsibleModule(**self.amodule_init_args))
|
|
||||||
self.check_amodule_args()
|
|
||||||
|
|
||||||
@property
|
|
||||||
def amodule_init_args(self) -> dict:
|
|
||||||
return self.pack_amodule_init_args(
|
|
||||||
argument_spec=dict(
|
|
||||||
accounts=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
deleted=dict(
|
|
||||||
type='bool',
|
|
||||||
default=False,
|
|
||||||
),
|
|
||||||
filter=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
rights=dict(
|
|
||||||
type='str',
|
|
||||||
choices=[
|
|
||||||
e.value
|
|
||||||
for e in self.AccountUserRights
|
|
||||||
],
|
|
||||||
),
|
|
||||||
id=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
name=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
status=dict(
|
|
||||||
type='str',
|
|
||||||
choices=[
|
|
||||||
e.value for e in self.AccountStatus
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
pagination=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
number=dict(
|
|
||||||
type='int',
|
|
||||||
default=1,
|
|
||||||
),
|
|
||||||
size=dict(
|
|
||||||
type='int',
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
resource_consumption=dict(
|
|
||||||
type='bool',
|
|
||||||
default=False,
|
|
||||||
),
|
|
||||||
sorting=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
asc=dict(
|
|
||||||
type='bool',
|
|
||||||
default=True,
|
|
||||||
),
|
|
||||||
field=dict(
|
|
||||||
type='str',
|
|
||||||
choices=[
|
|
||||||
e.value
|
|
||||||
for e in self.AccountSortableField
|
|
||||||
],
|
|
||||||
required=True,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
api_methods=dict(
|
|
||||||
type='bool',
|
|
||||||
default=False,
|
|
||||||
),
|
|
||||||
audits=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
filter=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
api_method=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
status_code=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
min=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
max=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
time=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
start=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
unix=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
date_time=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
mutually_exclusive=[
|
|
||||||
('unix', 'date_time'),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
end=dict(
|
|
||||||
type='dict',
|
|
||||||
options=dict(
|
|
||||||
unix=dict(
|
|
||||||
type='int',
|
|
||||||
),
|
|
||||||
date_time=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
),
|
|
||||||
mutually_exclusive=[
|
|
||||||
('unix', 'date_time'),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
pagination=dict(
|
|
||||||
type='dict',
|
|
||||||
apply_defaults=True,
|
|
||||||
options=dict(
|
|
||||||
number=dict(
|
|
||||||
type='int',
|
|
||||||
default=1,
|
|
||||||
),
|
|
||||||
size=dict(
|
|
||||||
type='int',
|
|
||||||
default=50,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
),
|
|
||||||
objects_search=dict(
|
|
||||||
type='str',
|
|
||||||
),
|
|
||||||
resource_consumption=dict(
|
|
||||||
type='bool',
|
|
||||||
default=False,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
supports_check_mode=True,
|
|
||||||
)
|
|
||||||
|
|
||||||
def check_amodule_args(self):
|
|
||||||
"""
|
|
||||||
Additional validation of Ansible Module arguments.
|
|
||||||
This validation cannot be implemented using
|
|
||||||
Ansible Argument spec.
|
|
||||||
"""
|
|
||||||
|
|
||||||
check_error = False
|
|
||||||
|
|
||||||
match self.aparams['audits']:
|
|
||||||
case {'filter': {'time':
|
|
||||||
{'start': {'date_time': str() as dt_str}}
|
|
||||||
}
|
|
||||||
}:
|
|
||||||
if self.dt_str_to_sec(dt_str=dt_str) is None:
|
|
||||||
self.message(self.MESSAGES.str_not_parsed(string=dt_str))
|
|
||||||
check_error = True
|
|
||||||
match self.aparams['audits']:
|
|
||||||
case {'filter': {'time':
|
|
||||||
{'end': {'date_time': str() as dt_str}}
|
|
||||||
}
|
|
||||||
}:
|
|
||||||
if self.dt_str_to_sec(dt_str=dt_str) is None:
|
|
||||||
self.message(self.MESSAGES.str_not_parsed(string=dt_str))
|
|
||||||
check_error = True
|
|
||||||
|
|
||||||
if check_error:
|
|
||||||
self.exit(fail=True)
|
|
||||||
|
|
||||||
@property
|
|
||||||
def mapped_accounts_args(self) -> None | dict:
|
|
||||||
"""
|
|
||||||
Map the module argument `accounts` to
|
|
||||||
arguments dictionary for the method
|
|
||||||
`DecortController.user_accounts`.
|
|
||||||
"""
|
|
||||||
|
|
||||||
input_args = self.aparams['accounts']
|
|
||||||
if not input_args:
|
|
||||||
return input_args
|
|
||||||
|
|
||||||
mapped_args = {}
|
|
||||||
|
|
||||||
mapped_args['deleted'] = input_args['deleted']
|
|
||||||
|
|
||||||
mapped_args['resource_consumption'] = (
|
|
||||||
input_args['resource_consumption']
|
|
||||||
)
|
|
||||||
|
|
||||||
input_args_filter = input_args['filter']
|
|
||||||
if input_args_filter:
|
|
||||||
input_args_filter_rights = input_args_filter['rights']
|
|
||||||
if input_args_filter_rights:
|
|
||||||
mapped_args['account_user_rights'] = (
|
|
||||||
self.AccountUserRights(input_args_filter_rights)
|
|
||||||
)
|
|
||||||
|
|
||||||
mapped_args['account_id'] = input_args_filter['id']
|
|
||||||
|
|
||||||
mapped_args['account_name'] = input_args_filter['name']
|
|
||||||
|
|
||||||
input_args_filter_status = input_args_filter['status']
|
|
||||||
if input_args_filter_status:
|
|
||||||
mapped_args['account_status'] = (
|
|
||||||
self.AccountStatus(input_args_filter_status)
|
|
||||||
)
|
|
||||||
|
|
||||||
input_args_pagination = input_args['pagination']
|
|
||||||
if input_args_pagination:
|
|
||||||
mapped_args['page_number'] = input_args_pagination['number']
|
|
||||||
mapped_args['page_size'] = input_args_pagination['size']
|
|
||||||
|
|
||||||
input_args_sorting = input_args['sorting']
|
|
||||||
if input_args_sorting:
|
|
||||||
mapped_args['sort_by_asc'] = input_args_sorting['asc']
|
|
||||||
|
|
||||||
input_args_sorting_field = input_args_sorting['field']
|
|
||||||
if input_args_sorting_field:
|
|
||||||
mapped_args['sort_by_field'] = (
|
|
||||||
self.AccountSortableField(input_args_sorting_field)
|
|
||||||
)
|
|
||||||
|
|
||||||
return mapped_args
|
|
||||||
|
|
||||||
@property
|
|
||||||
def mapped_audits_args(self):
|
|
||||||
"""
|
|
||||||
Map the module argument `audits` to
|
|
||||||
arguments dictionary for the method
|
|
||||||
`DecortController.user_audits`.
|
|
||||||
"""
|
|
||||||
|
|
||||||
input_args = self.aparams['audits']
|
|
||||||
if not input_args:
|
|
||||||
return input_args
|
|
||||||
|
|
||||||
mapped_args = {}
|
|
||||||
|
|
||||||
input_args_filter = input_args['filter']
|
|
||||||
if input_args_filter:
|
|
||||||
mapped_args['api_method'] = input_args_filter['api_method']
|
|
||||||
|
|
||||||
match input_args_filter['status_code']:
|
|
||||||
case {'min': int() as min_status_code}:
|
|
||||||
mapped_args['min_status_code'] = min_status_code
|
|
||||||
match input_args_filter['status_code']:
|
|
||||||
case {'max': int() as max_status_code}:
|
|
||||||
mapped_args['max_status_code'] = max_status_code
|
|
||||||
|
|
||||||
match input_args_filter['time']:
|
|
||||||
case {'start': {'unix': int() as start_unix_time}}:
|
|
||||||
mapped_args['start_unix_time'] = start_unix_time
|
|
||||||
case {'start': {'date_time': str() as start_dt_str}}:
|
|
||||||
mapped_args['start_unix_time'] = self.dt_str_to_sec(
|
|
||||||
dt_str=start_dt_str
|
|
||||||
)
|
|
||||||
match input_args_filter['time']:
|
|
||||||
case {'end': {'unix': int() as end_unix_time}}:
|
|
||||||
mapped_args['end_unix_time'] = end_unix_time
|
|
||||||
case {'end': {'date_time': str() as end_dt_str}}:
|
|
||||||
mapped_args['end_unix_time'] = self.dt_str_to_sec(
|
|
||||||
dt_str=end_dt_str
|
|
||||||
)
|
|
||||||
|
|
||||||
input_args_pagination = input_args['pagination']
|
|
||||||
if input_args_pagination:
|
|
||||||
mapped_args['page_number'] = input_args_pagination['number']
|
|
||||||
mapped_args['page_size'] = input_args_pagination['size']
|
|
||||||
|
|
||||||
return mapped_args
|
|
||||||
|
|
||||||
def run(self):
|
|
||||||
self.get_info()
|
|
||||||
self.exit()
|
|
||||||
|
|
||||||
def get_info(self):
|
|
||||||
self.facts = self.user_whoami()
|
|
||||||
self.id = self.facts['name']
|
|
||||||
|
|
||||||
user_get = self.user_get(id=self.id)
|
|
||||||
for key in ['emailaddresses', 'data']:
|
|
||||||
self.facts[key] = user_get[key]
|
|
||||||
|
|
||||||
if self.aparams['accounts']:
|
|
||||||
self.facts['accounts'] = self.user_accounts(
|
|
||||||
**self.mapped_accounts_args,
|
|
||||||
)
|
|
||||||
|
|
||||||
if self.aparams['resource_consumption']:
|
|
||||||
self.facts.update(self.user_resource_consumption())
|
|
||||||
|
|
||||||
if self.aparams['audits']:
|
|
||||||
self.facts['audits'] = self.user_audits(**self.mapped_audits_args)
|
|
||||||
|
|
||||||
if self.aparams['api_methods']:
|
|
||||||
self.facts['api_methods'] = self.user_api_methods(id=self.id)
|
|
||||||
|
|
||||||
|
|
||||||
search_string = self.aparams['objects_search']
|
|
||||||
if search_string:
|
|
||||||
self.facts['objects_search'] = self.user_objects_search(
|
|
||||||
search_string=search_string,
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
|
||||||
DecortUserInfo().run()
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
main()
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,21 +0,0 @@
|
|||||||
1. [Введение](./введение.md)
|
|
||||||
- [Введение](./введение.md#введение)
|
|
||||||
- [Системные требования](./введение.md#системные-требования)
|
|
||||||
- [Подготовка к работе](./введение.md#подготовка-к-работе)
|
|
||||||
- [Авторизация](./введение.md#авторизация)
|
|
||||||
- [Общие параметры модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации)
|
|
||||||
- [Пример авторизации с помощью app_id и app_secret](./введение.md#пример-авторизации-с-помощью-app_id-и-app_secret)
|
|
||||||
- [Пример авторизации с помощью JSON Web Token](./введение.md#пример-авторизации-с-помощью-json-web-token)
|
|
||||||
1. Ansible модули DECORT:
|
|
||||||
- [Модуль decort_kvmvm](./модуль-decort_kvmvm.md) - управление виртуальными машинами
|
|
||||||
- [Модуль decort_osimage](./модуль-decort_osimage.md) - управление образами
|
|
||||||
- [Модуль decort_disk](./модуль-decort_disk.md) - управление дисками
|
|
||||||
- [Модуль decort_pfw](./модуль-decort_pfw.md) - управление правилами переадресации портов
|
|
||||||
- [Модуль decort_rg](./модуль-decort_rg.md) - управление ресурсными группами
|
|
||||||
- [Модуль decort_vins](./модуль-decort_vins.md) - управление внутренними сетями
|
|
||||||
- [Модуль decort_jwt](./модуль-decort_jwt.md) - получение авторизационного токена
|
|
||||||
- [Модуль decort_bservice](./модуль-decort_bservice.md) - управление базовыми службами
|
|
||||||
- [Модуль decort_group](./модуль-decort_group.md)- управление группами базовой службы
|
|
||||||
- [Модуль decort_k8s](./модуль-decort_k8s.md) - управление кластерами Kubernetes
|
|
||||||
- [Модуль decort_lb](./модуль-decort_lb.md) - управление балансировщиками нагрузки
|
|
||||||
- [Модуль decort_account_info](./модуль-decort_account_info.md) - получение информации об аккаунте
|
|
||||||
@@ -1,182 +0,0 @@
|
|||||||
# Модули Ansible для управления облачными ресурсами в платформе DECORT
|
|
||||||
## Введение
|
|
||||||
|
|
||||||
Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology).
|
|
||||||
|
|
||||||
По каждому модулю есть своя документация, в которой вы можете найти список доступных действий, подробную информацию о входных параметрах и возвращаемых данных, а также примеры использования.
|
|
||||||
|
|
||||||
## Системные требования
|
|
||||||
Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT.
|
|
||||||
Системные требования для работы модуля:
|
|
||||||
- Ansible 2.16.5 or higher
|
|
||||||
- Python 3.10.12 or higher
|
|
||||||
- PyJWT 1.7.1 Python module or higher
|
|
||||||
- requests Python module
|
|
||||||
- netaddr Python module
|
|
||||||
- DECORT cloud platform version 4.0.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>
|
|
||||||
Идентификатор приложения, использующийся для подключения к контроллеру
|
|
||||||
облачной платформы DECORT в режиме <code>authenticator: oauth2</code>.
|
|
||||||
Данный параметр является обязательным для указанного режима. Если
|
|
||||||
параметр не задан в playbook, модуль будет использовать значение
|
|
||||||
переменной окружения <code>DECORT_APP_ID</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
app_secret
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Секретный ключ приложения, который используется для подключения к
|
|
||||||
контроллеру облачной платформы DECORT в режиме
|
|
||||||
<code>authenticator: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Так как он содержит секретную
|
|
||||||
информацию, то его не рекомендуется задавать непосредственно в
|
|
||||||
playbook. Если параметр не задан в playbook, то модуль будет
|
|
||||||
использовать значение переменной окружения
|
|
||||||
<code>DECORT_APP_SECRET</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
authenticator
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br/><code>oauth2</code>
|
|
||||||
<br/><code>jwt</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим аутентификации при подключении к контроллеру облачной платформы
|
|
||||||
DECORT. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
controller_url
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL контроллера, соответствующего экземпляру облачной платформы
|
|
||||||
DECORT. Данный параметр является обязательным.
|
|
||||||
</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: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Если параметр не задан в
|
|
||||||
playbook, модуль будет использовать значение переменной
|
|
||||||
окружения <code>DECORT_OAUTH2_URL</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
verify_ssl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
<br>Default: <code>true</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Позволяет отключить проверку SSL сертификатов при выполнении API
|
|
||||||
вызовов в адрес контроллера облачной инфраструктуры, например,
|
|
||||||
при работе с изолированной облачной инфраструктурой, использующей
|
|
||||||
самоподписанные сертификаты. Применяйте данный параметр с
|
|
||||||
осторожностью, предпочтительно в защищенных средах.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### Пример авторизации с помощью app_id и app_secret
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Auth with app_id and app_secret
|
|
||||||
decort_module_name:
|
|
||||||
# Специфичные для модулей параметры упущены
|
|
||||||
# Пример демонстрирует только параметры для авторизации
|
|
||||||
app_id: "{{ app_id }}"
|
|
||||||
app_secret: "{{ app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
oauth2_url: "{{ oauth2_url }}"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Пример авторизации с помощью JSON Web Token
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Auth with JWT
|
|
||||||
decort_module_name:
|
|
||||||
# Специфичные для модулей параметры упущены
|
|
||||||
# Пример демонстрирует только параметры для авторизации
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
jwt: "{{ jwt }}"
|
|
||||||
```
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,92 +0,0 @@
|
|||||||
# Модуль decort_bservice
|
|
||||||
|
|
||||||
## Обзор модуля decort_bservice
|
|
||||||
|
|
||||||
Базовая служба (Basic Service) это несколько групп виртуальных серверов (compute), создаваемых и управляемых как единое целое.
|
|
||||||
|
|
||||||
Все compute(s) в группе имеют одни и те же характеристики (cpu/ram/boot disk size/OS image + сетевые подключения). Для разных групп эти характеристики могут быть разными.
|
|
||||||
|
|
||||||
Группы в составе Basic Service могут иметь отношения parent-child с другими группами. Наличие таких отношений определяет последовательность запуска групп ("сначала parents").
|
|
||||||
|
|
||||||
На основе ресурсов, предоставляемых и управляемых через Basic Service, могут создаваться другие сервисы.
|
|
||||||
|
|
||||||
`Для взаимодействия с группами виртуальных серверов используется модуль decort_group.`
|
|
||||||
|
|
||||||
Модуль decort_bservice предназначен для управления базовыми службами, в которых находятся группы виртуальных серверов.
|
|
||||||
Данный модуль позволяет:
|
|
||||||
- Создавать Basic Service
|
|
||||||
- Удалять Basic Service (безвозвратно).
|
|
||||||
- Включать/выключать Basic Service
|
|
||||||
- Запускать Basic Service
|
|
||||||
- Запрашивать информацию о Basic Service.
|
|
||||||
|
|
||||||
|
|
||||||
## Параметры модуля decort_bservice
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_bservice. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на Вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_bservice`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит ресурсная группа. При идентификации базовой службы и ресурсной группы по именам (см. параметры `name` и `rg_name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
|account_name | (string) | Имя аккаунта, которому принадлежит ресурсная группа. При идентификации базовой службы и ресурсной группы по именам (см. параметры `name` и `rg_name`) должен быть задан либо идентификатор (см. `account_id`), либо имя аккаунта. Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
|app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данная базовая служба. Данный параметр является обязательным.|
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`<br/>Данный параметр является обязательным для указанного режима.<br/>Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.<br/>Если этот параметр не определен в _playbook_, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
|oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`.|
|
|
||||||
|state | Значения: `absent`, `disabled`, `enabled`, `present`, `check`. <br> Default: `present`| Целевое состояние базовой службы. Значения `present` и `enabled` равнозначны.|
|
|
||||||
| started | (bool) <br> Default: `true` | Параметр, определяющий состояние добавленных виртуальных серверов в Basic Service. Запускать их, или нет. |
|
|
||||||
| name | (string) | Имя базовой службы. Данный параметр является обязательным при создании базовой службы и при изменении если не задан `id`. |
|
|
||||||
| sshuser | (string) | Имя пользователя, который будет создан на всех виртуальных серверах базовой службы. Используется в паре с `sshkey`. |
|
|
||||||
| sshkey | (string) | SSH ключ, который будет загружен на все виртуальные сервера базовой службы. Используется в паре с `sshuser`. |
|
|
||||||
| id | (int) | Уникальный целочисленный идентификатор базовой службы. Используется для поиска, изменения и удаления базовой службы. |
|
|
||||||
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы базовой службы. |
|
|
||||||
| rg_name | (string) | Имя ресурсной группы базовой службы. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_bservice
|
|
||||||
|
|
||||||
Модуль decort_bservice возвращает информацию о базовой службе в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
|id | int | Уникальный целочисленный идентификатор базовой службы.|
|
|
||||||
|name | string | Имя базовой службы.|
|
|
||||||
| techStatus | string | Технический статус базовой службы. |
|
|
||||||
|state | string | Статус базовой службы.|
|
|
||||||
| rg_id | int | Уникальный целочисленный идентификатор ресурсной группы, в которой находится базовая служба.|
|
|
||||||
| account_id | int | Уникальный целочисленный идентификатор аккаунта, в котором находится ресурсная группа.|
|
|
||||||
| groups | list | Список словарей с информацией о группах базовой службы.|
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_bservice
|
|
||||||
|
|
||||||
Данный пример создаёт базовую службу с именем databases.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Create Basic Service
|
|
||||||
decort_bservice:
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
jwt: "{{ auth_token }}"
|
|
||||||
name: databases
|
|
||||||
rg_id: "{{ rg_id }}"
|
|
||||||
register: db_bservice
|
|
||||||
```
|
|
||||||
|
|
||||||
Данный пример удаляет базовую службу с названием databases.
|
|
||||||
```
|
|
||||||
- name: Delete Basic Service
|
|
||||||
decort_bservice:
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
jwt: "{{ auth_token }}"
|
|
||||||
state: absent
|
|
||||||
name: databases
|
|
||||||
rg_id: "{{ rg_id }}"
|
|
||||||
register: db_bservice
|
|
||||||
```
|
|
||||||
@@ -1,177 +0,0 @@
|
|||||||
# Модуль decort_disk
|
|
||||||
## Обзор модуля decort_disk
|
|
||||||
|
|
||||||
Модуль decort_disk предназначен для управления дисками и позволяет производить с ними следующие действия:
|
|
||||||
- создавать
|
|
||||||
- удалять (в корзину или безвозвратно)
|
|
||||||
- восстановливать из корзины
|
|
||||||
- изменять:
|
|
||||||
- имя
|
|
||||||
- размер
|
|
||||||
- лимиты ввода/вывода
|
|
||||||
- включать/отключать общий доступ
|
|
||||||
|
|
||||||
|
|
||||||
Обратите внимание:
|
|
||||||
|
|
||||||
- Загрузочный диск для виртуальной машины создаётся и подключается автоматически в процессе создания этой машины.
|
|
||||||
- Модуль decort_disk служит для управления дополнительными дисками (т.н. data-дисками);
|
|
||||||
- Подключение дополнительных дисков, созданных посредством decort_disk, к виртуальным машинам выполняется с помощью модуля управления виртуальными машинами (см. модуль decort_kvmvm).
|
|
||||||
|
|
||||||
## Параметры модуля decort_disk
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_disk. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_disk`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
|account_name | (string) | Имя аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| annotation | (string)<br>Default: `Disk by decort_disk` | Текстовое описание диска. Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется.|
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
|app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данный диск. Данный параметр является обязательным.|
|
|
||||||
|id | (int) | Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры `name`, `account_name` и `account_id` игнорируются.|
|
|
||||||
| iops | (int)<br>Default: `2000` | Ограничение ввода/вывода диска. Используется при создании диска. |
|
|
||||||
| force_detach | (bool)<br/>Default: `false` | Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине.<br/>По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите `force_detach: true`. |
|
|
||||||
|jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
||||||
| limitIO | (dict) | Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду. Обратите внимание, что параметры с total не задаются вместе с read/write. Все возможные подпараметры можно увидеть в примерах. |
|
|
||||||
| name | (string) | Имя диска. Для идентификации диска требуется либо его `name` и информация об аккаунте (`account_id` или `account_name`), которому принадлежит диск, либо его `id`.|
|
|
||||||
|oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`.|
|
|
||||||
| permanently | (bool)<br>Default: `false` | Параметр, использующийся при удалении диска, при значении `true` - диск удалится навсегда, а при `false` - попадёт в корзину. |
|
|
||||||
| place_with | (int) | Идентификатор образа диска, из которого следует взять параметр `sep_id`, чтобы разместить данный диск на той же системе хранения данных, что и указанный образ диска. Данный параметр является опциональным и используется только на стадии создания диска. Если задан `place_with`, то `sep_id` игнорируется.|
|
|
||||||
| pool | (string) | Название пула на системе хранения данных, в рамках которой следует создать данный диск. Этот параметр используется только на стадии создания диска и игнорируется при операциях над уже существующими дисками. Параметр является опциональным, если не задан, то платформа будет использовать пул, который сконфигурирован на целевой системе хранения как пул по умолчанию. |
|
|
||||||
| reason | (string)<br>Default: `Managed by Ansible decort_disk` | Причина, по которой было выполнено какое-либо действие. В данном модуле используется только при удалении диска. |
|
|
||||||
| sep_id | (int) | Идентификатор системы хранения данных (Storage End-point). Данный параметр определяет систему хранения данных, на ресурсах которой создаётся диск. Используется только при создании диска и игнорируется при прочих операциях. Альтернативой данному параметру является `place_with`, позволяющий разместить диск на той же системе хранения, что и указанный образ диска, на базе которого создаётся виртуальная машина.|
|
|
||||||
| shareable | (bool)<br>Default: `false` | Включение/отключение общего доступа к диску.
|
|
||||||
| size | (int) | Размер диска в ГБ. Этот параметр является обязательным при создании диска. Если он задан для уже существующего диска, а текущий размер диска меньше заданного, то будет предпринята попытка увеличить размер диска. При прочих операциях данный параметр игнорируется.|
|
|
||||||
| state | (str)<br>Значения:<br>`present`<br>`absent`<br>Default: `present` | Целевое состояние диска. |
|
|
||||||
| type | (string)<br>Значения:<br>`B`<br>`D`<br>Default: `D` | Тип создаваемого диска. `B` - Boot/загрузочный, `D` - Data/с данными. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `false` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_disk
|
|
||||||
|
|
||||||
Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.|
|
|
||||||
| attached_to | int | Идентификатор виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то `attached_to: 0`|
|
|
||||||
| gid | int | Идентификатор физического кластера (Grid ID), на ресурсах которого создан диск.|
|
|
||||||
| id | int | Уникальный целочисленный идентификатор данного диска.|
|
|
||||||
| iotune | dict | Текущие ограничения ввода/вывода диска. |
|
|
||||||
| name | string | Имя диска. Обратите внимание, что имя диска не является уникальным с точки зрения системы хранения данных, на которой этот диск расположен.|
|
|
||||||
| pool | string | Имя пула на системе хранения данных, в котором размещаются ресурсы диска.|
|
|
||||||
|sep_id | int | Идентификатор системы хранения данных (Storage Endpoint), на которой размещаются ресурсы данного диска.|
|
|
||||||
| size | int | Размер диска в ГБ.|
|
|
||||||
| state | string | Текущий статус диска. |
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_disk
|
|
||||||
|
|
||||||
В данном примере создаётся диск размером 50ГБ (`size: 50`), с ограничением ввода/вывода в 2000 iops, на ресурсах системы хранения данных под номером 1 (`sep_id: 1`) в пуле "data01".
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
name: "DataDisk01"
|
|
||||||
size: 50
|
|
||||||
account_name: "MyAccount"
|
|
||||||
sep_id: 1
|
|
||||||
iops: 2000
|
|
||||||
annotation: "Disk example"
|
|
||||||
pool: data01
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
В следующих двух примерах для существующего диска с именем "DataDisk01" задаются все доступные лимиты на операции ввода/вывода.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
name: "DataDisk01"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
limitIO:
|
|
||||||
read_bytes_sec: 10000
|
|
||||||
write_bytes_sec: 5000
|
|
||||||
read_iops_sec и write_iops_sec
|
|
||||||
read_iops_sec: 2500
|
|
||||||
write_iops_sec: 1000
|
|
||||||
read_bytes_sec_max: 11000
|
|
||||||
write_bytes_sec_max: 6000
|
|
||||||
read_iops_sec_max: 3000
|
|
||||||
write_iops_sec_max: 1500
|
|
||||||
size_iops_sec: 1000
|
|
||||||
register: my_data_disk01
|
|
||||||
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
name: "DataDisk01"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
limitIO:
|
|
||||||
total_bytes_sec: 15000
|
|
||||||
total_iops_sec: 3500
|
|
||||||
total_bytes_sec_max: 17000
|
|
||||||
total_iops_sec_max: 4500
|
|
||||||
size_iops_sec: 1000
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере выполняется восстановление удаленного диска с id 111 из корзины.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
id: 111
|
|
||||||
size: 10
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере выполняется переименование диска с id 111 на новое имя "NewExampleDisk".
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
id: 111
|
|
||||||
name: "NewExampleDisk"
|
|
||||||
size: 10
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
|
|
||||||
Здесь результат работы модуля decort_disk записывается в переменную my_data_disk01. Для получения идентификатора диска, например, при подключении его к виртуальной машине, следует воспользоваться показанной ниже конструкцией:
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage compute
|
|
||||||
decort_kvmvm:
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
data_disks:
|
|
||||||
- "{{ my_data_disk01.facts.id }}"
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
```
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
# Модуль decort_group
|
|
||||||
## Обзор модуля decort_group
|
|
||||||
Модуль **decort_group** позволяет производить следующие действия над группами базовой службы:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- запустить/остановить
|
|
||||||
- подключить/отключить сети (для существующей группы только внутренние сети)
|
|
||||||
- изменить
|
|
||||||
- имя
|
|
||||||
- объём загрузочного диска
|
|
||||||
- количество ВМ
|
|
||||||
- роль
|
|
||||||
- количество виртуальных процессоров
|
|
||||||
- объём ОЗУ
|
|
||||||
- удалить (безвозвратно)
|
|
||||||
|
|
||||||
## Параметры модуля decort_group
|
|
||||||
Ниже приведен полный список параметров для модуля **decort_group**.
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Идентификатор аккаунта. При идентификации диска по имени (см. параметр `name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| account_name | (string) | Имя аккаунта. При идентификации диска по имени (см. параметр `name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br>`oauth2`<br>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| boot_disk | (int) | Обьём загрузочного диска. |
|
|
||||||
| bservice_id | (int) | Идентификатор базовой службы. Обязательный параметр. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| count | (int) | Количество виртуальных машин. Обязательный параметр. |
|
|
||||||
| cpu | (int) | Количество виртуальных процессоров. |
|
|
||||||
| driver | (string)<br>Default: `KVM_X86` | Драйвер. |
|
|
||||||
| id | (int) | Идентификатор группы. |
|
|
||||||
| image_id | (int) | Идентификатор образа. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| name | (str) | Имя группы. Обязательный параметр.
|
|
||||||
| networks | (list) | Список словарей, описывающих сети, которые должны быть подключены.<br>Ключи словаря:<br>• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)<br>• `id` (int) (обязательный) - идентификатор сети |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| ram | (int) | Объём оперативной памяти. |
|
|
||||||
| role | (string) | Тег роли. |
|
|
||||||
| state | (str)<br>Значения:<br>`present`<br>`absent`<br>`started`<br>`stopped`<br>`check`<br>Default: `present` |
|
|
||||||
| timeoutStart | (int) | Время отсрочки запуска группы после создания в секундах. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_group
|
|
||||||
|
|
||||||
Модуль **decort_group** возвращает информацию о диске в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Идентификатор аккаунта. |
|
|
||||||
| Computes | list | Список словарей, содержащих информацию о виртуальных машинах группы.<br>Ключи словаря:<br>• `id` (int) - идентификатор ВМ<br>• `ipAddresses` (list) - список IP-адресов ВМ<br>• `name` (str) - имя ВМ<br>• `osUsers` (list) - список словарей, содержащих учётные данные пользователей ОС ВМ по умолчанию; ключи: `login` (str) и `password` (str) |
|
|
||||||
| id | int | Идентификатор группы.|
|
|
||||||
| name | string | Имя группы.|
|
|
||||||
| rg_id | int | Идентификатор ресурсной группы. |
|
|
||||||
| state | string | Состояние группы. |
|
|
||||||
| techStatus | string | Технический статус группы. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_group
|
|
||||||
|
|
||||||
Данный пример создаёт группу с именем `test_group`.
|
|
||||||
```
|
|
||||||
- hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Create BS group
|
|
||||||
decort_group:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
boot_disk: 10
|
|
||||||
bservice_id: 1823
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
count: 2
|
|
||||||
cpu: 2
|
|
||||||
image_id: 518
|
|
||||||
name: test_group
|
|
||||||
networks:
|
|
||||||
- type: VINS
|
|
||||||
id: 1987
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
ram: 2
|
|
||||||
verify_ssl: false
|
|
||||||
register: group_test
|
|
||||||
```
|
|
||||||
|
|
||||||
Данный пример удаляет группу с именем `test_group`.
|
|
||||||
|
|
||||||
```
|
|
||||||
- hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Delete BS group
|
|
||||||
decort_group:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
bservice_id: 1823
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
name: test_group
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
state: absent
|
|
||||||
verify_ssl: False
|
|
||||||
register: group_test
|
|
||||||
```
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
# Вспомогательный модуль для получения авторизационного 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 }}"
|
|
||||||
```
|
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
# Модуль decort_k8s
|
|
||||||
## Обзор модуля decort_k8s
|
|
||||||
|
|
||||||
Модуль **decort_k8s** предназначен для выполнения следующих действий над кластерами Kubernetes:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- отключить/включить/запустить
|
|
||||||
- изменить группы Worker-узлов
|
|
||||||
- удалить (в корзину или безвозвратно)
|
|
||||||
- восстановить из корзины
|
|
||||||
|
|
||||||
## Параметры модуля decort_k8s
|
|
||||||
Ниже приведен полный список параметров для модуля **decort_k8s**:
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Идентификатор аккаунта. |
|
|
||||||
| account_name | (string) | Имя аккаунта. |
|
|
||||||
| additionalSANs | (list) | Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена.
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| cluster_conf | (dict) | Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| description | (string)<br>Default: `Created by decort ansible module` | Описание кластера. |
|
|
||||||
| extnet_id | (int)<br>Default: `0` | Идентификатор внешней сети. Если задан `0`, то внешняя сеть выбирается автоматически. Если задан параметр `vins_id`, то значение данного параметра будет проигнорировано. Если задан `extnet_only: false`, то внешняя сеть будет подключена к создаваемой внутренней сети, а если `extnet_only: true`, то либо напрямую к каждому узлу кластера (если `with_lb: false`), либо напрямую к балансировщику нагрузки (если `with_lb: true`). |
|
|
||||||
| extnet_only | (bool)<br>Default: `false` | Не использовать внутреннюю сеть, подключать напрямую к внешней. |
|
|
||||||
| getConfig | (bool)<br>Default: `false` | Получить данные конфигурации для доступа к кластеру Kubernetes. |
|
|
||||||
| ha_lb | (bool)<br>Default: `false` | Использовать схему высокой доступности для создаваемого балансировщика нагрузки (если `with_lb: true`). |
|
|
||||||
| id | (int) | Идентификатор кластера Kubernetes. |
|
|
||||||
| init_conf | (dict) | Словарь для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере. Позволяет настраивать такие процессы, как регистрация узла, настройка сети и другие задачи инициализации.
|
|
||||||
| join_conf | (dict) | Словарь для настройки поведения и параметров присоединения узла к кластеру. Включает в себя такие параметры, как control-plane-endpoint кластера, токен и certificate-key. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| k8ci_id | (int) | Идентификатор конфигурации кластера Kubernetes. Обязательный параметр. |
|
|
||||||
| kubeproxy_conf | (dict) | Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. |
|
|
||||||
| kublet_conf | (dict) | Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet. |
|
|
||||||
| master_count | (int)<br>Default: `1` | Количество Master-узлов. |
|
|
||||||
| master_cpu | (int)<br>Default: `2` | Количество виртуальных процессоров на Master-узле. |
|
|
||||||
| master_disk | (int)<br>Default: `10` | Объём загрузочного диска на Master-узле. |
|
|
||||||
| master_pool | (str) | Пул СХД, заданной параметром `master_sepid`. |
|
|
||||||
| master_ram | (int)<br>Default: `2048` | Объём оперативной памяти на Master-узле. |
|
|
||||||
| master_sepid | (int) | Идентификатор СХД для Master-узла. Если не задан, то используется СХД образа Master-узла. |
|
|
||||||
| name | (string) | Имя кластера Kubernetes. |
|
|
||||||
| network_plugin | (str)<br>Значения:<br>`flannel`<br>`calico`<br>`weavenet`<br>Default: `flannel` | CNI plugin (модуль для управления сетевыми интерфейсами контейнера). Возможные значения могут быть ограничены в используемой конфигурации кластера Kubernetes (параметр `k8ci_id`) |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| oidc_cert | (raw) | Сертификат X.509 для OIDC-провайдера.
|
|
||||||
| permanent | (bool)<br>Default: `false` | Если выполняется удаление, то выполнить безвозвратное удаление (минуя корзину). |
|
|
||||||
| rg_id | (int) | Идентификатор ресурсной группы. |
|
|
||||||
| rg_name | (str) | Имя ресурсной группы. |
|
|
||||||
| started | (bool)<br>Default: `true` | Автоматический запуск кластера после его создания. |
|
|
||||||
| state | (string)<br>Значения:<br>`present`<br>`absent`<br>`enabled`<br>`disabled`<br>`check`<br>Default: `present` | Целевое состояние кластера. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| vins_id | (int) | Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано `extnet_only: true`, то параметр игнорируется.
|
|
||||||
| with_lb | (bool)<br>Default: `true` | Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. В ином случае каждый узел получит отдельный адрес из внешней сети.
|
|
||||||
| workers | (list) | Обязательный параметр. Список словарей, описывающих группы Worker-узлов.<br>Ключи словаря:<br>• `annotations` (list) (необязательный) - список строк с annotations в формате: `key1=value1`<br>• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init<br>• `cpu` (int) (обязательный) - количество виртуальных процессоров на узле<br>• `disk` (int) (обязательный) - объём загрузочного диска на узле<br>• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`<br>• `name` (string) (обязательный) - имя группы Worker-узлов<br>• `num` (int) (обязательный) - количество узлов<br>• `pool` (str) (обязательный) - пул СХД, заданной ключом `sep_id`<br>• `ram` (int) (обязательный) - объём оперативной памяти на узле<br>• `sep_id` (int) (обязательный) - идентификатор СХД; если задать `null`, то используется СХД образа узла<br>• `taints` (list) (необязательный) - список строк с taints в формате: `key1=value1:NoSchedule` |
|
|
||||||
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_k8s
|
|
||||||
|
|
||||||
Модуль **decort_k8s** возвращает информацию о кластере в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Идентификатор аккаунта. |
|
|
||||||
| config | str | Kuber config кластера.
|
|
||||||
| id | int | Идентификатор кластера. |
|
|
||||||
| k8s_Masters | dict | Словарь с информацией о группе Master-узлов.<br>Ключи словаря:<br>• `cpu` (int) - количество виртуальных процессоров<br>• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ<br>• `disk` (int) - объём загрузочного диска<br>• `id` (int) - идентификатор группы<br>• `name` (str) - имя группы<br>• `num` (int) - количество узлов<br>• `ram` (int) - объём оперативной памяти
|
|
||||||
| k8s_Workers | dict | Список словарей с информацией о группах Worker-узлов.<br>Ключи словаря:<br>• `cpu` (int) - количество виртуальных процессоров<br>• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ<br>• `disk` (int) - объём загрузочного диска<br>• `id` (int) - идентификатор группы<br>• `labels` (list) - список строк с labels<br>• `name` (str) - имя группы<br>• `num` (int) - количество узлов<br>• `ram` (int) - объём оперативной памяти<br>• `taints` (list) - список строк с taints
|
|
||||||
| name | string | Имя кластера. |
|
|
||||||
| rg_id | int | Идентификатор ресурсной группы. |
|
|
||||||
| state | string | Статус кластера. |
|
|
||||||
| techStatus | string | Технический статус кластера. |
|
|
||||||
| vins_id | int | Идентификатор внутренней сети кластера. |
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_k8s
|
|
||||||
|
|
||||||
|
|
||||||
Пример создания кластера Kubernetes с именем `cluster-test` с получением Kuber config.
|
|
||||||
```
|
|
||||||
- name: Create a k8s cluster named cluster-test
|
|
||||||
decort_k8s:
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
getConfig: true
|
|
||||||
jwt: "{{ token.jwt }}"
|
|
||||||
k8ci_id: 18
|
|
||||||
name: cluster-test
|
|
||||||
rg_id: 125
|
|
||||||
workers:
|
|
||||||
- cpu: 10
|
|
||||||
disk: 10
|
|
||||||
name: wg1
|
|
||||||
num: 1
|
|
||||||
pool: null
|
|
||||||
ram: 1024
|
|
||||||
sep_id: null
|
|
||||||
- cpu: 10
|
|
||||||
disk: 10
|
|
||||||
name: wg2
|
|
||||||
num: 2
|
|
||||||
pool: null
|
|
||||||
ram: 1024
|
|
||||||
sep_id: null
|
|
||||||
register: k8s_cluster
|
|
||||||
```
|
|
||||||
@@ -1,106 +0,0 @@
|
|||||||
# Модуль decort_kvmvm
|
|
||||||
## Обзор модуля decort_kvmvm
|
|
||||||
|
|
||||||
Модуль **decort_kvmvm** предназначен для выполнения следующих действий над виртуальными машинами:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- остановить/приостановить/запустить
|
|
||||||
- подключить/отключить диски с данными
|
|
||||||
- подключить/отключить сети
|
|
||||||
- изменить
|
|
||||||
- объём загрузочного диска в большую сторону
|
|
||||||
- количество CPU
|
|
||||||
- объём ОЗУ
|
|
||||||
- тэги
|
|
||||||
- affinity метку
|
|
||||||
- affinity правила
|
|
||||||
- anti-affinity правила
|
|
||||||
- удалить (безвозвратно)
|
|
||||||
|
|
||||||
## Параметры модуля decort_kvmvm
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля **decort_kvmvm**. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_kvmvm`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| aaff_rule | (list) | Список словарей, описывающих anti-affinity правила.<br>Ключи словаря:<br>• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)<br>• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`<br>• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)<br>• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила<br>• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`)
|
|
||||||
| account_id | (int) | Идентификатор аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией `account_id` и `rg_name`. Если задан `account_id`, то `account_name` игнорируется.|
|
|
||||||
| account_name | (string) | Имя аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией `account_name` и `rg_name`. Если задан `account_id`, то `account_name` игнорируется. |
|
|
||||||
| aff_rule | (list) | Список словарей, описывающих affinity правила.<br>Ключи словаря:<br>• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)<br>• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`<br>• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)<br>• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила<br>• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`)
|
|
||||||
| affinity_label | (str) | Метка affinity.
|
|
||||||
| annotation | (string) | Опциональное описание виртуальной машины. Этот параметр используется только при создании.|
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DCORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| arch | (str)<br>Значения:<br/>`X86_64`<br>`PPC64_LE`<br>Default: `X86_64` | Архитектура виртуальной машины. |
|
|
||||||
| authenticator | (str)<br>Значения:<br>`oauth2`<br>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| boot_disk | (int) | Объём загрузочного диска виртуальной машины в ГБ. |
|
|
||||||
| ci_user_data | (dict) | конфигурация для cloud-init
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данная виртуальная машина. Данный параметр является обязательным. |
|
|
||||||
| cpu | (int) | Количество виртуальных процессоров, выделяемых виртуальной машине. |
|
|
||||||
| data_disks | (list) | Список идентификаторов дисков, которые следует подключить к данной виртуальной машине как дополнительные. |
|
|
||||||
| id | (int) | Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива – по комбинации `name`, `rg_name` и `account_name`). Если при вызове модуля **decort_kvmvm** существующая ВМ идентифицируется по `id`, то параметры `account_id`, `account_name`, `rg_id` и `rg_name` игнорируются. |
|
|
||||||
| image_id | (int) | Уникальный цифровой идентификатор образа, на базе которого следует создать виртуальную машину. При создании задать этот параметр или параметр `image_name`. При любых других операциях данные параметры игнорируются. Если заданы оба этих параметра (`image_id` и `image_name`), то `image_name` игнорируется. |
|
|
||||||
| image_name | (string) | Название образа, на базе которого следует создать ВМ. При создании требуется задать этот параметр или параметр `image_id`. При любых других операциях данные параметры игнорируются. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_JWT`.
|
|
||||||
| name | (string) | Имя ВМ. Чтобы модуль **decort_kvmvm** мог управлять сервером по его названию, также необходимо задать комбинацию `account_name` и `rg_name` или `rg_id`. Если для существующей ВМ указаны и `name`, и `id`, то параметр `name` игнорируется и идентификация сервера выполняется по `id`.|
|
|
||||||
| networks | (list) | Список словарей, описывающих сети для подключения к ВМ.<br>Ключи словаря:<br>• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)<br>• `id` (int) (обязательный) - идентификатор сети<br>• `ip_addr` (string) (необязательный) - IP-адрес, используемый для подключения к данной сети. |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| pool | (str) | Пул СХД, заданной параметром `sep_id`. Если пул не задан, то он будет выбран платформой.
|
|
||||||
| ram | (int) | Объем оперативной памяти в МБ, выделенной данной ВМ. Параметр является обязательным при создании. Если указать его для уже существующей ВМ, то будет выполнена попытка изменить объем выделенной памяти. |
|
|
||||||
| rg_id | (int) | Уникальный цифровой идентификатор уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ (альтернативой является задание комбинации `account_name` и `rg_name`).|
|
|
||||||
| rg_name | (string) | Имя уже существующей ресурсной группы, в которой будет создаа новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ, когда задается пара `account_name` и `rg_name` (альтернативой является задание `rg_id`). Если заданы и `rg_id`, и `rg_name`, то параметр `rg_name` игнорируется.|
|
|
||||||
| sep_id | (int) | Идентификатор СХД для загрузочного диска ВМ. Если не задан, то будет использоваться СХД образа.
|
|
||||||
| ssh_key | (string) | Открытая часть SSH-ключа, который необходимо добавить на создаваемую ВМ для пользователя, заданного параметром `ssh_key_user`. Данный параметр применим только для ОС Linux, используется только при создании и игнорируется при других операциях. |
|
|
||||||
| ssh_key_user | (string) | Имя пользователя в гостевой ОС (только для Linux), для которого добавляется SSH-ключ, заданный параметром `ssh_key`. Данный параметр является обязательным, если задан `ssh_key`. Используется только при создании и игнорируется при других операциях. |
|
|
||||||
| state | (str)<br>Значения:<br>`present`<br>`absent`<br>`poweredon`<br>`poweredoff`<br>`halted`<br>`paused`<br>`check`<br>Default: `present` | Целевое состояние ВМ.<br> Значение `halted` - синоним к `poweredoff`. Значения `present` и `poweredon` равнозначны. <br>Значение `check` вызывает модуль в _read-only_ режиме и считывает характеристики существующей ВМ. |
|
|
||||||
| tag | (dict) | Словарь, пары ключ-значение которого, описывают тэги для ВМ. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_kvmvm
|
|
||||||
|
|
||||||
Модуль **decort_kvmvm** возвращает информацию о виртуальной машине в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Идентификатор аккаунта. |
|
|
||||||
| arch | string | Архитектура ВМ. |
|
|
||||||
| cpu | int | Количество виртуальных процессоров. |
|
|
||||||
| data_disks | list | Список идентификаторов дисков с данными, подключенных к ВМ. |
|
|
||||||
| disk_size | int | Размер загрузочного диска в ГБ. |
|
|
||||||
| id | int | Идентификатор ВМ. |
|
|
||||||
| image_id | id | Идентификатор образа.
|
|
||||||
| name | string | Имя ВМ. |
|
|
||||||
| password | string | Пароль пользователя ОС по умолчанию. |
|
|
||||||
| private_ips | list | Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям. |
|
|
||||||
| public_ips | list | Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям. |
|
|
||||||
| ram | int | Объём ОЗУ ВМ в МБ. |
|
|
||||||
| rg_id | int | Идентификатор ресурсной группы, которой принадлежит данная ВМ. |
|
|
||||||
| state | string | Состояние ВМ.|
|
|
||||||
| tags | dict | Словарь, пары ключ-значение которого, описывают тэги ВМ.
|
|
||||||
| tech_status | str | Технический статус ВМ.
|
|
||||||
| username | string | Имя пользователя ОС по умолчанию. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_kvmvm
|
|
||||||
|
|
||||||
В данном примере создается ВМ с именем MyFirstVM.
|
|
||||||
```
|
|
||||||
- name: Сreate VM
|
|
||||||
decort_kvmvm:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
cpu: 2
|
|
||||||
image_id: "{{ my_img.facts.id }}"
|
|
||||||
name: MyFirstVM
|
|
||||||
networks:
|
|
||||||
- type: VINS
|
|
||||||
id: "{{ my_vins.facts.id }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
ram: 4096
|
|
||||||
rg_id: "{{ my_rg.facts.id }}"
|
|
||||||
register: my_vm
|
|
||||||
```
|
|
||||||
@@ -1,893 +0,0 @@
|
|||||||
# Модуль decort_lb
|
|
||||||
## Обзор модуля decort_lb
|
|
||||||
|
|
||||||
Модуль **decort_lb** предназначен для выполнения следующих действий над балансировщиками нагрузки:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- отключить/включить/запустить/перезапустить
|
|
||||||
- изменить конфигурации backend и frontend
|
|
||||||
- удалить (в корзину или безвозвратно)
|
|
||||||
- восстановить из корзины
|
|
||||||
|
|
||||||
## Параметры модуля decort_lb
|
|
||||||
Ниже приведен полный список параметров для модуля **decort_lb**:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="3">Параметр</th>
|
|
||||||
<th>Тип</th>
|
|
||||||
<th>Описание</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
account_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор аккаунта.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
account_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя аккаунта.
|
|
||||||
<br> Может быть альтернативой параметру <code>account_id</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
annotation
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Default: <code>Managed by Ansible module decort_lb</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Описание балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
app_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор приложения, использующийся для подключения к контроллеру
|
|
||||||
облачной платформы DECORT в режиме <code>authenticator: oauth2</code>.
|
|
||||||
Данный параметр является обязательным для указанного режима. Если
|
|
||||||
параметр не задан в playbook, модуль будет использовать значение
|
|
||||||
переменной окружения <code>DECORT_APP_ID</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
app_secret
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Секретный ключ приложения, который используется для подключения к
|
|
||||||
контроллеру облачной платформы DECORT в режиме
|
|
||||||
<code>authenticator: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Так как он содержит секретную
|
|
||||||
информацию, то его не рекомендуется задавать непосредственно в
|
|
||||||
playbook. Если параметр не задан в playbook, то модуль будет
|
|
||||||
использовать значение переменной окружения
|
|
||||||
<code>DECORT_APP_SECRET</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
authenticator
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br/><code>oauth2</code>
|
|
||||||
<br/><code>jwt</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим аутентификации при подключении к контроллеру облачной платформы
|
|
||||||
DECORT. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
backends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
algorithm
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>leastconn</code>
|
|
||||||
<br><code>roundrobin</code>
|
|
||||||
<br><code>static-rr</code>
|
|
||||||
<br>Default: <code>roundrobin</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Используемый алгоритм.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
<a name="backend_default_settings">
|
|
||||||
default_settings
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Cловарь, описывающий параметры по умолчанию для backend-серверов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
downinter
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>1000</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Интервал в миллисекундах между двумя последовательными проверками
|
|
||||||
доступности сервера, который считается недоступным.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
fall
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>2</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество последовательных неудачных проверок доступности, после
|
|
||||||
которых сервер, ранее считавшийся доступным, начинает считаться
|
|
||||||
недоступным и временно исключается из схемы балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
inter
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>5000</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Интервал в миллисекундах между двумя последовательными проверками
|
|
||||||
доступности сервера, который считается доступным.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
maxconn
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>250</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Лимит одновременных подключений к серверу. При достижении этого лимита
|
|
||||||
сервер временно исключается из схемы балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
maxqueue
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>256</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Лимит соединений, ожидающих в очереди. Когда этот предел будет
|
|
||||||
достигнут, все последующие подключения будут перенаправлены
|
|
||||||
на другие серверы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
rise
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>2</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество проверок, которые должен пройти сервер, считавшийся
|
|
||||||
недоступным, чтобы начать считаться доступным и снова быть
|
|
||||||
включенным в схему балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
slowstart
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>60000</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Интервал в миллисекундах с момента когда сервер начинает считаться
|
|
||||||
доступным, по истечении которого количество фактически разрешенных
|
|
||||||
подключений к этому серверу будет возвращено до 100% от
|
|
||||||
установленного лимита.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
weight
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>100</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Вес сервера для использования в алгоритмах балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название backend. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
controller_url
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL контроллера, соответствующего экземпляру облачной платформы
|
|
||||||
DECORT. Данный параметр является обязательным.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
ext_net_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор внешней сети.
|
|
||||||
<br>Может быть не задан, если задан <code>vins_id</code> -
|
|
||||||
в таком случае балансировщик будет подключён только к
|
|
||||||
внутренней сети.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
<a name="frontends">
|
|
||||||
frontends
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации frontend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
backend
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название используемого backend. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
bindings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации binding.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
address
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
IP-адрес.
|
|
||||||
<br>Если не задан, то будет использоваться основной IP-адрес
|
|
||||||
балансировщика во внешней сети или, если подключена только
|
|
||||||
внутренняя сеть, основной IP-адрес балансировщика во внутренней сети.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
port
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>1</code>-<code>65535</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Порт. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
ha_lb
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
bool
|
|
||||||
<br>Default: <code>false</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Использовать схему высокой доступности для создаваемого балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
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="3">
|
|
||||||
lb_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор балансировщика нагрузки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
lb_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя балансировщика. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
oauth2_url
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL авторизационного сервера, работающего по протоколу Oauth2,
|
|
||||||
который должен использоваться в режиме
|
|
||||||
<code>authenticator: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Если параметр не задан в
|
|
||||||
playbook, модуль будет использовать значение переменной
|
|
||||||
окружения <code>DECORT_OAUTH2_URL</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
permanently
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
<br>Default: <code>false</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Если выполняется удаление, то выполнить безвозвратное удаление
|
|
||||||
(минуя корзину).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
rg_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор ресурсной группы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
rg_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя ресурсной группы.
|
|
||||||
<br> В комбинации с заданным аккаунтов может быть альтернативой
|
|
||||||
параметру <code>rg_id</code>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
servers
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend-серверов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
address
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
IP-адрес. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
backends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих параметры backend-сервера для разных
|
|
||||||
конфигураций backend.
|
|
||||||
<br>Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
check
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>enabled</code>
|
|
||||||
<br><code>disabled</code>
|
|
||||||
<br>Default: <code>enabled</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Проверка доступности сервера.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название конфигурации backend. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
port
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>1</code>-<code>65535</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Порт. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
server_settings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Словарь, описывающий параметры backend-сервера.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словаря
|
|
||||||
<a href=#backend_default_settings>
|
|
||||||
default_settings
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
state
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>present</code>
|
|
||||||
<br><code>absent</code>
|
|
||||||
<br><code>enabled</code>
|
|
||||||
<br><code>disabled</code>
|
|
||||||
<br><code>restart</code>
|
|
||||||
<br>Default: <code>present</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевое состояние балансировщика нагрузки.
|
|
||||||
<br>Выполнение с <code>state=restart</code> позволяет выполнить
|
|
||||||
перезапуск балансировщика, соответственно, всегда возвращает
|
|
||||||
<code>changed: true</code>.
|
|
||||||
<br>Значения <code>present</code> и <code>enabled</code> равнозначны
|
|
||||||
и соответствуют включённому и запущенному балансировщику.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
verify_ssl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
<br>Default: <code>true</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Позволяет отключить проверку SSL сертификатов при выполнении API
|
|
||||||
вызовов в адрес контроллера облачной инфраструктуры, например,
|
|
||||||
при работе с изолированной облачной инфраструктурой, использующей
|
|
||||||
самоподписанные сертификаты. Применяйте данный параметр с
|
|
||||||
осторожностью, предпочтительно в защищенных средах.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
vins_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор внутренней сети.
|
|
||||||
<br>Может быть не задан, если задан <code>ext_net_id</code> -
|
|
||||||
в таком случае балансировщик будет подключён только к
|
|
||||||
внешней сети.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
vins_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя внутренней сети.
|
|
||||||
<br> В комбинации с заданной РГ может быть альтернативой для
|
|
||||||
параметра <code>vins_id</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_lb
|
|
||||||
|
|
||||||
Модуль **decort_lb** возвращает информацию о балансировщике в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">
|
|
||||||
Ключ
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Тип
|
|
||||||
<br>данных
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Описание
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
backends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
algorithm
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Используемый алгоритм.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название конфигурации backend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
serverDefaultSettings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Cловарь, описывающий параметры по умолчанию для backend-серверов.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словаря
|
|
||||||
<a href=#backend_default_settings>
|
|
||||||
default_settings
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
servers
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend-серверов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
address
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
IP-адрес.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
check
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Проверка доступности сервера.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
port
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Порт.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
serverSettings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Cловарь, описывающий параметры backend-сервера.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словаря
|
|
||||||
<a href=#backend_default_settings>
|
|
||||||
default_settings
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
frontends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации frontend.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словарей списка
|
|
||||||
<a href=#frontends>
|
|
||||||
frontends
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
gid
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор физического кластера (Grid ID).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
rg_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор ресурсной группы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
state
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Статус балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
# Модуль decort_osimage
|
|
||||||
## Обзор модуля decort_osimage
|
|
||||||
|
|
||||||
Модуль decort_osimage предназначен для выполнения следующих действий над образами, созданными в облачной платформе DECORT:
|
|
||||||
- шаблонные образы:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- изменить имя
|
|
||||||
- удалить
|
|
||||||
- виртуальные образы
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- изменить
|
|
||||||
- имя
|
|
||||||
- целевой образ
|
|
||||||
|
|
||||||
## Параметры модуля decort_osimage
|
|
||||||
Ниже приведен полный список параметров для модуля decort_osimage.
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_Id | (int) | Уникальный целочисленный идентификатор аккаунта. Используется для поиска образов, а тажке для их создания. |
|
|
||||||
| account_name | (string) | Имя аккаунта. Используется для получения уникального целочисленного идентификатора аккаунта. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| architecture | (string)<br>Default: `X86_64` | Архитектура микропроцессора, для которой предназначен образ. Используется при создании образа.|
|
|
||||||
| authenticator | (str)<br>Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| boottype | (string)<br>Default: `uefi` | Тип загрузки образа. Используется при создании образа.|
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) образ. Данный параметр является обязательным. |
|
|
||||||
| drivers | (string)<br>Default: `KVM_X86` | Тип виртуальных машин, подходящих для образа. Используется при создании образа.|
|
|
||||||
| hotresize | (bool)<br>Default: `false` | Поддерживает ли образ "горячее" изменение размера. По умолчанию установлено `false`. Используется при создании образа операционной системы. |
|
|
||||||
| image_id | (int) | Идентификатор шаблонного образа.
|
|
||||||
| image_name | (str) | Имя шаблонного образа.
|
|
||||||
| image_password | (string) | Опциональный пароль для образа. Используется при создании образа.|
|
|
||||||
| image_username | (string) | Опциональное имя пользователя для образа. Используется при создании образа. |
|
|
||||||
| imagetype | (string)<br>Default: `linux` | Тип образа. Используется при создании образа.|
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| passwordDL | (string) | Пароль для скачивания по URL-адресу. Используется при создании образа. |
|
|
||||||
| pool | (str) | Имя пула СХД. Используется для поиска существующего образа.
|
|
||||||
| poolName | (string) | Имя пула СХД. Используется при создании образа. |
|
|
||||||
| sepId | (integer) | Уникальный целочисленный идентификатор СХД. Используется при создании образа. |
|
|
||||||
| sep_id | (int) | Идентификатор СХД. Используется для поиска существующего образа.
|
|
||||||
| state | (string)<br>Значения:<br>`present`<br>`absent`<br>Default: `present` | Целевое состояние образа. `present` - существует, `absent` - удалён. |
|
|
||||||
| url | (string) | URL-адрес, с которого будет загружен образ. Используется при создании образа.|
|
|
||||||
| usernameDL | (string) | Имя пользователя для загрузки образа с заданного URL-адреса. Используется при создании образа. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| virt_id | (integer) | Уникальный целочисленный идентификатор виртуального образа. Может использоваться для получения информации о виртуальном образе, а также для привязки к нему другого образа.|
|
|
||||||
| virt_name | (string) | Имя виртуального образа. Используется для получения `virt_id`, а в последствии информации о виртуальном образе, а также для создания виртуального образа и привязки к нему другого образа.|
|
|
||||||
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_osimage
|
|
||||||
|
|
||||||
Модуль decort_osimage возвращает информацию об образе в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| accountId | int | Идентификатор аккаунта.
|
|
||||||
| id | int | Уникальный целочисленный идентификатор данного образа. |
|
|
||||||
| linkto | int | Уникальный целочисленный идентификатор образа, который привязан к данному виртуальному. |
|
|
||||||
| name | string | Имя образа. |
|
|
||||||
| pool | string | Имя пула на системе хранения данных, в котором находится данный образ.|
|
|
||||||
| sep_id | int | Идентификатор системы хранения данных, на которой хранится данный образ. |
|
|
||||||
| size | int | Размер образа в ГБ. |
|
|
||||||
| state | string | Текущий статус образа. |
|
|
||||||
| type | string | Тип образа. |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_osimage
|
|
||||||
|
|
||||||
|
|
||||||
Пример создания шаблонного образа с операционной системой Alpine Linux.
|
|
||||||
```
|
|
||||||
- name: Create template image
|
|
||||||
decort_osimage:
|
|
||||||
account_Id: 12345
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1
|
|
||||||
url: https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/cloud/nocloud_alpine-3.19.1-x86_64-uefi-cloudinit-r0.qcow2
|
|
||||||
verify_ssl: false
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
|
|
||||||
Пример получения информации о существующем шаблонном образе по его имени.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Get template image
|
|
||||||
decort_osimage:
|
|
||||||
account_Id: 12345
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1
|
|
||||||
verify_ssl: false
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
|
|
||||||
Пример создания виртуального образа. Также в случае, если виртуальный образ уже существует, но к нему привязан другой шаблонный образ, он привяжет к себе указанный в примере шаблонный образ.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Create virtual image
|
|
||||||
decort_osimage:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1
|
|
||||||
virt_name: alpine_last
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
Обратите внимание, что в данном примере можно использовать как `image_name`, так и `image_id`. Также можно использовать либо `virt_name`, либо `virt_id`.
|
|
||||||
|
|
||||||
Пример переименования образа.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Rename template image
|
|
||||||
decort_osimage:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1_new_name
|
|
||||||
image_id: 54321
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
# Модуль decort_pfw
|
|
||||||
## Обзор модуля decort_pfw
|
|
||||||
|
|
||||||
Модуль **decort_pfw** предназначен для настройки правил переадресации портов (port forwarding, destination NAT) на виртуальном маршрутизаторе заданной внутренней сети для заданной виртуальной машины.
|
|
||||||
Модуль поддерживает выполнение следующих действий над правилами:
|
|
||||||
- добавить
|
|
||||||
- получить информацию
|
|
||||||
- удалить
|
|
||||||
|
|
||||||
## Параметры модуля decort_pfw
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля **decort_pfw**. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_pfw`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| compute_id | (int) | Идентификатор виртуальной машины. IP-адрес, который данная ВМ имеет во внутренней сети, заданной параметром `vins_id`, будет использоваться как внутренний IP-адрес в правилах. Обязательный параметр. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| rules | (list) | Список словарей, описывающих правила переадресации портов для заданной ВМ (параметр `compute_id`) на виртуальном маршрутизаторе заданной внутренней сети (параметр `vins_id`).<br>Ключи словаря:<br>• `local_port` (int) (обязательный) - внутренний порт; значения: от `1` до `65535`<br>• `proto` (str) (обязательный) - протокол; значения: `tcp` или `udp`<br>• `public_port_end` (int) (необязательный) - верхняя граница диапазона внешних портов; значения: от значения ключа `public_port_start` до `65535`;<br>• `public_port_start` (int) (обязательный) - нижняя граница диапазона внешних портов; значения: от `1` до `65535` |
|
|
||||||
| state | (str)<br>Значения:<br/>`present`<br/>`absent`<br>Default: `present` | Целевое состояние правил.<br>Если `state=absent`, то, независимо от содержания параметра `rules`, будут удалены все правила для заданной ВМ (параметр `compute_id`) на виртуальном маршрутизаторе заданной внутренней сети (параметр `vins_id`). |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| vins_id | (int) | Идентификатор внутренней сети, на виртуальном маршрутизаторе которой настраиваются правила переадресации портов. Заданная ВМ (параметр `compute_id`) должна быть подключена к этой сети. Обязательный параметр. |
|
|
||||||
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_pfw
|
|
||||||
|
|
||||||
Модуль **decort_pfw** возвращает информацию о правилах переадресации портов и сопутствующую информацию в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| compute_id | int | Идентификатор ВМ. |
|
|
||||||
| public_ip | string | IP-адрес во внешней сети, настроенный на виртуальном маршрутизаторе внутренней сети. |
|
|
||||||
| rules | list | Список словарей, описывающих правила переадресации портов.<br>Ключи словаря:<br>• `id` (int) - идентификатор правила<br>• `localIp` (str) - IP-адрес ВМ<br>• `localPort` (int) - внутренний порт<br>• `protocol` (str) - протокол<br>• `publicPortEnd` (int) - верхняя граница диапазона внешних портов<br>• `publicPortStart` (int) - нижняя граница диапазона внешних портов<br>• `vmId` (int) - идентификатор ВМ<br>• `vmName` (str) - имя ВМ |
|
|
||||||
| state | string | Статус правил. Значения: `PRESENT` или `ABSENT`. |
|
|
||||||
| vins_id | int | Идентификатор внутренней сети. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_pfw
|
|
||||||
|
|
||||||
В данном примере для существующей ВМ (параметр `compute_id`), подключённой к внутренней сети (параметр `vins_id`), настраиваются два правила переадресации портов:
|
|
||||||
|
|
||||||
- Правило для одного порта: внешний порт `30022` на внутренний порт `22` по протоколу `tcp`.
|
|
||||||
- Правило для диапазона портов: внешние порты с `30080` по `30085` на внутренние порты с `30080` по протоколу `udp`.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Add port forwarding rules
|
|
||||||
decort_pfw:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
compute_id: "{{ my_vm.facts.id }}"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
rules:
|
|
||||||
- local_port: 22
|
|
||||||
proto: tcp
|
|
||||||
public_port_start: 30022
|
|
||||||
- local_port: 30080
|
|
||||||
proto: udp
|
|
||||||
public_port_end: 30085
|
|
||||||
public_port_start: 30080
|
|
||||||
vins_id: "{{ my_vins.facts.id }}"
|
|
||||||
register: my_pfw_rules
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере результат выполнения модуля **decort_pfw** записывается в переменную `my_pfw_rules`. Для доступа к списку правил используйте следующую конструкцию:
|
|
||||||
|
|
||||||
```
|
|
||||||
"{{ my_pfw_rules.facts.rules }}"
|
|
||||||
```
|
|
||||||
@@ -1,200 +0,0 @@
|
|||||||
# Модуль decort_rg
|
|
||||||
|
|
||||||
## Обзор модуля decort_rg
|
|
||||||
|
|
||||||
Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет:
|
|
||||||
|
|
||||||
- создавать ресурсные группы
|
|
||||||
- удалять ресурсные группы (в корзину или безвозвратно)
|
|
||||||
- восстанавливать ресурсные группы из корзины
|
|
||||||
- включать/отключать ресурсные группы
|
|
||||||
- запрашивать информацию об уже существующих ресурсных группах
|
|
||||||
- изменять ресурсные группы:
|
|
||||||
- переименовывать
|
|
||||||
- настраивать квоты
|
|
||||||
- задавать стандартную сеть
|
|
||||||
- настраивать права доступа для пользователей
|
|
||||||
|
|
||||||
## Параметры модуля decort_rg
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_rg. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: `ansible-doc -t module decort_rg`
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
|----------|--------------------------|----------|
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то account_name игнорируется. |
|
|
||||||
| account_name | (string) | Имя аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| access | (dict) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе. |
|
|
||||||
| annotation | (string) | Текстовое описание ресурсной группы. Данный параметр является опциональным и учитывается только при создании ресурсной группы, а при всех прочих операциях игнорируется. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения DECORT_APP_SECRET. |
|
|
||||||
| authenticator | Значения:<br>`oauth2`<br>`jwt`| Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным.|
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данная ресурсная группа. Данный параметр является обязательным. |
|
|
||||||
| def_netType | (string) <br>Значения:<br>`PRIVATE`<br>`PUBLIC`<br>`NONE`<br>Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. |
|
|
||||||
| def_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. |
|
|
||||||
| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети. Используется при создании РГ для подключения внешней сети к внутренней сети, которая будет создана и задана как сеть по умолчанию для РГ. |
|
|
||||||
| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. |
|
|
||||||
| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. |
|
|
||||||
| ipcidr | (string) | IP-адрес внутренней сети. Используется при создании ресурсной группы, чтобы задать IP-адрес сети для создаваемой внутренней сети, которая создастся вместе с ресурсной группой. Используется при параметре `def_netType` в значении `PRIVATE`. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`<br>Данный параметр является обязательным для указанного режима.<br>Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.<br>Если этот параметр не определен в _playbook_, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| rename | (string) | Новое имя ресурсной группы. Используется при переименовании ресурсной группы. |
|
|
||||||
| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. |
|
|
||||||
| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. |
|
|
||||||
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` |
|
|
||||||
| state | Значения:<br>`present`<br>`absent`<br>`enabled`<br>`disabled`<br>Default: `present` | Целевое состояние ресурсной группы. |
|
|
||||||
| permanently | (bool)<br>Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_rg
|
|
||||||
|
|
||||||
Модуль decort_rg возвращает информацию о ресурсной группе в виде словаря facts со следующими ключами:
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
|------|------------|----------|
|
|
||||||
| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная ресурсная группа. |
|
|
||||||
| gid | int | Идентификатор физического кластера (Grid ID), на базе которого развёрнута ресурсная группа. |
|
|
||||||
| id | int | Уникальный целочисленный идентификатор ресурсной группы. |
|
|
||||||
| name | string | Имя ресурсной группы. Обратите внимание, что это имя уникально только в рамках аккаунта, которому принадлежит данная ресурсная группа. |
|
|
||||||
| state | string | Текущее состояние ресурсной группы. |
|
|
||||||
| quota | dict | Текущие квоты ресурсной группы. |
|
|
||||||
| resTypes | list | Список типов ресурсов, разрешенных к созданию в данной ресурсной группе. |
|
|
||||||
| defNetId | int | Уникальный целочисленный идентификатор сети по умолчанию в данной ресурсной группе. |
|
|
||||||
| defNetType | string | Тип сети по умолчанию в данной ресурсной группе. |
|
|
||||||
| ViNS | list | Список идентификаторов внутренних сетей ресурсной группы. |
|
|
||||||
| computes | list | Список идентификаторов виртуальных машин ресурсной группы. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_rg
|
|
||||||
|
|
||||||
В данном примере показано, как создать ресурсную группу по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как создать ресурсную группу по имени MyRG в аккаунте MyAccount, также задать квоты и выдать права на чтение пользователю MyUser.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
access:
|
|
||||||
action: "grant"
|
|
||||||
user: "MyUser"
|
|
||||||
right: "R"
|
|
||||||
quotas:
|
|
||||||
cpu: 16
|
|
||||||
ram: 16384
|
|
||||||
disk: 100
|
|
||||||
ext_ips: 20
|
|
||||||
net_transfer: 1000
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как выдать доступ на чтение и запись пользователю MyUser в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
access:
|
|
||||||
action: "grant"
|
|
||||||
user: "MyUser"
|
|
||||||
right: "RCX"
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как сменить квоту в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
quotas:
|
|
||||||
cpu: 16
|
|
||||||
ram: 16384
|
|
||||||
disk: 100
|
|
||||||
ext_ips: 20
|
|
||||||
net_transfer: 1000
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как изменить сеть по умолчанию в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
def_netType: "PRIVATE"
|
|
||||||
def_netId: 99
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как переименовать ресурсную группу по имени MyRG на новое имя "NewRg" в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
rename: "NewRg"
|
|
||||||
rg_id: 27
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере результат работы модуля decort_rg записывается в переменную my_rg.
|
|
||||||
|
|
||||||
Модули DECORT, которым для работы требуется ресурсная группа, в качестве одного из параметров, как правило, принимают идентификатор `rg_id`. Так, например, используя модуль `decort_kvmvm` для создания виртуального сервера необходимо указать ресурсную группу, к которой будет принадлежать этот виртуальный сервер. Сделать это можно следующим образом:
|
|
||||||
|
|
||||||
```
|
|
||||||
<прочие детали опущены>
|
|
||||||
rg_id: "{{ my_rg.facts.id }}"
|
|
||||||
```
|
|
||||||
@@ -1,120 +0,0 @@
|
|||||||
# Модуль decort_vins
|
|
||||||
## Обзор модуля decort_vins
|
|
||||||
|
|
||||||
Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия:
|
|
||||||
- создавать
|
|
||||||
- на уровне ресурсной группы (если РГ задана)
|
|
||||||
- на уровне аккаунта (если РГ не задана)
|
|
||||||
- удалять (безвозвратно)
|
|
||||||
- восстанавливать из корзины
|
|
||||||
- запрашивать информацию
|
|
||||||
- включать/отключать
|
|
||||||
- соединять (необходимы права администратора)
|
|
||||||
- изменять:
|
|
||||||
- включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора)
|
|
||||||
- включать/отключать режим **Custom Config** для виртуального маршрутизатора (необходимы права администратора)
|
|
||||||
- сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора)
|
|
||||||
|
|
||||||
## Параметры модуля decort_vins
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_vins. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_vins`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная внутреняя сеть. При идентификации внутренней сети по имени (см. параметр `vins_name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
| account_name | (string) | Имя аккаунта, которому принадлежит данная внутренняя сеть. При идентификации внутренней сети по имени (см. параметр `vins_name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр account_id). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
|annotation | (string)| Текстовое описание внутренней сети. Данный аргумент является опциональным и учитывается только при создании внутренней сети, а при всех прочих операциях игнорируется.|
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данный внутренняя сеть. Данный параметр является обязательным.
|
|
||||||
| ext_net_id | (int) | Идентификатор внешней сети, к которой должна быть подключена внутренняя сеть. Если задать значение `0`, то платформой будет выбрана внешняя сеть по умолчанию. |
|
|
||||||
| ext_ip_addr | (string) | IP-адрес внешней сети, заданной через параметр `ext_net_id`. Если не задан, то IP-адрес для внешней сети будет выбран платформой автоматически.
|
|
||||||
| ipcidr | (string) | Адрес сети для создаваемой внутренней сети. Если этот параметр не задан, то платформа назначит адрес автоматически. Обратите внимание, что внутренние сети, принадлежащие одному и тому же аккаунту, не могут иметь пересекающихся сетей.|
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу _Oauth2_, который должен использоваться в режиме `authenticator: oauth2`.<br/>Данный параметр является обязательным для указанного режима.<br/>Если параметр не задан в _playbook_, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
|rg_id | (int) | Идентификатор ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_id` и `rg_name`, то `rg_name` игнорируется.|
|
|
||||||
| rg_name | (string) | Имя ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_name` и `rg_id`, то `rg_name` игнорируется.|
|
|
||||||
| state | (string)<br>Значения:<br/>`present`<br/>`absent`<br/>`enabled`<br/>`disabled`<br/>Default: `present` | Целевое состояние внутренней сети. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| vins_id | (int) | Идентификатор внутренней сети. Соответствующая внутренная сеть должна существовать. Таким образом, с помощью `vins_id` нельзя создать новую внутреннюю сеть, а только управлять уже имеющимися. Если задан данный параметр, то параметры `vins_name`, `account_name`, `account_id`, `rg_name` и `rg_id` игнорируются.|
|
|
||||||
| vins_name| (string) | Имя внутренней сети. Для идентификации внутренней сети требуется либо `vins_name` и информация об аккаунте/ресурсной группе, которой принадлежит сеть, либо `vins_id`. Обратите внимание, что это имя уникально только в рамках ресурсной группы или аккаунта, на уровне которого существует данная внутренняя сеть.|
|
|
||||||
| mgmtaddr | (list) | Список существующих IP-адресов виртуального маршрутизатора во внутренней сети, через которые необходимо разрешить SSH-доступ к виртуальному маршрутизатору.
|
|
||||||
| custom_config | (bool)<br>Default: `false` | Включить/отключить режим пользовательской конфигурации виртуального маршрутизатора. |
|
|
||||||
| config_save | (bool)<br>Default: `false` | Выполнить сохранение текущей конфигурации виртуального маршрутизатора для возможности последующего отката к ней. |
|
|
||||||
| connect_to | (list) | Список словарей, содержащих информацию о внутренних сетях, к которым необходимо подключить данную. См. примеры.
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_vins
|
|
||||||
|
|
||||||
Модуль decort_vins возвращает информацию о внутренней сети в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит внутренняя сеть. |
|
|
||||||
| custom_net_addr | (list) | Список IP-адресов пользовательских интерфейсов виртуального маршрутизатора
|
|
||||||
| ext_ip_addr | (string) | IP-адрес интерфейса, которым виртуальный маршрутизатор подключён к внешней сети. |
|
|
||||||
| ext_net_id | (int) | Идентификатор внешней сети, к которой подключена внутренняя сеть. `-1` означает, что внутренняя сеть не подключёна к внешней сети. |
|
|
||||||
| gid | (int) | Идентификатор физического кластера (Grid ID), на базе которого развёрнуты ресурсы данной внутренней сети. |
|
|
||||||
| id | (int) | Уникальный целочисленный идентификатор внутренней сети. |
|
|
||||||
| name | (string) | Имя внутренней сети. |
|
|
||||||
| int_net_addr | (string) | Адрес внутренней сети. |
|
|
||||||
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы, которой принадлежит данная внутренняя сеть. Если данная внутренняя сеть создана на уровне аккаунта, то `rg_id=0`. |
|
|
||||||
| ssh_ipaddr | (list) | Список IP-адресов виртуального маршрутизатора во внутренней сети, на которых включён SSH-доступ к нему.
|
|
||||||
| ssh_password | (str) | Пароль для SSH-доступа к виртуальному маршрутизатору.
|
|
||||||
| ssh_port | (int) | Номер порта для SSH-подключения к виртуальному маршрутизатору.
|
|
||||||
| state | (string) | Состояние внутренней сети. |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_vins
|
|
||||||
|
|
||||||
В данном примере создаётся внутренняя сеть с именем "MyVins01" (vins_name: "MyVins01").
|
|
||||||
|
|
||||||
Внутренняя сеть создаётся на уровне ресурсной группы "MyRg01" (rg_name: "MyRg01"), принадлежащей аккаунту "MyMainAccount" (account_name: "MyMainAccount"). Внутренняя сеть будет иметь подключение во внешнюю сеть по умолчанию (ext_net_id: 0).
|
|
||||||
```
|
|
||||||
- name: Manage ViNS on resource group level
|
|
||||||
decort_vins:
|
|
||||||
account_name: "MyMainAccount"
|
|
||||||
rg_name: "MyRg01"
|
|
||||||
authenticator: jwt
|
|
||||||
jwt: "{{ my_jwt.jwt }}"
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
ext_net_id: 0
|
|
||||||
vins_name: "MyVins01"
|
|
||||||
register: my_vins
|
|
||||||
```
|
|
||||||
|
|
||||||
Здесь результат исполнения модуля decort_vins записывается в переменную my_vins, которую можно дальше использовать в Ansible playbooks. Ниже показано, как получить и использовать идентификатор внутренней сети для подключения к нему виртуального сервера.
|
|
||||||
```
|
|
||||||
- name: Manage virtual machine
|
|
||||||
decort_kvmvm:
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
networks:
|
|
||||||
- type: VINS
|
|
||||||
id: "{{ my_vins.facts.id }}"
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере идёт создание внутренней сети, а потом её привязка к внутренним сетям с id 864 и 196.
|
|
||||||
```
|
|
||||||
- name: Manage ViNS on resource group level
|
|
||||||
decort_vins:
|
|
||||||
authenticator: jwt
|
|
||||||
jwt: "{{ my_jwt.jwt }}"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
vins_name: "ViNS_connected_by_decort_vins_module"
|
|
||||||
rg_id: 98
|
|
||||||
connect_to:
|
|
||||||
- id: 864
|
|
||||||
ipaddr: 192.168.5.66
|
|
||||||
netmask: 24
|
|
||||||
- id: 196
|
|
||||||
ipaddr: 192.168.9.133
|
|
||||||
netmask: 24
|
|
||||||
register: managed_vins
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
1. [Введение](./введение.md)
|
|
||||||
- [Введение](./введение.md#введение)
|
|
||||||
- [Системные требования](./введение.md#системные-требования)
|
|
||||||
- [Подготовка к работе](./введение.md#подготовка-к-работе)
|
|
||||||
- [Авторизация](./введение.md#авторизация)
|
|
||||||
- [Общие параметры модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации)
|
|
||||||
- [Пример авторизации с помощью app_id и app_secret](./введение.md#пример-авторизации-с-помощью-app_id-и-app_secret)
|
|
||||||
- [Пример авторизации с помощью JSON Web Token](./введение.md#пример-авторизации-с-помощью-json-web-token)
|
|
||||||
1. Ansible модули DECORT:
|
|
||||||
- [Модуль decort_kvmvm](./модуль-decort_kvmvm.md) - управление виртуальными машинами
|
|
||||||
- [Модуль decort_osimage](./модуль-decort_osimage.md) - управление образами
|
|
||||||
- [Модуль decort_disk](./модуль-decort_disk.md) - управление дисками
|
|
||||||
- [Модуль decort_pfw](./модуль-decort_pfw.md) - управление правилами переадресации портов
|
|
||||||
- [Модуль decort_rg](./модуль-decort_rg.md) - управление ресурсными группами
|
|
||||||
- [Модуль decort_vins](./модуль-decort_vins.md) - управление внутренними сетями
|
|
||||||
- [Модуль decort_jwt](./модуль-decort_jwt.md) - получение авторизационного токена
|
|
||||||
- [Модуль decort_bservice](./модуль-decort_bservice.md) - управление базовыми службами
|
|
||||||
- [Модуль decort_group](./модуль-decort_group.md)- управление группами базовой службы
|
|
||||||
- [Модуль decort_k8s](./модуль-decort_k8s.md) - управление кластерами Kubernetes
|
|
||||||
- [Модуль decort_lb](./модуль-decort_lb.md) - управление балансировщиками нагрузки
|
|
||||||
- [Модуль decort_account_info](./модуль-decort_account_info.md) - получение информации об аккаунте
|
|
||||||
- [Модуль decort_account](./модуль-decort_account.md) - управление аккаунтами
|
|
||||||
@@ -1,182 +0,0 @@
|
|||||||
# Модули Ansible для управления облачными ресурсами в платформе DECORT
|
|
||||||
## Введение
|
|
||||||
|
|
||||||
Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology).
|
|
||||||
|
|
||||||
По каждому модулю есть своя документация, в которой вы можете найти список доступных действий, подробную информацию о входных параметрах и возвращаемых данных, а также примеры использования.
|
|
||||||
|
|
||||||
## Системные требования
|
|
||||||
Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT.
|
|
||||||
Системные требования для работы модуля:
|
|
||||||
- Ansible 2.16.5 or higher
|
|
||||||
- Python 3.10.12 or higher
|
|
||||||
- PyJWT 1.7.1 Python module or higher
|
|
||||||
- requests Python module
|
|
||||||
- netaddr Python module
|
|
||||||
- DECORT cloud platform version 4.0.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>
|
|
||||||
Идентификатор приложения, использующийся для подключения к контроллеру
|
|
||||||
облачной платформы DECORT в режиме <code>authenticator: oauth2</code>.
|
|
||||||
Данный параметр является обязательным для указанного режима. Если
|
|
||||||
параметр не задан в playbook, модуль будет использовать значение
|
|
||||||
переменной окружения <code>DECORT_APP_ID</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
app_secret
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Секретный ключ приложения, который используется для подключения к
|
|
||||||
контроллеру облачной платформы DECORT в режиме
|
|
||||||
<code>authenticator: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Так как он содержит секретную
|
|
||||||
информацию, то его не рекомендуется задавать непосредственно в
|
|
||||||
playbook. Если параметр не задан в playbook, то модуль будет
|
|
||||||
использовать значение переменной окружения
|
|
||||||
<code>DECORT_APP_SECRET</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
authenticator
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br/><code>oauth2</code>
|
|
||||||
<br/><code>jwt</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим аутентификации при подключении к контроллеру облачной платформы
|
|
||||||
DECORT. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
controller_url
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL контроллера, соответствующего экземпляру облачной платформы
|
|
||||||
DECORT. Данный параметр является обязательным.
|
|
||||||
</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: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Если параметр не задан в
|
|
||||||
playbook, модуль будет использовать значение переменной
|
|
||||||
окружения <code>DECORT_OAUTH2_URL</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
verify_ssl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
<br>Default: <code>true</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Позволяет отключить проверку SSL сертификатов при выполнении API
|
|
||||||
вызовов в адрес контроллера облачной инфраструктуры, например,
|
|
||||||
при работе с изолированной облачной инфраструктурой, использующей
|
|
||||||
самоподписанные сертификаты. Применяйте данный параметр с
|
|
||||||
осторожностью, предпочтительно в защищенных средах.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### Пример авторизации с помощью app_id и app_secret
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Auth with app_id and app_secret
|
|
||||||
decort_module_name:
|
|
||||||
# Специфичные для модулей параметры упущены
|
|
||||||
# Пример демонстрирует только параметры для авторизации
|
|
||||||
app_id: "{{ app_id }}"
|
|
||||||
app_secret: "{{ app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
oauth2_url: "{{ oauth2_url }}"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Пример авторизации с помощью JSON Web Token
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Auth with JWT
|
|
||||||
decort_module_name:
|
|
||||||
# Специфичные для модулей параметры упущены
|
|
||||||
# Пример демонстрирует только параметры для авторизации
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
jwt: "{{ jwt }}"
|
|
||||||
```
|
|
||||||
@@ -1,951 +0,0 @@
|
|||||||
# Модуль decort_account
|
|
||||||
## Обзор модуля
|
|
||||||
|
|
||||||
Модуль **decort_account** предназначен для выполнения следующих действий над аккаунтом:
|
|
||||||
- **удалить в корзину** (см. [параметр state](#state) и [примеры](#в-корзину))
|
|
||||||
- **удалить безвозвратно** (см. [параметр state](#state) и [примеры](#безвозвратно))
|
|
||||||
- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины))
|
|
||||||
- **выключить/включить** (см. [параметр state](#state) и [примеры](#выключитьвключить))
|
|
||||||
- **изменить права доступа** (см. [параметр acl](#acl) и [примеры](#изменить-права-доступа))
|
|
||||||
- **изменить имя** (см. [параметр name](#name) и [примеры](#переименовать))
|
|
||||||
- **изменить квоты** (см. [параметр quotas](#quotas) и [примеры](#изменить-квоты))
|
|
||||||
- **выключить/включить отправку уведомлений о предоставлении доступа к ресурсам** (см. [параметр access_emails](#access_emails) и [примеры](#выключитьвключить-отправку-уведомлений-о-предоставлении-доступа-к-ресурсам))
|
|
||||||
|
|
||||||
## Параметры модуля
|
|
||||||
Ниже приведен список параметров для модуля **decort_account** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)):
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="6">Параметр</th>
|
|
||||||
<th>Тип</th>
|
|
||||||
<th>Описание</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="access_emails">
|
|
||||||
access_emails
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Выключение/включение отправки пользователям на эл. почту уведомлений о предоставлении доступа к ресурсам.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="acl">
|
|
||||||
acl
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевые права доступа.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
mode
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>match</code>
|
|
||||||
<br><code>revoke</code>
|
|
||||||
<br><code>update</code>
|
|
||||||
<br>Default: <code>update</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим изменения прав доступа для указанных пользователей.
|
|
||||||
<br><code>match</code> - привести в соответствие для указанных
|
|
||||||
пользователей, удалить предоставленные для других.
|
|
||||||
<br><code>revoke</code> - отозвать для указанных пользователей,
|
|
||||||
если предоставлены.
|
|
||||||
<br><code>update</code> - привести в соответствие для указанных
|
|
||||||
пользователей, оставить без изменения предоставленные для
|
|
||||||
других.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
users
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих права доступа пользователей.
|
|
||||||
<br>Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="4">
|
|
||||||
rights
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>R</code>
|
|
||||||
<br><code>RCX</code>
|
|
||||||
<br><code>ARCXDU</code>
|
|
||||||
<br>Default: <code>R</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Права доступа.
|
|
||||||
<br>При <code>mode: revoke</code> не используется.
|
|
||||||
<br>При <code>mode: match</code> и <code>mode: update</code>
|
|
||||||
права <code>ARCXDU</code> считаются соответствующими
|
|
||||||
правам <code>CXDRAU</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="4">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор пользователя.
|
|
||||||
<br>Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор целевого аккаунта.
|
|
||||||
<br>Обязательный параметр, если не задан параметр
|
|
||||||
<code>name</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="name">
|
|
||||||
name
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя целевого аккаунта.
|
|
||||||
<br>Может быть альтернативой параметру <code>id</code>,
|
|
||||||
за исключением случая, когда необходимо получить
|
|
||||||
информацию о безвозвратно удалённом объекте.
|
|
||||||
<br>Если задан совместно с параметром <code>id</code>,
|
|
||||||
то используется для переименования (целевое имя).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="quotas">
|
|
||||||
quotas
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевые квоты.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
cpu
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество виртуальных процессоров.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
disks_size
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём дисков в ГБ.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
ext_traffic
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём трафика внешних сетей.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
gpu
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество графических процессоров.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
public_ip
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество внешних IP-адресов.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
ram
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём оперативной памяти в МБ.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="state">
|
|
||||||
state
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>absent</code>
|
|
||||||
<br><code>absent_permanently</code>
|
|
||||||
<br><code>confirmed</code>
|
|
||||||
<br><code>disabled</code>
|
|
||||||
<br><code>present</code>
|
|
||||||
<br>Default: <code>present</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевое состояние.
|
|
||||||
<br><code>absent</code> - удалён в корзину, безвозвратно удалён
|
|
||||||
или не существует. Если существует и не удалён, то будет удалён
|
|
||||||
в корзину.
|
|
||||||
<br><code>absent_permanently</code> - безвозвратно удалён или
|
|
||||||
не существует. Если существует и не удалён или удалён в корзину,
|
|
||||||
то будет безвозвратно удалён.
|
|
||||||
<br> При значениях <code>absent</code> и <code>absent_permanently</code>
|
|
||||||
использование других параметров модуля, вызывающих изменение объекта,
|
|
||||||
не допускается.
|
|
||||||
<br><code>confirmed</code> - включён. Если выключен, то будет включён.
|
|
||||||
Если удалён в корзину, то будет восстановлен из корзины.
|
|
||||||
<br><code>disabled</code> - выключен. Если включён, то будет выключен.
|
|
||||||
Если удалён в корзину, то будет восстановлен из корзины и выключен.
|
|
||||||
<br><code>present</code> - существует и не удалён. Если удалён в
|
|
||||||
корзину, то будет восстановлен из корзины.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Возвращаемые значения
|
|
||||||
|
|
||||||
Модуль **decort_account** возвращает информацию об аккаунте в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="6">
|
|
||||||
Ключ
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Тип
|
|
||||||
<br>данных
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Описание
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
acl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих доступы пользователей.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
canBeDeleted
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
bool
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Может ли быть удалён.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
explicit
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
bool
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Видимость аккаунта.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
right
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Права.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
status
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Статус.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
type
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Тип.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
userGroupId
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор пользователя или группы пользователей.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
company
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название компании.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
companyurl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL компании.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
computeFeatures
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список дополнительных возможностей гипервизора, доступных ВМ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
computes_amount
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество ВМ по состоянию.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
started
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество запущенных ВМ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
stopped
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество остановленных ВМ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
cpu_allocation_parameter
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим выделения ЦП.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
cpu_allocation_ratio
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Коэффициент для режима выделения ЦП.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
createdBy
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор пользователя, который создал.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
createdTime
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Unix-время создания.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
createdTime_readable
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Дата и время создания.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deactivationTime
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Unix-время выключения.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deactivationTime_readable
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Дата и время выключения.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deletedBy
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор пользователя, который удалил.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deletedTime
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Unix-время удаления.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deletedTime_readable
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Дата и время удаления.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
displayname
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Отображаемое имя.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
resourceLimits
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Квоты на ресурсы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_C
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество виртуальных процессоров.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_D
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём диска в ГБ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_DM
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём дисков в ГБ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_I
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество внешних IP-адресов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_M
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
float
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём оперативной памяти в МБ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_NP
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём трафика внешних сетей.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
gpu_units
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество графических процессоров.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
sendAccessEmails
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
bool
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Отправка пользователям на эл. почту уведомлений о предоставлении доступа.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
status
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Статус.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
uniqPools
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список доступных пулов СХД.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
updatedTime
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Unix-время обновления.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
updatedTime_readable
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Дата и время обновления.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
vins
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список идентификаторов внутренних сетей на уровне аккаунта.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
vinses_amount
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество внутренних сетей.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Примеры использования
|
|
||||||
|
|
||||||
### Удалить
|
|
||||||
|
|
||||||
#### В корзину
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Delete account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: absent
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Безвозвратно
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Delete account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: absent_permanently
|
|
||||||
```
|
|
||||||
|
|
||||||
### Восстановить из корзины
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Restore account from recycle bin
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: present
|
|
||||||
```
|
|
||||||
|
|
||||||
### Выключить/включить
|
|
||||||
|
|
||||||
#### Выключить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Disable account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: disabled
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Включить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Enable account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: confirmed
|
|
||||||
```
|
|
||||||
|
|
||||||
### Изменить права доступа
|
|
||||||
|
|
||||||
#### Отозвать
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Revoke user access rights
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
acl:
|
|
||||||
mode: revoke
|
|
||||||
users:
|
|
||||||
- id: "{{ user1_id }}"
|
|
||||||
- id: "{{ user2_id }}"
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Обновить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Update user access rights
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
acl:
|
|
||||||
mode: update
|
|
||||||
users:
|
|
||||||
- id: "{{ user1_id }}"
|
|
||||||
rights: R
|
|
||||||
- id: "{{ user2_id }}"
|
|
||||||
rights: RCX
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Привести в соответствие
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Match user access rights
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
acl:
|
|
||||||
mode: match
|
|
||||||
users:
|
|
||||||
- id: "{{ user1_id }}"
|
|
||||||
rights: ARCXDU
|
|
||||||
- id: "{{ user2_id }}"
|
|
||||||
rights: RCX
|
|
||||||
```
|
|
||||||
|
|
||||||
### Переименовать
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Rename account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
name: "{{ account_new_name }}"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Изменить квоты
|
|
||||||
|
|
||||||
#### На объём дисков
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Update account quota of disks size
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
quotas:
|
|
||||||
disks_size: 500
|
|
||||||
```
|
|
||||||
|
|
||||||
#### На количество внешних IP-адресов
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Update account quota of public IP amount
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
quotas:
|
|
||||||
public_ip: 10
|
|
||||||
```
|
|
||||||
|
|
||||||
### Выключить/включить отправку уведомлений о предоставлении доступа к ресурсам
|
|
||||||
|
|
||||||
#### Выключить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Disable sending access emails
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
access_emails: false
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Включить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Enable sending access emails
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
access_emails: true
|
|
||||||
```
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,92 +0,0 @@
|
|||||||
# Модуль decort_bservice
|
|
||||||
|
|
||||||
## Обзор модуля decort_bservice
|
|
||||||
|
|
||||||
Базовая служба (Basic Service) это несколько групп виртуальных серверов (compute), создаваемых и управляемых как единое целое.
|
|
||||||
|
|
||||||
Все compute(s) в группе имеют одни и те же характеристики (cpu/ram/boot disk size/OS image + сетевые подключения). Для разных групп эти характеристики могут быть разными.
|
|
||||||
|
|
||||||
Группы в составе Basic Service могут иметь отношения parent-child с другими группами. Наличие таких отношений определяет последовательность запуска групп ("сначала parents").
|
|
||||||
|
|
||||||
На основе ресурсов, предоставляемых и управляемых через Basic Service, могут создаваться другие сервисы.
|
|
||||||
|
|
||||||
`Для взаимодействия с группами виртуальных серверов используется модуль decort_group.`
|
|
||||||
|
|
||||||
Модуль decort_bservice предназначен для управления базовыми службами, в которых находятся группы виртуальных серверов.
|
|
||||||
Данный модуль позволяет:
|
|
||||||
- Создавать Basic Service
|
|
||||||
- Удалять Basic Service (безвозвратно).
|
|
||||||
- Включать/выключать Basic Service
|
|
||||||
- Запускать Basic Service
|
|
||||||
- Запрашивать информацию о Basic Service.
|
|
||||||
|
|
||||||
|
|
||||||
## Параметры модуля decort_bservice
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_bservice. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на Вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_bservice`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит ресурсная группа. При идентификации базовой службы и ресурсной группы по именам (см. параметры `name` и `rg_name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
|account_name | (string) | Имя аккаунта, которому принадлежит ресурсная группа. При идентификации базовой службы и ресурсной группы по именам (см. параметры `name` и `rg_name`) должен быть задан либо идентификатор (см. `account_id`), либо имя аккаунта. Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
|app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данная базовая служба. Данный параметр является обязательным.|
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`<br/>Данный параметр является обязательным для указанного режима.<br/>Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.<br/>Если этот параметр не определен в _playbook_, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
|oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`.|
|
|
||||||
|state | Значения: `absent`, `disabled`, `enabled`, `present`, `check`. <br> Default: `present`| Целевое состояние базовой службы. Значения `present` и `enabled` равнозначны.|
|
|
||||||
| started | (bool) <br> Default: `true` | Параметр, определяющий состояние добавленных виртуальных серверов в Basic Service. Запускать их, или нет. |
|
|
||||||
| name | (string) | Имя базовой службы. Данный параметр является обязательным при создании базовой службы и при изменении если не задан `id`. |
|
|
||||||
| sshuser | (string) | Имя пользователя, который будет создан на всех виртуальных серверах базовой службы. Используется в паре с `sshkey`. |
|
|
||||||
| sshkey | (string) | SSH ключ, который будет загружен на все виртуальные сервера базовой службы. Используется в паре с `sshuser`. |
|
|
||||||
| id | (int) | Уникальный целочисленный идентификатор базовой службы. Используется для поиска, изменения и удаления базовой службы. |
|
|
||||||
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы базовой службы. |
|
|
||||||
| rg_name | (string) | Имя ресурсной группы базовой службы. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_bservice
|
|
||||||
|
|
||||||
Модуль decort_bservice возвращает информацию о базовой службе в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
|id | int | Уникальный целочисленный идентификатор базовой службы.|
|
|
||||||
|name | string | Имя базовой службы.|
|
|
||||||
| techStatus | string | Технический статус базовой службы. |
|
|
||||||
|state | string | Статус базовой службы.|
|
|
||||||
| rg_id | int | Уникальный целочисленный идентификатор ресурсной группы, в которой находится базовая служба.|
|
|
||||||
| account_id | int | Уникальный целочисленный идентификатор аккаунта, в котором находится ресурсная группа.|
|
|
||||||
| groups | list | Список словарей с информацией о группах базовой службы.|
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_bservice
|
|
||||||
|
|
||||||
Данный пример создаёт базовую службу с именем databases.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Create Basic Service
|
|
||||||
decort_bservice:
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
jwt: "{{ auth_token }}"
|
|
||||||
name: databases
|
|
||||||
rg_id: "{{ rg_id }}"
|
|
||||||
register: db_bservice
|
|
||||||
```
|
|
||||||
|
|
||||||
Данный пример удаляет базовую службу с названием databases.
|
|
||||||
```
|
|
||||||
- name: Delete Basic Service
|
|
||||||
decort_bservice:
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
jwt: "{{ auth_token }}"
|
|
||||||
state: absent
|
|
||||||
name: databases
|
|
||||||
rg_id: "{{ rg_id }}"
|
|
||||||
register: db_bservice
|
|
||||||
```
|
|
||||||
@@ -1,177 +0,0 @@
|
|||||||
# Модуль decort_disk
|
|
||||||
## Обзор модуля decort_disk
|
|
||||||
|
|
||||||
Модуль decort_disk предназначен для управления дисками и позволяет производить с ними следующие действия:
|
|
||||||
- создавать
|
|
||||||
- удалять (в корзину или безвозвратно)
|
|
||||||
- восстановливать из корзины
|
|
||||||
- изменять:
|
|
||||||
- имя
|
|
||||||
- размер
|
|
||||||
- лимиты ввода/вывода
|
|
||||||
- включать/отключать общий доступ
|
|
||||||
|
|
||||||
|
|
||||||
Обратите внимание:
|
|
||||||
|
|
||||||
- Загрузочный диск для виртуальной машины создаётся и подключается автоматически в процессе создания этой машины.
|
|
||||||
- Модуль decort_disk служит для управления дополнительными дисками (т.н. data-дисками);
|
|
||||||
- Подключение дополнительных дисков, созданных посредством decort_disk, к виртуальным машинам выполняется с помощью модуля управления виртуальными машинами (см. модуль decort_kvmvm).
|
|
||||||
|
|
||||||
## Параметры модуля decort_disk
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_disk. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_disk`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
|account_name | (string) | Имя аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| annotation | (string)<br>Default: `Disk by decort_disk` | Текстовое описание диска. Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется.|
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
|app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данный диск. Данный параметр является обязательным.|
|
|
||||||
|id | (int) | Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры `name`, `account_name` и `account_id` игнорируются.|
|
|
||||||
| iops | (int)<br>Default: `2000` | Ограничение ввода/вывода диска. Используется при создании диска. |
|
|
||||||
| force_detach | (bool)<br/>Default: `false` | Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине.<br/>По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите `force_detach: true`. |
|
|
||||||
|jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
||||||
| limitIO | (dict) | Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду. Обратите внимание, что параметры с total не задаются вместе с read/write. Все возможные подпараметры можно увидеть в примерах. |
|
|
||||||
| name | (string) | Имя диска. Для идентификации диска требуется либо его `name` и информация об аккаунте (`account_id` или `account_name`), которому принадлежит диск, либо его `id`.|
|
|
||||||
|oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`.|
|
|
||||||
| permanently | (bool)<br>Default: `false` | Параметр, использующийся при удалении диска, при значении `true` - диск удалится навсегда, а при `false` - попадёт в корзину. |
|
|
||||||
| place_with | (int) | Идентификатор образа диска, из которого следует взять параметр `sep_id`, чтобы разместить данный диск на той же системе хранения данных, что и указанный образ диска. Данный параметр является опциональным и используется только на стадии создания диска. Если задан `place_with`, то `sep_id` игнорируется.|
|
|
||||||
| pool | (string) | Название пула на системе хранения данных, в рамках которой следует создать данный диск. Этот параметр используется только на стадии создания диска и игнорируется при операциях над уже существующими дисками. Параметр является опциональным, если не задан, то платформа будет использовать пул, который сконфигурирован на целевой системе хранения как пул по умолчанию. |
|
|
||||||
| reason | (string)<br>Default: `Managed by Ansible decort_disk` | Причина, по которой было выполнено какое-либо действие. В данном модуле используется только при удалении диска. |
|
|
||||||
| sep_id | (int) | Идентификатор системы хранения данных (Storage End-point). Данный параметр определяет систему хранения данных, на ресурсах которой создаётся диск. Используется только при создании диска и игнорируется при прочих операциях. Альтернативой данному параметру является `place_with`, позволяющий разместить диск на той же системе хранения, что и указанный образ диска, на базе которого создаётся виртуальная машина.|
|
|
||||||
| shareable | (bool)<br>Default: `false` | Включение/отключение общего доступа к диску.
|
|
||||||
| size | (int) | Размер диска в ГБ. Этот параметр является обязательным при создании диска. Если он задан для уже существующего диска, а текущий размер диска меньше заданного, то будет предпринята попытка увеличить размер диска. При прочих операциях данный параметр игнорируется.|
|
|
||||||
| state | (str)<br>Значения:<br>`present`<br>`absent`<br>Default: `present` | Целевое состояние диска. |
|
|
||||||
| type | (string)<br>Значения:<br>`B`<br>`D`<br>Default: `D` | Тип создаваемого диска. `B` - Boot/загрузочный, `D` - Data/с данными. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `false` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_disk
|
|
||||||
|
|
||||||
Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.|
|
|
||||||
| attached_to | int | Идентификатор виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то `attached_to: 0`|
|
|
||||||
| gid | int | Идентификатор физического кластера (Grid ID), на ресурсах которого создан диск.|
|
|
||||||
| id | int | Уникальный целочисленный идентификатор данного диска.|
|
|
||||||
| iotune | dict | Текущие ограничения ввода/вывода диска. |
|
|
||||||
| name | string | Имя диска. Обратите внимание, что имя диска не является уникальным с точки зрения системы хранения данных, на которой этот диск расположен.|
|
|
||||||
| pool | string | Имя пула на системе хранения данных, в котором размещаются ресурсы диска.|
|
|
||||||
|sep_id | int | Идентификатор системы хранения данных (Storage Endpoint), на которой размещаются ресурсы данного диска.|
|
|
||||||
| size | int | Размер диска в ГБ.|
|
|
||||||
| state | string | Текущий статус диска. |
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_disk
|
|
||||||
|
|
||||||
В данном примере создаётся диск размером 50ГБ (`size: 50`), с ограничением ввода/вывода в 2000 iops, на ресурсах системы хранения данных под номером 1 (`sep_id: 1`) в пуле "data01".
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
name: "DataDisk01"
|
|
||||||
size: 50
|
|
||||||
account_name: "MyAccount"
|
|
||||||
sep_id: 1
|
|
||||||
iops: 2000
|
|
||||||
annotation: "Disk example"
|
|
||||||
pool: data01
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
В следующих двух примерах для существующего диска с именем "DataDisk01" задаются все доступные лимиты на операции ввода/вывода.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
name: "DataDisk01"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
limitIO:
|
|
||||||
read_bytes_sec: 10000
|
|
||||||
write_bytes_sec: 5000
|
|
||||||
read_iops_sec и write_iops_sec
|
|
||||||
read_iops_sec: 2500
|
|
||||||
write_iops_sec: 1000
|
|
||||||
read_bytes_sec_max: 11000
|
|
||||||
write_bytes_sec_max: 6000
|
|
||||||
read_iops_sec_max: 3000
|
|
||||||
write_iops_sec_max: 1500
|
|
||||||
size_iops_sec: 1000
|
|
||||||
register: my_data_disk01
|
|
||||||
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
name: "DataDisk01"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
limitIO:
|
|
||||||
total_bytes_sec: 15000
|
|
||||||
total_iops_sec: 3500
|
|
||||||
total_bytes_sec_max: 17000
|
|
||||||
total_iops_sec_max: 4500
|
|
||||||
size_iops_sec: 1000
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере выполняется восстановление удаленного диска с id 111 из корзины.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
id: 111
|
|
||||||
size: 10
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере выполняется переименование диска с id 111 на новое имя "NewExampleDisk".
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
id: 111
|
|
||||||
name: "NewExampleDisk"
|
|
||||||
size: 10
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
|
|
||||||
Здесь результат работы модуля decort_disk записывается в переменную my_data_disk01. Для получения идентификатора диска, например, при подключении его к виртуальной машине, следует воспользоваться показанной ниже конструкцией:
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage compute
|
|
||||||
decort_kvmvm:
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
data_disks:
|
|
||||||
- "{{ my_data_disk01.facts.id }}"
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
```
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
# Модуль decort_group
|
|
||||||
## Обзор модуля decort_group
|
|
||||||
Модуль **decort_group** позволяет производить следующие действия над группами базовой службы:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- запустить/остановить
|
|
||||||
- подключить/отключить сети (для существующей группы только внутренние сети)
|
|
||||||
- изменить
|
|
||||||
- имя
|
|
||||||
- объём загрузочного диска
|
|
||||||
- количество ВМ
|
|
||||||
- роль
|
|
||||||
- количество виртуальных процессоров
|
|
||||||
- объём ОЗУ
|
|
||||||
- удалить (безвозвратно)
|
|
||||||
|
|
||||||
## Параметры модуля decort_group
|
|
||||||
Ниже приведен полный список параметров для модуля **decort_group**.
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Идентификатор аккаунта. При идентификации диска по имени (см. параметр `name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| account_name | (string) | Имя аккаунта. При идентификации диска по имени (см. параметр `name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br>`oauth2`<br>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| boot_disk | (int) | Обьём загрузочного диска. |
|
|
||||||
| bservice_id | (int) | Идентификатор базовой службы. Обязательный параметр. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| count | (int) | Количество виртуальных машин. Обязательный параметр. |
|
|
||||||
| cpu | (int) | Количество виртуальных процессоров. |
|
|
||||||
| driver | (string)<br>Default: `KVM_X86` | Драйвер. |
|
|
||||||
| id | (int) | Идентификатор группы. |
|
|
||||||
| image_id | (int) | Идентификатор образа. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| name | (str) | Имя группы. Обязательный параметр.
|
|
||||||
| networks | (list) | Список словарей, описывающих сети, которые должны быть подключены.<br>Ключи словаря:<br>• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)<br>• `id` (int) (обязательный) - идентификатор сети |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| ram | (int) | Объём оперативной памяти. |
|
|
||||||
| role | (string) | Тег роли. |
|
|
||||||
| state | (str)<br>Значения:<br>`present`<br>`absent`<br>`started`<br>`stopped`<br>`check`<br>Default: `present` |
|
|
||||||
| timeoutStart | (int) | Время отсрочки запуска группы после создания в секундах. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_group
|
|
||||||
|
|
||||||
Модуль **decort_group** возвращает информацию о диске в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Идентификатор аккаунта. |
|
|
||||||
| Computes | list | Список словарей, содержащих информацию о виртуальных машинах группы.<br>Ключи словаря:<br>• `id` (int) - идентификатор ВМ<br>• `ipAddresses` (list) - список IP-адресов ВМ<br>• `name` (str) - имя ВМ<br>• `osUsers` (list) - список словарей, содержащих учётные данные пользователей ОС ВМ по умолчанию; ключи: `login` (str) и `password` (str) |
|
|
||||||
| id | int | Идентификатор группы.|
|
|
||||||
| name | string | Имя группы.|
|
|
||||||
| rg_id | int | Идентификатор ресурсной группы. |
|
|
||||||
| state | string | Состояние группы. |
|
|
||||||
| techStatus | string | Технический статус группы. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_group
|
|
||||||
|
|
||||||
Данный пример создаёт группу с именем `test_group`.
|
|
||||||
```
|
|
||||||
- hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Create BS group
|
|
||||||
decort_group:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
boot_disk: 10
|
|
||||||
bservice_id: 1823
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
count: 2
|
|
||||||
cpu: 2
|
|
||||||
image_id: 518
|
|
||||||
name: test_group
|
|
||||||
networks:
|
|
||||||
- type: VINS
|
|
||||||
id: 1987
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
ram: 2
|
|
||||||
verify_ssl: false
|
|
||||||
register: group_test
|
|
||||||
```
|
|
||||||
|
|
||||||
Данный пример удаляет группу с именем `test_group`.
|
|
||||||
|
|
||||||
```
|
|
||||||
- hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Delete BS group
|
|
||||||
decort_group:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
bservice_id: 1823
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
name: test_group
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
state: absent
|
|
||||||
verify_ssl: False
|
|
||||||
register: group_test
|
|
||||||
```
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
# Вспомогательный модуль для получения авторизационного 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 }}"
|
|
||||||
```
|
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
# Модуль decort_k8s
|
|
||||||
## Обзор модуля decort_k8s
|
|
||||||
|
|
||||||
Модуль **decort_k8s** предназначен для выполнения следующих действий над кластерами Kubernetes:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- отключить/включить/запустить
|
|
||||||
- изменить группы Worker-узлов
|
|
||||||
- удалить (в корзину или безвозвратно)
|
|
||||||
- восстановить из корзины
|
|
||||||
|
|
||||||
## Параметры модуля decort_k8s
|
|
||||||
Ниже приведен полный список параметров для модуля **decort_k8s**:
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Идентификатор аккаунта. |
|
|
||||||
| account_name | (string) | Имя аккаунта. |
|
|
||||||
| additionalSANs | (list) | Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена.
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| cluster_conf | (dict) | Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| description | (string)<br>Default: `Created by decort ansible module` | Описание кластера. |
|
|
||||||
| extnet_id | (int)<br>Default: `0` | Идентификатор внешней сети. Если задан `0`, то внешняя сеть выбирается автоматически. Если задан параметр `vins_id`, то значение данного параметра будет проигнорировано. Если задан `extnet_only: false`, то внешняя сеть будет подключена к создаваемой внутренней сети, а если `extnet_only: true`, то либо напрямую к каждому узлу кластера (если `with_lb: false`), либо напрямую к балансировщику нагрузки (если `with_lb: true`). |
|
|
||||||
| extnet_only | (bool)<br>Default: `false` | Не использовать внутреннюю сеть, подключать напрямую к внешней. |
|
|
||||||
| getConfig | (bool)<br>Default: `false` | Получить данные конфигурации для доступа к кластеру Kubernetes. |
|
|
||||||
| ha_lb | (bool)<br>Default: `false` | Использовать схему высокой доступности для создаваемого балансировщика нагрузки (если `with_lb: true`). |
|
|
||||||
| id | (int) | Идентификатор кластера Kubernetes. |
|
|
||||||
| init_conf | (dict) | Словарь для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере. Позволяет настраивать такие процессы, как регистрация узла, настройка сети и другие задачи инициализации.
|
|
||||||
| join_conf | (dict) | Словарь для настройки поведения и параметров присоединения узла к кластеру. Включает в себя такие параметры, как control-plane-endpoint кластера, токен и certificate-key. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| k8ci_id | (int) | Идентификатор конфигурации кластера Kubernetes. Обязательный параметр. |
|
|
||||||
| kubeproxy_conf | (dict) | Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. |
|
|
||||||
| kublet_conf | (dict) | Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet. |
|
|
||||||
| master_count | (int)<br>Default: `1` | Количество Master-узлов. |
|
|
||||||
| master_cpu | (int)<br>Default: `2` | Количество виртуальных процессоров на Master-узле. |
|
|
||||||
| master_disk | (int)<br>Default: `10` | Объём загрузочного диска на Master-узле. |
|
|
||||||
| master_pool | (str) | Пул СХД, заданной параметром `master_sepid`. |
|
|
||||||
| master_ram | (int)<br>Default: `2048` | Объём оперативной памяти на Master-узле. |
|
|
||||||
| master_sepid | (int) | Идентификатор СХД для Master-узла. Если не задан, то используется СХД образа Master-узла. |
|
|
||||||
| name | (string) | Имя кластера Kubernetes. |
|
|
||||||
| network_plugin | (str)<br>Значения:<br>`flannel`<br>`calico`<br>`weavenet`<br>Default: `flannel` | CNI plugin (модуль для управления сетевыми интерфейсами контейнера). Возможные значения могут быть ограничены в используемой конфигурации кластера Kubernetes (параметр `k8ci_id`) |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| oidc_cert | (raw) | Сертификат X.509 для OIDC-провайдера.
|
|
||||||
| permanent | (bool)<br>Default: `false` | Если выполняется удаление, то выполнить безвозвратное удаление (минуя корзину). |
|
|
||||||
| rg_id | (int) | Идентификатор ресурсной группы. |
|
|
||||||
| rg_name | (str) | Имя ресурсной группы. |
|
|
||||||
| started | (bool)<br>Default: `true` | Автоматический запуск кластера после его создания. |
|
|
||||||
| state | (string)<br>Значения:<br>`present`<br>`absent`<br>`enabled`<br>`disabled`<br>`check`<br>Default: `present` | Целевое состояние кластера. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| vins_id | (int) | Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано `extnet_only: true`, то параметр игнорируется.
|
|
||||||
| with_lb | (bool)<br>Default: `true` | Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. В ином случае каждый узел получит отдельный адрес из внешней сети.
|
|
||||||
| workers | (list) | Обязательный параметр. Список словарей, описывающих группы Worker-узлов.<br>Ключи словаря:<br>• `annotations` (list) (необязательный) - список строк с annotations в формате: `key1=value1`<br>• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init<br>• `cpu` (int) (обязательный) - количество виртуальных процессоров на узле<br>• `disk` (int) (обязательный) - объём загрузочного диска на узле<br>• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`<br>• `name` (string) (обязательный) - имя группы Worker-узлов<br>• `num` (int) (обязательный) - количество узлов<br>• `pool` (str) (обязательный) - пул СХД, заданной ключом `sep_id`<br>• `ram` (int) (обязательный) - объём оперативной памяти на узле<br>• `sep_id` (int) (обязательный) - идентификатор СХД; если задать `null`, то используется СХД образа узла<br>• `taints` (list) (необязательный) - список строк с taints в формате: `key1=value1:NoSchedule` |
|
|
||||||
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_k8s
|
|
||||||
|
|
||||||
Модуль **decort_k8s** возвращает информацию о кластере в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Идентификатор аккаунта. |
|
|
||||||
| config | str | Kuber config кластера.
|
|
||||||
| id | int | Идентификатор кластера. |
|
|
||||||
| k8s_Masters | dict | Словарь с информацией о группе Master-узлов.<br>Ключи словаря:<br>• `cpu` (int) - количество виртуальных процессоров<br>• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ<br>• `disk` (int) - объём загрузочного диска<br>• `id` (int) - идентификатор группы<br>• `name` (str) - имя группы<br>• `num` (int) - количество узлов<br>• `ram` (int) - объём оперативной памяти
|
|
||||||
| k8s_Workers | dict | Список словарей с информацией о группах Worker-узлов.<br>Ключи словаря:<br>• `cpu` (int) - количество виртуальных процессоров<br>• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ<br>• `disk` (int) - объём загрузочного диска<br>• `id` (int) - идентификатор группы<br>• `labels` (list) - список строк с labels<br>• `name` (str) - имя группы<br>• `num` (int) - количество узлов<br>• `ram` (int) - объём оперативной памяти<br>• `taints` (list) - список строк с taints
|
|
||||||
| name | string | Имя кластера. |
|
|
||||||
| rg_id | int | Идентификатор ресурсной группы. |
|
|
||||||
| state | string | Статус кластера. |
|
|
||||||
| techStatus | string | Технический статус кластера. |
|
|
||||||
| vins_id | int | Идентификатор внутренней сети кластера. |
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_k8s
|
|
||||||
|
|
||||||
|
|
||||||
Пример создания кластера Kubernetes с именем `cluster-test` с получением Kuber config.
|
|
||||||
```
|
|
||||||
- name: Create a k8s cluster named cluster-test
|
|
||||||
decort_k8s:
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
getConfig: true
|
|
||||||
jwt: "{{ token.jwt }}"
|
|
||||||
k8ci_id: 18
|
|
||||||
name: cluster-test
|
|
||||||
rg_id: 125
|
|
||||||
workers:
|
|
||||||
- cpu: 10
|
|
||||||
disk: 10
|
|
||||||
name: wg1
|
|
||||||
num: 1
|
|
||||||
pool: null
|
|
||||||
ram: 1024
|
|
||||||
sep_id: null
|
|
||||||
- cpu: 10
|
|
||||||
disk: 10
|
|
||||||
name: wg2
|
|
||||||
num: 2
|
|
||||||
pool: null
|
|
||||||
ram: 1024
|
|
||||||
sep_id: null
|
|
||||||
register: k8s_cluster
|
|
||||||
```
|
|
||||||
@@ -1,106 +0,0 @@
|
|||||||
# Модуль decort_kvmvm
|
|
||||||
## Обзор модуля decort_kvmvm
|
|
||||||
|
|
||||||
Модуль **decort_kvmvm** предназначен для выполнения следующих действий над виртуальными машинами:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- остановить/приостановить/запустить
|
|
||||||
- подключить/отключить диски с данными
|
|
||||||
- подключить/отключить сети
|
|
||||||
- изменить
|
|
||||||
- объём загрузочного диска в большую сторону
|
|
||||||
- количество CPU
|
|
||||||
- объём ОЗУ
|
|
||||||
- тэги
|
|
||||||
- affinity метку
|
|
||||||
- affinity правила
|
|
||||||
- anti-affinity правила
|
|
||||||
- удалить (безвозвратно)
|
|
||||||
|
|
||||||
## Параметры модуля decort_kvmvm
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля **decort_kvmvm**. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_kvmvm`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| aaff_rule | (list) | Список словарей, описывающих anti-affinity правила.<br>Ключи словаря:<br>• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)<br>• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`<br>• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)<br>• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила<br>• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`)
|
|
||||||
| account_id | (int) | Идентификатор аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией `account_id` и `rg_name`. Если задан `account_id`, то `account_name` игнорируется.|
|
|
||||||
| account_name | (string) | Имя аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией `account_name` и `rg_name`. Если задан `account_id`, то `account_name` игнорируется. |
|
|
||||||
| aff_rule | (list) | Список словарей, описывающих affinity правила.<br>Ключи словаря:<br>• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)<br>• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`<br>• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)<br>• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила<br>• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`)
|
|
||||||
| affinity_label | (str) | Метка affinity.
|
|
||||||
| annotation | (string) | Опциональное описание виртуальной машины. Этот параметр используется только при создании.|
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DCORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| arch | (str)<br>Значения:<br/>`X86_64`<br>`PPC64_LE`<br>Default: `X86_64` | Архитектура виртуальной машины. |
|
|
||||||
| authenticator | (str)<br>Значения:<br>`oauth2`<br>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| boot_disk | (int) | Объём загрузочного диска виртуальной машины в ГБ. |
|
|
||||||
| ci_user_data | (dict) | конфигурация для cloud-init
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данная виртуальная машина. Данный параметр является обязательным. |
|
|
||||||
| cpu | (int) | Количество виртуальных процессоров, выделяемых виртуальной машине. |
|
|
||||||
| data_disks | (list) | Список идентификаторов дисков, которые следует подключить к данной виртуальной машине как дополнительные. |
|
|
||||||
| id | (int) | Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива – по комбинации `name`, `rg_name` и `account_name`). Если при вызове модуля **decort_kvmvm** существующая ВМ идентифицируется по `id`, то параметры `account_id`, `account_name`, `rg_id` и `rg_name` игнорируются. |
|
|
||||||
| image_id | (int) | Уникальный цифровой идентификатор образа, на базе которого следует создать виртуальную машину. При создании задать этот параметр или параметр `image_name`. При любых других операциях данные параметры игнорируются. Если заданы оба этих параметра (`image_id` и `image_name`), то `image_name` игнорируется. |
|
|
||||||
| image_name | (string) | Название образа, на базе которого следует создать ВМ. При создании требуется задать этот параметр или параметр `image_id`. При любых других операциях данные параметры игнорируются. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_JWT`.
|
|
||||||
| name | (string) | Имя ВМ. Чтобы модуль **decort_kvmvm** мог управлять сервером по его названию, также необходимо задать комбинацию `account_name` и `rg_name` или `rg_id`. Если для существующей ВМ указаны и `name`, и `id`, то параметр `name` игнорируется и идентификация сервера выполняется по `id`.|
|
|
||||||
| networks | (list) | Список словарей, описывающих сети для подключения к ВМ.<br>Ключи словаря:<br>• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)<br>• `id` (int) (обязательный) - идентификатор сети<br>• `ip_addr` (string) (необязательный) - IP-адрес, используемый для подключения к данной сети. |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| pool | (str) | Пул СХД, заданной параметром `sep_id`. Если пул не задан, то он будет выбран платформой.
|
|
||||||
| ram | (int) | Объем оперативной памяти в МБ, выделенной данной ВМ. Параметр является обязательным при создании. Если указать его для уже существующей ВМ, то будет выполнена попытка изменить объем выделенной памяти. |
|
|
||||||
| rg_id | (int) | Уникальный цифровой идентификатор уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ (альтернативой является задание комбинации `account_name` и `rg_name`).|
|
|
||||||
| rg_name | (string) | Имя уже существующей ресурсной группы, в которой будет создаа новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ, когда задается пара `account_name` и `rg_name` (альтернативой является задание `rg_id`). Если заданы и `rg_id`, и `rg_name`, то параметр `rg_name` игнорируется.|
|
|
||||||
| sep_id | (int) | Идентификатор СХД для загрузочного диска ВМ. Если не задан, то будет использоваться СХД образа.
|
|
||||||
| ssh_key | (string) | Открытая часть SSH-ключа, который необходимо добавить на создаваемую ВМ для пользователя, заданного параметром `ssh_key_user`. Данный параметр применим только для ОС Linux, используется только при создании и игнорируется при других операциях. |
|
|
||||||
| ssh_key_user | (string) | Имя пользователя в гостевой ОС (только для Linux), для которого добавляется SSH-ключ, заданный параметром `ssh_key`. Данный параметр является обязательным, если задан `ssh_key`. Используется только при создании и игнорируется при других операциях. |
|
|
||||||
| state | (str)<br>Значения:<br>`present`<br>`absent`<br>`poweredon`<br>`poweredoff`<br>`halted`<br>`paused`<br>`check`<br>Default: `present` | Целевое состояние ВМ.<br> Значение `halted` - синоним к `poweredoff`. Значения `present` и `poweredon` равнозначны. <br>Значение `check` вызывает модуль в _read-only_ режиме и считывает характеристики существующей ВМ. |
|
|
||||||
| tag | (dict) | Словарь, пары ключ-значение которого, описывают тэги для ВМ. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_kvmvm
|
|
||||||
|
|
||||||
Модуль **decort_kvmvm** возвращает информацию о виртуальной машине в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Идентификатор аккаунта. |
|
|
||||||
| arch | string | Архитектура ВМ. |
|
|
||||||
| cpu | int | Количество виртуальных процессоров. |
|
|
||||||
| data_disks | list | Список идентификаторов дисков с данными, подключенных к ВМ. |
|
|
||||||
| disk_size | int | Размер загрузочного диска в ГБ. |
|
|
||||||
| id | int | Идентификатор ВМ. |
|
|
||||||
| image_id | id | Идентификатор образа.
|
|
||||||
| name | string | Имя ВМ. |
|
|
||||||
| password | string | Пароль пользователя ОС по умолчанию. |
|
|
||||||
| private_ips | list | Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям. |
|
|
||||||
| public_ips | list | Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям. |
|
|
||||||
| ram | int | Объём ОЗУ ВМ в МБ. |
|
|
||||||
| rg_id | int | Идентификатор ресурсной группы, которой принадлежит данная ВМ. |
|
|
||||||
| state | string | Состояние ВМ.|
|
|
||||||
| tags | dict | Словарь, пары ключ-значение которого, описывают тэги ВМ.
|
|
||||||
| tech_status | str | Технический статус ВМ.
|
|
||||||
| username | string | Имя пользователя ОС по умолчанию. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_kvmvm
|
|
||||||
|
|
||||||
В данном примере создается ВМ с именем MyFirstVM.
|
|
||||||
```
|
|
||||||
- name: Сreate VM
|
|
||||||
decort_kvmvm:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
cpu: 2
|
|
||||||
image_id: "{{ my_img.facts.id }}"
|
|
||||||
name: MyFirstVM
|
|
||||||
networks:
|
|
||||||
- type: VINS
|
|
||||||
id: "{{ my_vins.facts.id }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
ram: 4096
|
|
||||||
rg_id: "{{ my_rg.facts.id }}"
|
|
||||||
register: my_vm
|
|
||||||
```
|
|
||||||
@@ -1,893 +0,0 @@
|
|||||||
# Модуль decort_lb
|
|
||||||
## Обзор модуля decort_lb
|
|
||||||
|
|
||||||
Модуль **decort_lb** предназначен для выполнения следующих действий над балансировщиками нагрузки:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- отключить/включить/запустить/перезапустить
|
|
||||||
- изменить конфигурации backend и frontend
|
|
||||||
- удалить (в корзину или безвозвратно)
|
|
||||||
- восстановить из корзины
|
|
||||||
|
|
||||||
## Параметры модуля decort_lb
|
|
||||||
Ниже приведен полный список параметров для модуля **decort_lb**:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="3">Параметр</th>
|
|
||||||
<th>Тип</th>
|
|
||||||
<th>Описание</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
account_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор аккаунта.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
account_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя аккаунта.
|
|
||||||
<br> Может быть альтернативой параметру <code>account_id</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
annotation
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Default: <code>Managed by Ansible module decort_lb</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Описание балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
app_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор приложения, использующийся для подключения к контроллеру
|
|
||||||
облачной платформы DECORT в режиме <code>authenticator: oauth2</code>.
|
|
||||||
Данный параметр является обязательным для указанного режима. Если
|
|
||||||
параметр не задан в playbook, модуль будет использовать значение
|
|
||||||
переменной окружения <code>DECORT_APP_ID</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
app_secret
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Секретный ключ приложения, который используется для подключения к
|
|
||||||
контроллеру облачной платформы DECORT в режиме
|
|
||||||
<code>authenticator: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Так как он содержит секретную
|
|
||||||
информацию, то его не рекомендуется задавать непосредственно в
|
|
||||||
playbook. Если параметр не задан в playbook, то модуль будет
|
|
||||||
использовать значение переменной окружения
|
|
||||||
<code>DECORT_APP_SECRET</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
authenticator
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br/><code>oauth2</code>
|
|
||||||
<br/><code>jwt</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим аутентификации при подключении к контроллеру облачной платформы
|
|
||||||
DECORT. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
backends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
algorithm
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>leastconn</code>
|
|
||||||
<br><code>roundrobin</code>
|
|
||||||
<br><code>static-rr</code>
|
|
||||||
<br>Default: <code>roundrobin</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Используемый алгоритм.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
<a name="backend_default_settings">
|
|
||||||
default_settings
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Cловарь, описывающий параметры по умолчанию для backend-серверов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
downinter
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>1000</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Интервал в миллисекундах между двумя последовательными проверками
|
|
||||||
доступности сервера, который считается недоступным.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
fall
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>2</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество последовательных неудачных проверок доступности, после
|
|
||||||
которых сервер, ранее считавшийся доступным, начинает считаться
|
|
||||||
недоступным и временно исключается из схемы балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
inter
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>5000</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Интервал в миллисекундах между двумя последовательными проверками
|
|
||||||
доступности сервера, который считается доступным.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
maxconn
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>250</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Лимит одновременных подключений к серверу. При достижении этого лимита
|
|
||||||
сервер временно исключается из схемы балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
maxqueue
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>256</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Лимит соединений, ожидающих в очереди. Когда этот предел будет
|
|
||||||
достигнут, все последующие подключения будут перенаправлены
|
|
||||||
на другие серверы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
rise
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>2</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество проверок, которые должен пройти сервер, считавшийся
|
|
||||||
недоступным, чтобы начать считаться доступным и снова быть
|
|
||||||
включенным в схему балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
slowstart
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>60000</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Интервал в миллисекундах с момента когда сервер начинает считаться
|
|
||||||
доступным, по истечении которого количество фактически разрешенных
|
|
||||||
подключений к этому серверу будет возвращено до 100% от
|
|
||||||
установленного лимита.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
weight
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>100</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Вес сервера для использования в алгоритмах балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название backend. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
controller_url
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL контроллера, соответствующего экземпляру облачной платформы
|
|
||||||
DECORT. Данный параметр является обязательным.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
ext_net_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор внешней сети.
|
|
||||||
<br>Может быть не задан, если задан <code>vins_id</code> -
|
|
||||||
в таком случае балансировщик будет подключён только к
|
|
||||||
внутренней сети.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
<a name="frontends">
|
|
||||||
frontends
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации frontend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
backend
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название используемого backend. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
bindings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации binding.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
address
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
IP-адрес.
|
|
||||||
<br>Если не задан, то будет использоваться основной IP-адрес
|
|
||||||
балансировщика во внешней сети или, если подключена только
|
|
||||||
внутренняя сеть, основной IP-адрес балансировщика во внутренней сети.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
port
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>1</code>-<code>65535</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Порт. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
ha_lb
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
bool
|
|
||||||
<br>Default: <code>false</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Использовать схему высокой доступности для создаваемого балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
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="3">
|
|
||||||
lb_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор балансировщика нагрузки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
lb_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя балансировщика. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
oauth2_url
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL авторизационного сервера, работающего по протоколу Oauth2,
|
|
||||||
который должен использоваться в режиме
|
|
||||||
<code>authenticator: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Если параметр не задан в
|
|
||||||
playbook, модуль будет использовать значение переменной
|
|
||||||
окружения <code>DECORT_OAUTH2_URL</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
permanently
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
<br>Default: <code>false</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Если выполняется удаление, то выполнить безвозвратное удаление
|
|
||||||
(минуя корзину).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
rg_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор ресурсной группы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
rg_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя ресурсной группы.
|
|
||||||
<br> В комбинации с заданным аккаунтов может быть альтернативой
|
|
||||||
параметру <code>rg_id</code>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
servers
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend-серверов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
address
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
IP-адрес. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
backends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих параметры backend-сервера для разных
|
|
||||||
конфигураций backend.
|
|
||||||
<br>Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
check
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>enabled</code>
|
|
||||||
<br><code>disabled</code>
|
|
||||||
<br>Default: <code>enabled</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Проверка доступности сервера.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название конфигурации backend. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
port
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>1</code>-<code>65535</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Порт. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
server_settings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Словарь, описывающий параметры backend-сервера.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словаря
|
|
||||||
<a href=#backend_default_settings>
|
|
||||||
default_settings
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
state
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>present</code>
|
|
||||||
<br><code>absent</code>
|
|
||||||
<br><code>enabled</code>
|
|
||||||
<br><code>disabled</code>
|
|
||||||
<br><code>restart</code>
|
|
||||||
<br>Default: <code>present</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевое состояние балансировщика нагрузки.
|
|
||||||
<br>Выполнение с <code>state=restart</code> позволяет выполнить
|
|
||||||
перезапуск балансировщика, соответственно, всегда возвращает
|
|
||||||
<code>changed: true</code>.
|
|
||||||
<br>Значения <code>present</code> и <code>enabled</code> равнозначны
|
|
||||||
и соответствуют включённому и запущенному балансировщику.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
verify_ssl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
<br>Default: <code>true</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Позволяет отключить проверку SSL сертификатов при выполнении API
|
|
||||||
вызовов в адрес контроллера облачной инфраструктуры, например,
|
|
||||||
при работе с изолированной облачной инфраструктурой, использующей
|
|
||||||
самоподписанные сертификаты. Применяйте данный параметр с
|
|
||||||
осторожностью, предпочтительно в защищенных средах.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
vins_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор внутренней сети.
|
|
||||||
<br>Может быть не задан, если задан <code>ext_net_id</code> -
|
|
||||||
в таком случае балансировщик будет подключён только к
|
|
||||||
внешней сети.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
vins_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя внутренней сети.
|
|
||||||
<br> В комбинации с заданной РГ может быть альтернативой для
|
|
||||||
параметра <code>vins_id</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_lb
|
|
||||||
|
|
||||||
Модуль **decort_lb** возвращает информацию о балансировщике в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">
|
|
||||||
Ключ
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Тип
|
|
||||||
<br>данных
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Описание
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
backends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
algorithm
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Используемый алгоритм.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название конфигурации backend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
serverDefaultSettings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Cловарь, описывающий параметры по умолчанию для backend-серверов.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словаря
|
|
||||||
<a href=#backend_default_settings>
|
|
||||||
default_settings
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
servers
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend-серверов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
address
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
IP-адрес.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
check
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Проверка доступности сервера.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
port
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Порт.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
serverSettings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Cловарь, описывающий параметры backend-сервера.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словаря
|
|
||||||
<a href=#backend_default_settings>
|
|
||||||
default_settings
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
frontends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации frontend.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словарей списка
|
|
||||||
<a href=#frontends>
|
|
||||||
frontends
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
gid
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор физического кластера (Grid ID).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
rg_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор ресурсной группы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
state
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Статус балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
# Модуль decort_osimage
|
|
||||||
## Обзор модуля decort_osimage
|
|
||||||
|
|
||||||
Модуль decort_osimage предназначен для выполнения следующих действий над образами, созданными в облачной платформе DECORT:
|
|
||||||
- шаблонные образы:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- изменить имя
|
|
||||||
- удалить
|
|
||||||
- виртуальные образы
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- изменить
|
|
||||||
- имя
|
|
||||||
- целевой образ
|
|
||||||
|
|
||||||
## Параметры модуля decort_osimage
|
|
||||||
Ниже приведен полный список параметров для модуля decort_osimage.
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_Id | (int) | Уникальный целочисленный идентификатор аккаунта. Используется для поиска образов, а тажке для их создания. |
|
|
||||||
| account_name | (string) | Имя аккаунта. Используется для получения уникального целочисленного идентификатора аккаунта. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| architecture | (string)<br>Default: `X86_64` | Архитектура микропроцессора, для которой предназначен образ. Используется при создании образа.|
|
|
||||||
| authenticator | (str)<br>Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| boottype | (string)<br>Default: `uefi` | Тип загрузки образа. Используется при создании образа.|
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) образ. Данный параметр является обязательным. |
|
|
||||||
| drivers | (string)<br>Default: `KVM_X86` | Тип виртуальных машин, подходящих для образа. Используется при создании образа.|
|
|
||||||
| hotresize | (bool)<br>Default: `false` | Поддерживает ли образ "горячее" изменение размера. По умолчанию установлено `false`. Используется при создании образа операционной системы. |
|
|
||||||
| image_id | (int) | Идентификатор шаблонного образа.
|
|
||||||
| image_name | (str) | Имя шаблонного образа.
|
|
||||||
| image_password | (string) | Опциональный пароль для образа. Используется при создании образа.|
|
|
||||||
| image_username | (string) | Опциональное имя пользователя для образа. Используется при создании образа. |
|
|
||||||
| imagetype | (string)<br>Default: `linux` | Тип образа. Используется при создании образа.|
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| passwordDL | (string) | Пароль для скачивания по URL-адресу. Используется при создании образа. |
|
|
||||||
| pool | (str) | Имя пула СХД. Используется для поиска существующего образа.
|
|
||||||
| poolName | (string) | Имя пула СХД. Используется при создании образа. |
|
|
||||||
| sepId | (integer) | Уникальный целочисленный идентификатор СХД. Используется при создании образа. |
|
|
||||||
| sep_id | (int) | Идентификатор СХД. Используется для поиска существующего образа.
|
|
||||||
| state | (string)<br>Значения:<br>`present`<br>`absent`<br>Default: `present` | Целевое состояние образа. `present` - существует, `absent` - удалён. |
|
|
||||||
| url | (string) | URL-адрес, с которого будет загружен образ. Используется при создании образа.|
|
|
||||||
| usernameDL | (string) | Имя пользователя для загрузки образа с заданного URL-адреса. Используется при создании образа. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| virt_id | (integer) | Уникальный целочисленный идентификатор виртуального образа. Может использоваться для получения информации о виртуальном образе, а также для привязки к нему другого образа.|
|
|
||||||
| virt_name | (string) | Имя виртуального образа. Используется для получения `virt_id`, а в последствии информации о виртуальном образе, а также для создания виртуального образа и привязки к нему другого образа.|
|
|
||||||
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_osimage
|
|
||||||
|
|
||||||
Модуль decort_osimage возвращает информацию об образе в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| accountId | int | Идентификатор аккаунта.
|
|
||||||
| id | int | Уникальный целочисленный идентификатор данного образа. |
|
|
||||||
| linkto | int | Уникальный целочисленный идентификатор образа, который привязан к данному виртуальному. |
|
|
||||||
| name | string | Имя образа. |
|
|
||||||
| pool | string | Имя пула на системе хранения данных, в котором находится данный образ.|
|
|
||||||
| sep_id | int | Идентификатор системы хранения данных, на которой хранится данный образ. |
|
|
||||||
| size | int | Размер образа в ГБ. |
|
|
||||||
| state | string | Текущий статус образа. |
|
|
||||||
| type | string | Тип образа. |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_osimage
|
|
||||||
|
|
||||||
|
|
||||||
Пример создания шаблонного образа с операционной системой Alpine Linux.
|
|
||||||
```
|
|
||||||
- name: Create template image
|
|
||||||
decort_osimage:
|
|
||||||
account_Id: 12345
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1
|
|
||||||
url: https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/cloud/nocloud_alpine-3.19.1-x86_64-uefi-cloudinit-r0.qcow2
|
|
||||||
verify_ssl: false
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
|
|
||||||
Пример получения информации о существующем шаблонном образе по его имени.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Get template image
|
|
||||||
decort_osimage:
|
|
||||||
account_Id: 12345
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1
|
|
||||||
verify_ssl: false
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
|
|
||||||
Пример создания виртуального образа. Также в случае, если виртуальный образ уже существует, но к нему привязан другой шаблонный образ, он привяжет к себе указанный в примере шаблонный образ.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Create virtual image
|
|
||||||
decort_osimage:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1
|
|
||||||
virt_name: alpine_last
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
Обратите внимание, что в данном примере можно использовать как `image_name`, так и `image_id`. Также можно использовать либо `virt_name`, либо `virt_id`.
|
|
||||||
|
|
||||||
Пример переименования образа.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Rename template image
|
|
||||||
decort_osimage:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1_new_name
|
|
||||||
image_id: 54321
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
# Модуль decort_pfw
|
|
||||||
## Обзор модуля decort_pfw
|
|
||||||
|
|
||||||
Модуль **decort_pfw** предназначен для настройки правил переадресации портов (port forwarding, destination NAT) на виртуальном маршрутизаторе заданной внутренней сети для заданной виртуальной машины.
|
|
||||||
Модуль поддерживает выполнение следующих действий над правилами:
|
|
||||||
- добавить
|
|
||||||
- получить информацию
|
|
||||||
- удалить
|
|
||||||
|
|
||||||
## Параметры модуля decort_pfw
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля **decort_pfw**. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_pfw`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| compute_id | (int) | Идентификатор виртуальной машины. IP-адрес, который данная ВМ имеет во внутренней сети, заданной параметром `vins_id`, будет использоваться как внутренний IP-адрес в правилах. Обязательный параметр. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| rules | (list) | Список словарей, описывающих правила переадресации портов для заданной ВМ (параметр `compute_id`) на виртуальном маршрутизаторе заданной внутренней сети (параметр `vins_id`).<br>Ключи словаря:<br>• `local_port` (int) (обязательный) - внутренний порт; значения: от `1` до `65535`<br>• `proto` (str) (обязательный) - протокол; значения: `tcp` или `udp`<br>• `public_port_end` (int) (необязательный) - верхняя граница диапазона внешних портов; значения: от значения ключа `public_port_start` до `65535`;<br>• `public_port_start` (int) (обязательный) - нижняя граница диапазона внешних портов; значения: от `1` до `65535` |
|
|
||||||
| state | (str)<br>Значения:<br/>`present`<br/>`absent`<br>Default: `present` | Целевое состояние правил.<br>Если `state=absent`, то, независимо от содержания параметра `rules`, будут удалены все правила для заданной ВМ (параметр `compute_id`) на виртуальном маршрутизаторе заданной внутренней сети (параметр `vins_id`). |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| vins_id | (int) | Идентификатор внутренней сети, на виртуальном маршрутизаторе которой настраиваются правила переадресации портов. Заданная ВМ (параметр `compute_id`) должна быть подключена к этой сети. Обязательный параметр. |
|
|
||||||
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_pfw
|
|
||||||
|
|
||||||
Модуль **decort_pfw** возвращает информацию о правилах переадресации портов и сопутствующую информацию в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| compute_id | int | Идентификатор ВМ. |
|
|
||||||
| public_ip | string | IP-адрес во внешней сети, настроенный на виртуальном маршрутизаторе внутренней сети. |
|
|
||||||
| rules | list | Список словарей, описывающих правила переадресации портов.<br>Ключи словаря:<br>• `id` (int) - идентификатор правила<br>• `localIp` (str) - IP-адрес ВМ<br>• `localPort` (int) - внутренний порт<br>• `protocol` (str) - протокол<br>• `publicPortEnd` (int) - верхняя граница диапазона внешних портов<br>• `publicPortStart` (int) - нижняя граница диапазона внешних портов<br>• `vmId` (int) - идентификатор ВМ<br>• `vmName` (str) - имя ВМ |
|
|
||||||
| state | string | Статус правил. Значения: `PRESENT` или `ABSENT`. |
|
|
||||||
| vins_id | int | Идентификатор внутренней сети. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_pfw
|
|
||||||
|
|
||||||
В данном примере для существующей ВМ (параметр `compute_id`), подключённой к внутренней сети (параметр `vins_id`), настраиваются два правила переадресации портов:
|
|
||||||
|
|
||||||
- Правило для одного порта: внешний порт `30022` на внутренний порт `22` по протоколу `tcp`.
|
|
||||||
- Правило для диапазона портов: внешние порты с `30080` по `30085` на внутренние порты с `30080` по протоколу `udp`.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Add port forwarding rules
|
|
||||||
decort_pfw:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
compute_id: "{{ my_vm.facts.id }}"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
rules:
|
|
||||||
- local_port: 22
|
|
||||||
proto: tcp
|
|
||||||
public_port_start: 30022
|
|
||||||
- local_port: 30080
|
|
||||||
proto: udp
|
|
||||||
public_port_end: 30085
|
|
||||||
public_port_start: 30080
|
|
||||||
vins_id: "{{ my_vins.facts.id }}"
|
|
||||||
register: my_pfw_rules
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере результат выполнения модуля **decort_pfw** записывается в переменную `my_pfw_rules`. Для доступа к списку правил используйте следующую конструкцию:
|
|
||||||
|
|
||||||
```
|
|
||||||
"{{ my_pfw_rules.facts.rules }}"
|
|
||||||
```
|
|
||||||
@@ -1,200 +0,0 @@
|
|||||||
# Модуль decort_rg
|
|
||||||
|
|
||||||
## Обзор модуля decort_rg
|
|
||||||
|
|
||||||
Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет:
|
|
||||||
|
|
||||||
- создавать ресурсные группы
|
|
||||||
- удалять ресурсные группы (в корзину или безвозвратно)
|
|
||||||
- восстанавливать ресурсные группы из корзины
|
|
||||||
- включать/отключать ресурсные группы
|
|
||||||
- запрашивать информацию об уже существующих ресурсных группах
|
|
||||||
- изменять ресурсные группы:
|
|
||||||
- переименовывать
|
|
||||||
- настраивать квоты
|
|
||||||
- задавать стандартную сеть
|
|
||||||
- настраивать права доступа для пользователей
|
|
||||||
|
|
||||||
## Параметры модуля decort_rg
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_rg. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: `ansible-doc -t module decort_rg`
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
|----------|--------------------------|----------|
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то account_name игнорируется. |
|
|
||||||
| account_name | (string) | Имя аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| access | (dict) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе. |
|
|
||||||
| annotation | (string) | Текстовое описание ресурсной группы. Данный параметр является опциональным и учитывается только при создании ресурсной группы, а при всех прочих операциях игнорируется. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения DECORT_APP_SECRET. |
|
|
||||||
| authenticator | Значения:<br>`oauth2`<br>`jwt`| Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным.|
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данная ресурсная группа. Данный параметр является обязательным. |
|
|
||||||
| def_netType | (string) <br>Значения:<br>`PRIVATE`<br>`PUBLIC`<br>`NONE`<br>Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. |
|
|
||||||
| def_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. |
|
|
||||||
| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети. Используется при создании РГ для подключения внешней сети к внутренней сети, которая будет создана и задана как сеть по умолчанию для РГ. |
|
|
||||||
| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. |
|
|
||||||
| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. |
|
|
||||||
| ipcidr | (string) | IP-адрес внутренней сети. Используется при создании ресурсной группы, чтобы задать IP-адрес сети для создаваемой внутренней сети, которая создастся вместе с ресурсной группой. Используется при параметре `def_netType` в значении `PRIVATE`. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`<br>Данный параметр является обязательным для указанного режима.<br>Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.<br>Если этот параметр не определен в _playbook_, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| rename | (string) | Новое имя ресурсной группы. Используется при переименовании ресурсной группы. |
|
|
||||||
| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. |
|
|
||||||
| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. |
|
|
||||||
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` |
|
|
||||||
| state | Значения:<br>`present`<br>`absent`<br>`enabled`<br>`disabled`<br>Default: `present` | Целевое состояние ресурсной группы. |
|
|
||||||
| permanently | (bool)<br>Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_rg
|
|
||||||
|
|
||||||
Модуль decort_rg возвращает информацию о ресурсной группе в виде словаря facts со следующими ключами:
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
|------|------------|----------|
|
|
||||||
| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная ресурсная группа. |
|
|
||||||
| gid | int | Идентификатор физического кластера (Grid ID), на базе которого развёрнута ресурсная группа. |
|
|
||||||
| id | int | Уникальный целочисленный идентификатор ресурсной группы. |
|
|
||||||
| name | string | Имя ресурсной группы. Обратите внимание, что это имя уникально только в рамках аккаунта, которому принадлежит данная ресурсная группа. |
|
|
||||||
| state | string | Текущее состояние ресурсной группы. |
|
|
||||||
| quota | dict | Текущие квоты ресурсной группы. |
|
|
||||||
| resTypes | list | Список типов ресурсов, разрешенных к созданию в данной ресурсной группе. |
|
|
||||||
| defNetId | int | Уникальный целочисленный идентификатор сети по умолчанию в данной ресурсной группе. |
|
|
||||||
| defNetType | string | Тип сети по умолчанию в данной ресурсной группе. |
|
|
||||||
| ViNS | list | Список идентификаторов внутренних сетей ресурсной группы. |
|
|
||||||
| computes | list | Список идентификаторов виртуальных машин ресурсной группы. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_rg
|
|
||||||
|
|
||||||
В данном примере показано, как создать ресурсную группу по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как создать ресурсную группу по имени MyRG в аккаунте MyAccount, также задать квоты и выдать права на чтение пользователю MyUser.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
access:
|
|
||||||
action: "grant"
|
|
||||||
user: "MyUser"
|
|
||||||
right: "R"
|
|
||||||
quotas:
|
|
||||||
cpu: 16
|
|
||||||
ram: 16384
|
|
||||||
disk: 100
|
|
||||||
ext_ips: 20
|
|
||||||
net_transfer: 1000
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как выдать доступ на чтение и запись пользователю MyUser в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
access:
|
|
||||||
action: "grant"
|
|
||||||
user: "MyUser"
|
|
||||||
right: "RCX"
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как сменить квоту в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
quotas:
|
|
||||||
cpu: 16
|
|
||||||
ram: 16384
|
|
||||||
disk: 100
|
|
||||||
ext_ips: 20
|
|
||||||
net_transfer: 1000
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как изменить сеть по умолчанию в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
def_netType: "PRIVATE"
|
|
||||||
def_netId: 99
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как переименовать ресурсную группу по имени MyRG на новое имя "NewRg" в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
rename: "NewRg"
|
|
||||||
rg_id: 27
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере результат работы модуля decort_rg записывается в переменную my_rg.
|
|
||||||
|
|
||||||
Модули DECORT, которым для работы требуется ресурсная группа, в качестве одного из параметров, как правило, принимают идентификатор `rg_id`. Так, например, используя модуль `decort_kvmvm` для создания виртуального сервера необходимо указать ресурсную группу, к которой будет принадлежать этот виртуальный сервер. Сделать это можно следующим образом:
|
|
||||||
|
|
||||||
```
|
|
||||||
<прочие детали опущены>
|
|
||||||
rg_id: "{{ my_rg.facts.id }}"
|
|
||||||
```
|
|
||||||
@@ -1,120 +0,0 @@
|
|||||||
# Модуль decort_vins
|
|
||||||
## Обзор модуля decort_vins
|
|
||||||
|
|
||||||
Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия:
|
|
||||||
- создавать
|
|
||||||
- на уровне ресурсной группы (если РГ задана)
|
|
||||||
- на уровне аккаунта (если РГ не задана)
|
|
||||||
- удалять (безвозвратно)
|
|
||||||
- восстанавливать из корзины
|
|
||||||
- запрашивать информацию
|
|
||||||
- включать/отключать
|
|
||||||
- соединять (необходимы права администратора)
|
|
||||||
- изменять:
|
|
||||||
- включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора)
|
|
||||||
- включать/отключать режим **Custom Config** для виртуального маршрутизатора (необходимы права администратора)
|
|
||||||
- сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора)
|
|
||||||
|
|
||||||
## Параметры модуля decort_vins
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_vins. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_vins`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная внутреняя сеть. При идентификации внутренней сети по имени (см. параметр `vins_name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
| account_name | (string) | Имя аккаунта, которому принадлежит данная внутренняя сеть. При идентификации внутренней сети по имени (см. параметр `vins_name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр account_id). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
|annotation | (string)| Текстовое описание внутренней сети. Данный аргумент является опциональным и учитывается только при создании внутренней сети, а при всех прочих операциях игнорируется.|
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данный внутренняя сеть. Данный параметр является обязательным.
|
|
||||||
| ext_net_id | (int) | Идентификатор внешней сети, к которой должна быть подключена внутренняя сеть. Если задать значение `0`, то платформой будет выбрана внешняя сеть по умолчанию. |
|
|
||||||
| ext_ip_addr | (string) | IP-адрес внешней сети, заданной через параметр `ext_net_id`. Если не задан, то IP-адрес для внешней сети будет выбран платформой автоматически.
|
|
||||||
| ipcidr | (string) | Адрес сети для создаваемой внутренней сети. Если этот параметр не задан, то платформа назначит адрес автоматически. Обратите внимание, что внутренние сети, принадлежащие одному и тому же аккаунту, не могут иметь пересекающихся сетей.|
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу _Oauth2_, который должен использоваться в режиме `authenticator: oauth2`.<br/>Данный параметр является обязательным для указанного режима.<br/>Если параметр не задан в _playbook_, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
|rg_id | (int) | Идентификатор ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_id` и `rg_name`, то `rg_name` игнорируется.|
|
|
||||||
| rg_name | (string) | Имя ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_name` и `rg_id`, то `rg_name` игнорируется.|
|
|
||||||
| state | (string)<br>Значения:<br/>`present`<br/>`absent`<br/>`enabled`<br/>`disabled`<br/>Default: `present` | Целевое состояние внутренней сети. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| vins_id | (int) | Идентификатор внутренней сети. Соответствующая внутренная сеть должна существовать. Таким образом, с помощью `vins_id` нельзя создать новую внутреннюю сеть, а только управлять уже имеющимися. Если задан данный параметр, то параметры `vins_name`, `account_name`, `account_id`, `rg_name` и `rg_id` игнорируются.|
|
|
||||||
| vins_name| (string) | Имя внутренней сети. Для идентификации внутренней сети требуется либо `vins_name` и информация об аккаунте/ресурсной группе, которой принадлежит сеть, либо `vins_id`. Обратите внимание, что это имя уникально только в рамках ресурсной группы или аккаунта, на уровне которого существует данная внутренняя сеть.|
|
|
||||||
| mgmtaddr | (list) | Список существующих IP-адресов виртуального маршрутизатора во внутренней сети, через которые необходимо разрешить SSH-доступ к виртуальному маршрутизатору.
|
|
||||||
| custom_config | (bool)<br>Default: `false` | Включить/отключить режим пользовательской конфигурации виртуального маршрутизатора. |
|
|
||||||
| config_save | (bool)<br>Default: `false` | Выполнить сохранение текущей конфигурации виртуального маршрутизатора для возможности последующего отката к ней. |
|
|
||||||
| connect_to | (list) | Список словарей, содержащих информацию о внутренних сетях, к которым необходимо подключить данную. См. примеры.
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_vins
|
|
||||||
|
|
||||||
Модуль decort_vins возвращает информацию о внутренней сети в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит внутренняя сеть. |
|
|
||||||
| custom_net_addr | (list) | Список IP-адресов пользовательских интерфейсов виртуального маршрутизатора
|
|
||||||
| ext_ip_addr | (string) | IP-адрес интерфейса, которым виртуальный маршрутизатор подключён к внешней сети. |
|
|
||||||
| ext_net_id | (int) | Идентификатор внешней сети, к которой подключена внутренняя сеть. `-1` означает, что внутренняя сеть не подключёна к внешней сети. |
|
|
||||||
| gid | (int) | Идентификатор физического кластера (Grid ID), на базе которого развёрнуты ресурсы данной внутренней сети. |
|
|
||||||
| id | (int) | Уникальный целочисленный идентификатор внутренней сети. |
|
|
||||||
| name | (string) | Имя внутренней сети. |
|
|
||||||
| int_net_addr | (string) | Адрес внутренней сети. |
|
|
||||||
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы, которой принадлежит данная внутренняя сеть. Если данная внутренняя сеть создана на уровне аккаунта, то `rg_id=0`. |
|
|
||||||
| ssh_ipaddr | (list) | Список IP-адресов виртуального маршрутизатора во внутренней сети, на которых включён SSH-доступ к нему.
|
|
||||||
| ssh_password | (str) | Пароль для SSH-доступа к виртуальному маршрутизатору.
|
|
||||||
| ssh_port | (int) | Номер порта для SSH-подключения к виртуальному маршрутизатору.
|
|
||||||
| state | (string) | Состояние внутренней сети. |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_vins
|
|
||||||
|
|
||||||
В данном примере создаётся внутренняя сеть с именем "MyVins01" (vins_name: "MyVins01").
|
|
||||||
|
|
||||||
Внутренняя сеть создаётся на уровне ресурсной группы "MyRg01" (rg_name: "MyRg01"), принадлежащей аккаунту "MyMainAccount" (account_name: "MyMainAccount"). Внутренняя сеть будет иметь подключение во внешнюю сеть по умолчанию (ext_net_id: 0).
|
|
||||||
```
|
|
||||||
- name: Manage ViNS on resource group level
|
|
||||||
decort_vins:
|
|
||||||
account_name: "MyMainAccount"
|
|
||||||
rg_name: "MyRg01"
|
|
||||||
authenticator: jwt
|
|
||||||
jwt: "{{ my_jwt.jwt }}"
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
ext_net_id: 0
|
|
||||||
vins_name: "MyVins01"
|
|
||||||
register: my_vins
|
|
||||||
```
|
|
||||||
|
|
||||||
Здесь результат исполнения модуля decort_vins записывается в переменную my_vins, которую можно дальше использовать в Ansible playbooks. Ниже показано, как получить и использовать идентификатор внутренней сети для подключения к нему виртуального сервера.
|
|
||||||
```
|
|
||||||
- name: Manage virtual machine
|
|
||||||
decort_kvmvm:
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
networks:
|
|
||||||
- type: VINS
|
|
||||||
id: "{{ my_vins.facts.id }}"
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере идёт создание внутренней сети, а потом её привязка к внутренним сетям с id 864 и 196.
|
|
||||||
```
|
|
||||||
- name: Manage ViNS on resource group level
|
|
||||||
decort_vins:
|
|
||||||
authenticator: jwt
|
|
||||||
jwt: "{{ my_jwt.jwt }}"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
vins_name: "ViNS_connected_by_decort_vins_module"
|
|
||||||
rg_id: 98
|
|
||||||
connect_to:
|
|
||||||
- id: 864
|
|
||||||
ipaddr: 192.168.5.66
|
|
||||||
netmask: 24
|
|
||||||
- id: 196
|
|
||||||
ipaddr: 192.168.9.133
|
|
||||||
netmask: 24
|
|
||||||
register: managed_vins
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
1. [Введение](./введение.md)
|
|
||||||
- [Введение](./введение.md#введение)
|
|
||||||
- [Системные требования](./введение.md#системные-требования)
|
|
||||||
- [Подготовка к работе](./введение.md#подготовка-к-работе)
|
|
||||||
- [Авторизация](./введение.md#авторизация)
|
|
||||||
- [Общие параметры модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации)
|
|
||||||
- [Пример авторизации с помощью app_id и app_secret](./введение.md#пример-авторизации-с-помощью-app_id-и-app_secret)
|
|
||||||
- [Пример авторизации с помощью JSON Web Token](./введение.md#пример-авторизации-с-помощью-json-web-token)
|
|
||||||
1. Ansible модули DECORT:
|
|
||||||
- [Модуль decort_kvmvm](./модуль-decort_kvmvm.md) - управление виртуальными машинами
|
|
||||||
- [Модуль decort_osimage](./модуль-decort_osimage.md) - управление образами
|
|
||||||
- [Модуль decort_disk](./модуль-decort_disk.md) - управление дисками
|
|
||||||
- [Модуль decort_pfw](./модуль-decort_pfw.md) - управление правилами переадресации портов
|
|
||||||
- [Модуль decort_rg](./модуль-decort_rg.md) - управление ресурсными группами
|
|
||||||
- [Модуль decort_vins](./модуль-decort_vins.md) - управление внутренними сетями
|
|
||||||
- [Модуль decort_jwt](./модуль-decort_jwt.md) - получение авторизационного токена
|
|
||||||
- [Модуль decort_bservice](./модуль-decort_bservice.md) - управление базовыми службами
|
|
||||||
- [Модуль decort_group](./модуль-decort_group.md)- управление группами базовой службы
|
|
||||||
- [Модуль decort_k8s](./модуль-decort_k8s.md) - управление кластерами Kubernetes
|
|
||||||
- [Модуль decort_lb](./модуль-decort_lb.md) - управление балансировщиками нагрузки
|
|
||||||
- [Модуль decort_account_info](./модуль-decort_account_info.md) - получение информации об аккаунте
|
|
||||||
- [Модуль decort_account](./модуль-decort_account.md) - управление аккаунтами
|
|
||||||
- [Модуль decort_user_info](./модуль-decort_user_info.md) - получение информации о пользователе
|
|
||||||
@@ -1,182 +0,0 @@
|
|||||||
# Модули Ansible для управления облачными ресурсами в платформе DECORT
|
|
||||||
## Введение
|
|
||||||
|
|
||||||
Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology).
|
|
||||||
|
|
||||||
По каждому модулю есть своя документация, в которой вы можете найти список доступных действий, подробную информацию о входных параметрах и возвращаемых данных, а также примеры использования.
|
|
||||||
|
|
||||||
## Системные требования
|
|
||||||
Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT.
|
|
||||||
Системные требования для работы модуля:
|
|
||||||
- Ansible 2.16.5 or higher
|
|
||||||
- Python 3.10.12 or higher
|
|
||||||
- PyJWT 1.7.1 Python module or higher
|
|
||||||
- requests Python module
|
|
||||||
- netaddr Python module
|
|
||||||
- DECORT cloud platform version 4.0.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>
|
|
||||||
Идентификатор приложения, использующийся для подключения к контроллеру
|
|
||||||
облачной платформы DECORT в режиме <code>authenticator: oauth2</code>.
|
|
||||||
Данный параметр является обязательным для указанного режима. Если
|
|
||||||
параметр не задан в playbook, модуль будет использовать значение
|
|
||||||
переменной окружения <code>DECORT_APP_ID</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
app_secret
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Секретный ключ приложения, который используется для подключения к
|
|
||||||
контроллеру облачной платформы DECORT в режиме
|
|
||||||
<code>authenticator: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Так как он содержит секретную
|
|
||||||
информацию, то его не рекомендуется задавать непосредственно в
|
|
||||||
playbook. Если параметр не задан в playbook, то модуль будет
|
|
||||||
использовать значение переменной окружения
|
|
||||||
<code>DECORT_APP_SECRET</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
authenticator
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br/><code>oauth2</code>
|
|
||||||
<br/><code>jwt</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим аутентификации при подключении к контроллеру облачной платформы
|
|
||||||
DECORT. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
controller_url
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL контроллера, соответствующего экземпляру облачной платформы
|
|
||||||
DECORT. Данный параметр является обязательным.
|
|
||||||
</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: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Если параметр не задан в
|
|
||||||
playbook, модуль будет использовать значение переменной
|
|
||||||
окружения <code>DECORT_OAUTH2_URL</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
verify_ssl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
<br>Default: <code>true</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Позволяет отключить проверку SSL сертификатов при выполнении API
|
|
||||||
вызовов в адрес контроллера облачной инфраструктуры, например,
|
|
||||||
при работе с изолированной облачной инфраструктурой, использующей
|
|
||||||
самоподписанные сертификаты. Применяйте данный параметр с
|
|
||||||
осторожностью, предпочтительно в защищенных средах.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### Пример авторизации с помощью app_id и app_secret
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Auth with app_id and app_secret
|
|
||||||
decort_module_name:
|
|
||||||
# Специфичные для модулей параметры упущены
|
|
||||||
# Пример демонстрирует только параметры для авторизации
|
|
||||||
app_id: "{{ app_id }}"
|
|
||||||
app_secret: "{{ app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
oauth2_url: "{{ oauth2_url }}"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Пример авторизации с помощью JSON Web Token
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Auth with JWT
|
|
||||||
decort_module_name:
|
|
||||||
# Специфичные для модулей параметры упущены
|
|
||||||
# Пример демонстрирует только параметры для авторизации
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
jwt: "{{ jwt }}"
|
|
||||||
```
|
|
||||||
@@ -1,939 +0,0 @@
|
|||||||
# Модуль decort_account
|
|
||||||
## Обзор модуля
|
|
||||||
|
|
||||||
Модуль **decort_account** предназначен для выполнения следующих действий над аккаунтом:
|
|
||||||
- **удалить в корзину** (см. [параметр state](#state) и [примеры](#в-корзину))
|
|
||||||
- **удалить безвозвратно** (см. [параметр state](#state) и [примеры](#безвозвратно))
|
|
||||||
- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины))
|
|
||||||
- **выключить/включить** (см. [параметр state](#state) и [примеры](#выключитьвключить))
|
|
||||||
- **изменить права доступа** (см. [параметр acl](#acl) и [примеры](#изменить-права-доступа))
|
|
||||||
- **изменить имя** (см. [параметр name](#name) и [примеры](#переименовать))
|
|
||||||
- **изменить квоты** (см. [параметр quotas](#quotas) и [примеры](#изменить-квоты))
|
|
||||||
- **выключить/включить отправку уведомлений о предоставлении доступа к ресурсам** (см. [параметр access_emails](#access_emails) и [примеры](#выключитьвключить-отправку-уведомлений-о-предоставлении-доступа-к-ресурсам))
|
|
||||||
|
|
||||||
## Параметры модуля
|
|
||||||
Ниже приведен список параметров для модуля **decort_account** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)):
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="6">Параметр</th>
|
|
||||||
<th>Тип</th>
|
|
||||||
<th>Описание</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="access_emails">
|
|
||||||
access_emails
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Выключение/включение отправки пользователям на эл. почту уведомлений о предоставлении доступа к ресурсам.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="acl">
|
|
||||||
acl
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевые права доступа.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
mode
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>match</code>
|
|
||||||
<br><code>revoke</code>
|
|
||||||
<br><code>update</code>
|
|
||||||
<br>Default: <code>update</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим изменения прав доступа для указанных пользователей.
|
|
||||||
<br><code>match</code> - привести в соответствие для указанных
|
|
||||||
пользователей, удалить предоставленные для других.
|
|
||||||
<br><code>revoke</code> - отозвать для указанных пользователей,
|
|
||||||
если предоставлены.
|
|
||||||
<br><code>update</code> - привести в соответствие для указанных
|
|
||||||
пользователей, оставить без изменения предоставленные для
|
|
||||||
других.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
users
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих права доступа пользователей.
|
|
||||||
<br>Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="4">
|
|
||||||
rights
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>R</code>
|
|
||||||
<br><code>RCX</code>
|
|
||||||
<br><code>ARCXDU</code>
|
|
||||||
<br>Default: <code>R</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Права доступа.
|
|
||||||
<br>При <code>mode: revoke</code> не используется.
|
|
||||||
<br>При <code>mode: match</code> и <code>mode: update</code>
|
|
||||||
права <code>ARCXDU</code> считаются соответствующими
|
|
||||||
правам <code>CXDRAU</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="4">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор пользователя.
|
|
||||||
<br>Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор целевого аккаунта.
|
|
||||||
<br>Обязательный параметр, если не задан параметр
|
|
||||||
<code>name</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="name">
|
|
||||||
name
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя целевого аккаунта.
|
|
||||||
<br>Может быть альтернативой параметру <code>id</code>,
|
|
||||||
за исключением случая, когда необходимо получить
|
|
||||||
информацию о безвозвратно удалённом объекте.
|
|
||||||
<br>Если задан совместно с параметром <code>id</code>,
|
|
||||||
то используется для переименования (целевое имя).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="quotas">
|
|
||||||
quotas
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевые квоты.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
cpu
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество виртуальных процессоров.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
disks_size
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём дисков в ГБ.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
ext_traffic
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём трафика внешних сетей.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
gpu
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество графических процессоров.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
public_ip
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество внешних IP-адресов.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
ram
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём оперативной памяти в МБ.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="state">
|
|
||||||
state
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>absent</code>
|
|
||||||
<br><code>absent_permanently</code>
|
|
||||||
<br><code>confirmed</code>
|
|
||||||
<br><code>disabled</code>
|
|
||||||
<br><code>present</code>
|
|
||||||
<br>Default: <code>present</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевое состояние.
|
|
||||||
<br><code>absent</code> - удалён в корзину, безвозвратно удалён
|
|
||||||
или не существует. Если существует и не удалён, то будет удалён
|
|
||||||
в корзину.
|
|
||||||
<br><code>absent_permanently</code> - безвозвратно удалён или
|
|
||||||
не существует. Если существует и не удалён или удалён в корзину,
|
|
||||||
то будет безвозвратно удалён.
|
|
||||||
<br> При значениях <code>absent</code> и <code>absent_permanently</code>
|
|
||||||
использование других параметров модуля, вызывающих изменение объекта,
|
|
||||||
не допускается.
|
|
||||||
<br><code>confirmed</code> - включён. Если выключен, то будет включён.
|
|
||||||
Если удалён в корзину, то будет восстановлен из корзины.
|
|
||||||
<br><code>disabled</code> - выключен. Если включён, то будет выключен.
|
|
||||||
Если удалён в корзину, то будет восстановлен из корзины и выключен.
|
|
||||||
<br><code>present</code> - существует и не удалён. Если удалён в
|
|
||||||
корзину, то будет восстановлен из корзины.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Возвращаемые значения
|
|
||||||
|
|
||||||
Модуль **decort_account** возвращает информацию об аккаунте в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="6">
|
|
||||||
Ключ
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Тип
|
|
||||||
<br>данных
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Описание
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
acl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих доступы пользователей.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
canBeDeleted
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
bool
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Может ли быть удалён.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
right
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Права.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
status
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Статус.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
type
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Тип.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
userGroupId
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор пользователя или группы пользователей.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
company
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название компании.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
companyurl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL компании.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
computeFeatures
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список дополнительных возможностей гипервизора, доступных ВМ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
computes_amount
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество ВМ по состоянию.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
started
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество запущенных ВМ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
stopped
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество остановленных ВМ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
cpu_allocation_parameter
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим выделения ЦП.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
cpu_allocation_ratio
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Коэффициент для режима выделения ЦП.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
createdBy
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор пользователя, который создал.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
createdTime
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Unix-время создания.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
createdTime_readable
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Дата и время создания.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deactivationTime
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Unix-время выключения.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deactivationTime_readable
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Дата и время выключения.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deletedBy
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор пользователя, который удалил.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deletedTime
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Unix-время удаления.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deletedTime_readable
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Дата и время удаления.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
displayname
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Отображаемое имя.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
resourceLimits
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Квоты на ресурсы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_C
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество виртуальных процессоров.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_D
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём диска в ГБ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_DM
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём дисков в ГБ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_I
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество внешних IP-адресов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_M
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
float
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём оперативной памяти в МБ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_NP
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём трафика внешних сетей.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
gpu_units
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество графических процессоров.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
sendAccessEmails
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
bool
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Отправка пользователям на эл. почту уведомлений о предоставлении доступа.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
status
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Статус.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
uniqPools
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список доступных пулов СХД.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
updatedTime
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Unix-время обновления.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
updatedTime_readable
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Дата и время обновления.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
vins
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список идентификаторов внутренних сетей на уровне аккаунта.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
vinses_amount
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество внутренних сетей.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Примеры использования
|
|
||||||
|
|
||||||
### Удалить
|
|
||||||
|
|
||||||
#### В корзину
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Delete account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: absent
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Безвозвратно
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Delete account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: absent_permanently
|
|
||||||
```
|
|
||||||
|
|
||||||
### Восстановить из корзины
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Restore account from recycle bin
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: present
|
|
||||||
```
|
|
||||||
|
|
||||||
### Выключить/включить
|
|
||||||
|
|
||||||
#### Выключить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Disable account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: disabled
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Включить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Enable account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: confirmed
|
|
||||||
```
|
|
||||||
|
|
||||||
### Изменить права доступа
|
|
||||||
|
|
||||||
#### Отозвать
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Revoke user access rights
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
acl:
|
|
||||||
mode: revoke
|
|
||||||
users:
|
|
||||||
- id: "{{ user1_id }}"
|
|
||||||
- id: "{{ user2_id }}"
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Обновить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Update user access rights
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
acl:
|
|
||||||
mode: update
|
|
||||||
users:
|
|
||||||
- id: "{{ user1_id }}"
|
|
||||||
rights: R
|
|
||||||
- id: "{{ user2_id }}"
|
|
||||||
rights: RCX
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Привести в соответствие
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Match user access rights
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
acl:
|
|
||||||
mode: match
|
|
||||||
users:
|
|
||||||
- id: "{{ user1_id }}"
|
|
||||||
rights: ARCXDU
|
|
||||||
- id: "{{ user2_id }}"
|
|
||||||
rights: RCX
|
|
||||||
```
|
|
||||||
|
|
||||||
### Переименовать
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Rename account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
name: "{{ account_new_name }}"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Изменить квоты
|
|
||||||
|
|
||||||
#### На объём дисков
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Update account quota of disks size
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
quotas:
|
|
||||||
disks_size: 500
|
|
||||||
```
|
|
||||||
|
|
||||||
#### На количество внешних IP-адресов
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Update account quota of public IP amount
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
quotas:
|
|
||||||
public_ip: 10
|
|
||||||
```
|
|
||||||
|
|
||||||
### Выключить/включить отправку уведомлений о предоставлении доступа к ресурсам
|
|
||||||
|
|
||||||
#### Выключить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Disable sending access emails
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
access_emails: false
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Включить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Enable sending access emails
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
access_emails: true
|
|
||||||
```
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,92 +0,0 @@
|
|||||||
# Модуль decort_bservice
|
|
||||||
|
|
||||||
## Обзор модуля decort_bservice
|
|
||||||
|
|
||||||
Базовая служба (Basic Service) это несколько групп виртуальных серверов (compute), создаваемых и управляемых как единое целое.
|
|
||||||
|
|
||||||
Все compute(s) в группе имеют одни и те же характеристики (cpu/ram/boot disk size/OS image + сетевые подключения). Для разных групп эти характеристики могут быть разными.
|
|
||||||
|
|
||||||
Группы в составе Basic Service могут иметь отношения parent-child с другими группами. Наличие таких отношений определяет последовательность запуска групп ("сначала parents").
|
|
||||||
|
|
||||||
На основе ресурсов, предоставляемых и управляемых через Basic Service, могут создаваться другие сервисы.
|
|
||||||
|
|
||||||
`Для взаимодействия с группами виртуальных серверов используется модуль decort_group.`
|
|
||||||
|
|
||||||
Модуль decort_bservice предназначен для управления базовыми службами, в которых находятся группы виртуальных серверов.
|
|
||||||
Данный модуль позволяет:
|
|
||||||
- Создавать Basic Service
|
|
||||||
- Удалять Basic Service (безвозвратно).
|
|
||||||
- Включать/выключать Basic Service
|
|
||||||
- Запускать Basic Service
|
|
||||||
- Запрашивать информацию о Basic Service.
|
|
||||||
|
|
||||||
|
|
||||||
## Параметры модуля decort_bservice
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_bservice. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на Вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_bservice`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит ресурсная группа. При идентификации базовой службы и ресурсной группы по именам (см. параметры `name` и `rg_name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
|account_name | (string) | Имя аккаунта, которому принадлежит ресурсная группа. При идентификации базовой службы и ресурсной группы по именам (см. параметры `name` и `rg_name`) должен быть задан либо идентификатор (см. `account_id`), либо имя аккаунта. Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
|app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данная базовая служба. Данный параметр является обязательным.|
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`<br/>Данный параметр является обязательным для указанного режима.<br/>Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.<br/>Если этот параметр не определен в _playbook_, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
|oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`.|
|
|
||||||
|state | Значения: `absent`, `disabled`, `enabled`, `present`, `check`. <br> Default: `present`| Целевое состояние базовой службы. Значения `present` и `enabled` равнозначны.|
|
|
||||||
| started | (bool) <br> Default: `true` | Параметр, определяющий состояние добавленных виртуальных серверов в Basic Service. Запускать их, или нет. |
|
|
||||||
| name | (string) | Имя базовой службы. Данный параметр является обязательным при создании базовой службы и при изменении если не задан `id`. |
|
|
||||||
| sshuser | (string) | Имя пользователя, который будет создан на всех виртуальных серверах базовой службы. Используется в паре с `sshkey`. |
|
|
||||||
| sshkey | (string) | SSH ключ, который будет загружен на все виртуальные сервера базовой службы. Используется в паре с `sshuser`. |
|
|
||||||
| id | (int) | Уникальный целочисленный идентификатор базовой службы. Используется для поиска, изменения и удаления базовой службы. |
|
|
||||||
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы базовой службы. |
|
|
||||||
| rg_name | (string) | Имя ресурсной группы базовой службы. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_bservice
|
|
||||||
|
|
||||||
Модуль decort_bservice возвращает информацию о базовой службе в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
|id | int | Уникальный целочисленный идентификатор базовой службы.|
|
|
||||||
|name | string | Имя базовой службы.|
|
|
||||||
| techStatus | string | Технический статус базовой службы. |
|
|
||||||
|state | string | Статус базовой службы.|
|
|
||||||
| rg_id | int | Уникальный целочисленный идентификатор ресурсной группы, в которой находится базовая служба.|
|
|
||||||
| account_id | int | Уникальный целочисленный идентификатор аккаунта, в котором находится ресурсная группа.|
|
|
||||||
| groups | list | Список словарей с информацией о группах базовой службы.|
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_bservice
|
|
||||||
|
|
||||||
Данный пример создаёт базовую службу с именем databases.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Create Basic Service
|
|
||||||
decort_bservice:
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
jwt: "{{ auth_token }}"
|
|
||||||
name: databases
|
|
||||||
rg_id: "{{ rg_id }}"
|
|
||||||
register: db_bservice
|
|
||||||
```
|
|
||||||
|
|
||||||
Данный пример удаляет базовую службу с названием databases.
|
|
||||||
```
|
|
||||||
- name: Delete Basic Service
|
|
||||||
decort_bservice:
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
jwt: "{{ auth_token }}"
|
|
||||||
state: absent
|
|
||||||
name: databases
|
|
||||||
rg_id: "{{ rg_id }}"
|
|
||||||
register: db_bservice
|
|
||||||
```
|
|
||||||
@@ -1,177 +0,0 @@
|
|||||||
# Модуль decort_disk
|
|
||||||
## Обзор модуля decort_disk
|
|
||||||
|
|
||||||
Модуль decort_disk предназначен для управления дисками и позволяет производить с ними следующие действия:
|
|
||||||
- создавать
|
|
||||||
- удалять (в корзину или безвозвратно)
|
|
||||||
- восстановливать из корзины
|
|
||||||
- изменять:
|
|
||||||
- имя
|
|
||||||
- размер
|
|
||||||
- лимиты ввода/вывода
|
|
||||||
- включать/отключать общий доступ
|
|
||||||
|
|
||||||
|
|
||||||
Обратите внимание:
|
|
||||||
|
|
||||||
- Загрузочный диск для виртуальной машины создаётся и подключается автоматически в процессе создания этой машины.
|
|
||||||
- Модуль decort_disk служит для управления дополнительными дисками (т.н. data-дисками);
|
|
||||||
- Подключение дополнительных дисков, созданных посредством decort_disk, к виртуальным машинам выполняется с помощью модуля управления виртуальными машинами (см. модуль decort_kvmvm).
|
|
||||||
|
|
||||||
## Параметры модуля decort_disk
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_disk. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_disk`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
|account_name | (string) | Имя аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| annotation | (string)<br>Default: `Disk by decort_disk` | Текстовое описание диска. Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется.|
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
|app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данный диск. Данный параметр является обязательным.|
|
|
||||||
|id | (int) | Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры `name`, `account_name` и `account_id` игнорируются.|
|
|
||||||
| iops | (int)<br>Default: `2000` | Ограничение ввода/вывода диска. Используется при создании диска. |
|
|
||||||
| force_detach | (bool)<br/>Default: `false` | Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине.<br/>По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите `force_detach: true`. |
|
|
||||||
|jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
||||||
| limitIO | (dict) | Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду. Обратите внимание, что параметры с total не задаются вместе с read/write. Все возможные подпараметры можно увидеть в примерах. |
|
|
||||||
| name | (string) | Имя диска. Для идентификации диска требуется либо его `name` и информация об аккаунте (`account_id` или `account_name`), которому принадлежит диск, либо его `id`.|
|
|
||||||
|oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`.|
|
|
||||||
| permanently | (bool)<br>Default: `false` | Параметр, использующийся при удалении диска, при значении `true` - диск удалится навсегда, а при `false` - попадёт в корзину. |
|
|
||||||
| place_with | (int) | Идентификатор образа диска, из которого следует взять параметр `sep_id`, чтобы разместить данный диск на той же системе хранения данных, что и указанный образ диска. Данный параметр является опциональным и используется только на стадии создания диска. Если задан `place_with`, то `sep_id` игнорируется.|
|
|
||||||
| pool | (string) | Название пула на системе хранения данных, в рамках которой следует создать данный диск. Этот параметр используется только на стадии создания диска и игнорируется при операциях над уже существующими дисками. Параметр является опциональным, если не задан, то платформа будет использовать пул, который сконфигурирован на целевой системе хранения как пул по умолчанию. |
|
|
||||||
| reason | (string)<br>Default: `Managed by Ansible decort_disk` | Причина, по которой было выполнено какое-либо действие. В данном модуле используется только при удалении диска. |
|
|
||||||
| sep_id | (int) | Идентификатор системы хранения данных (Storage End-point). Данный параметр определяет систему хранения данных, на ресурсах которой создаётся диск. Используется только при создании диска и игнорируется при прочих операциях. Альтернативой данному параметру является `place_with`, позволяющий разместить диск на той же системе хранения, что и указанный образ диска, на базе которого создаётся виртуальная машина.|
|
|
||||||
| shareable | (bool)<br>Default: `false` | Включение/отключение общего доступа к диску.
|
|
||||||
| size | (int) | Размер диска в ГБ. Этот параметр является обязательным при создании диска. Если он задан для уже существующего диска, а текущий размер диска меньше заданного, то будет предпринята попытка увеличить размер диска. При прочих операциях данный параметр игнорируется.|
|
|
||||||
| state | (str)<br>Значения:<br>`present`<br>`absent`<br>Default: `present` | Целевое состояние диска. |
|
|
||||||
| type | (string)<br>Значения:<br>`B`<br>`D`<br>Default: `D` | Тип создаваемого диска. `B` - Boot/загрузочный, `D` - Data/с данными. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `false` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_disk
|
|
||||||
|
|
||||||
Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.|
|
|
||||||
| attached_to | int | Идентификатор виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то `attached_to: 0`|
|
|
||||||
| gid | int | Идентификатор физического кластера (Grid ID), на ресурсах которого создан диск.|
|
|
||||||
| id | int | Уникальный целочисленный идентификатор данного диска.|
|
|
||||||
| iotune | dict | Текущие ограничения ввода/вывода диска. |
|
|
||||||
| name | string | Имя диска. Обратите внимание, что имя диска не является уникальным с точки зрения системы хранения данных, на которой этот диск расположен.|
|
|
||||||
| pool | string | Имя пула на системе хранения данных, в котором размещаются ресурсы диска.|
|
|
||||||
|sep_id | int | Идентификатор системы хранения данных (Storage Endpoint), на которой размещаются ресурсы данного диска.|
|
|
||||||
| size | int | Размер диска в ГБ.|
|
|
||||||
| state | string | Текущий статус диска. |
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_disk
|
|
||||||
|
|
||||||
В данном примере создаётся диск размером 50ГБ (`size: 50`), с ограничением ввода/вывода в 2000 iops, на ресурсах системы хранения данных под номером 1 (`sep_id: 1`) в пуле "data01".
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
name: "DataDisk01"
|
|
||||||
size: 50
|
|
||||||
account_name: "MyAccount"
|
|
||||||
sep_id: 1
|
|
||||||
iops: 2000
|
|
||||||
annotation: "Disk example"
|
|
||||||
pool: data01
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
В следующих двух примерах для существующего диска с именем "DataDisk01" задаются все доступные лимиты на операции ввода/вывода.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
name: "DataDisk01"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
limitIO:
|
|
||||||
read_bytes_sec: 10000
|
|
||||||
write_bytes_sec: 5000
|
|
||||||
read_iops_sec и write_iops_sec
|
|
||||||
read_iops_sec: 2500
|
|
||||||
write_iops_sec: 1000
|
|
||||||
read_bytes_sec_max: 11000
|
|
||||||
write_bytes_sec_max: 6000
|
|
||||||
read_iops_sec_max: 3000
|
|
||||||
write_iops_sec_max: 1500
|
|
||||||
size_iops_sec: 1000
|
|
||||||
register: my_data_disk01
|
|
||||||
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
name: "DataDisk01"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
limitIO:
|
|
||||||
total_bytes_sec: 15000
|
|
||||||
total_iops_sec: 3500
|
|
||||||
total_bytes_sec_max: 17000
|
|
||||||
total_iops_sec_max: 4500
|
|
||||||
size_iops_sec: 1000
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере выполняется восстановление удаленного диска с id 111 из корзины.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
id: 111
|
|
||||||
size: 10
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере выполняется переименование диска с id 111 на новое имя "NewExampleDisk".
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
id: 111
|
|
||||||
name: "NewExampleDisk"
|
|
||||||
size: 10
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
|
|
||||||
Здесь результат работы модуля decort_disk записывается в переменную my_data_disk01. Для получения идентификатора диска, например, при подключении его к виртуальной машине, следует воспользоваться показанной ниже конструкцией:
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage compute
|
|
||||||
decort_kvmvm:
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
data_disks:
|
|
||||||
- "{{ my_data_disk01.facts.id }}"
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
```
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
# Модуль decort_group
|
|
||||||
## Обзор модуля decort_group
|
|
||||||
Модуль **decort_group** позволяет производить следующие действия над группами базовой службы:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- запустить/остановить
|
|
||||||
- подключить/отключить сети (для существующей группы только внутренние сети)
|
|
||||||
- изменить
|
|
||||||
- имя
|
|
||||||
- объём загрузочного диска
|
|
||||||
- количество ВМ
|
|
||||||
- роль
|
|
||||||
- количество виртуальных процессоров
|
|
||||||
- объём ОЗУ
|
|
||||||
- удалить (безвозвратно)
|
|
||||||
|
|
||||||
## Параметры модуля decort_group
|
|
||||||
Ниже приведен полный список параметров для модуля **decort_group**.
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Идентификатор аккаунта. При идентификации диска по имени (см. параметр `name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| account_name | (string) | Имя аккаунта. При идентификации диска по имени (см. параметр `name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br>`oauth2`<br>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| boot_disk | (int) | Обьём загрузочного диска. |
|
|
||||||
| bservice_id | (int) | Идентификатор базовой службы. Обязательный параметр. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| count | (int) | Количество виртуальных машин. Обязательный параметр. |
|
|
||||||
| cpu | (int) | Количество виртуальных процессоров. |
|
|
||||||
| driver | (string)<br>Default: `KVM_X86` | Драйвер. |
|
|
||||||
| id | (int) | Идентификатор группы. |
|
|
||||||
| image_id | (int) | Идентификатор образа. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| name | (str) | Имя группы. Обязательный параметр.
|
|
||||||
| networks | (list) | Список словарей, описывающих сети, которые должны быть подключены.<br>Ключи словаря:<br>• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)<br>• `id` (int) (обязательный) - идентификатор сети |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| ram | (int) | Объём оперативной памяти. |
|
|
||||||
| role | (string) | Тег роли. |
|
|
||||||
| state | (str)<br>Значения:<br>`present`<br>`absent`<br>`started`<br>`stopped`<br>`check`<br>Default: `present` |
|
|
||||||
| timeoutStart | (int) | Время отсрочки запуска группы после создания в секундах. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_group
|
|
||||||
|
|
||||||
Модуль **decort_group** возвращает информацию о диске в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Идентификатор аккаунта. |
|
|
||||||
| Computes | list | Список словарей, содержащих информацию о виртуальных машинах группы.<br>Ключи словаря:<br>• `id` (int) - идентификатор ВМ<br>• `ipAddresses` (list) - список IP-адресов ВМ<br>• `name` (str) - имя ВМ<br>• `osUsers` (list) - список словарей, содержащих учётные данные пользователей ОС ВМ по умолчанию; ключи: `login` (str) и `password` (str) |
|
|
||||||
| id | int | Идентификатор группы.|
|
|
||||||
| name | string | Имя группы.|
|
|
||||||
| rg_id | int | Идентификатор ресурсной группы. |
|
|
||||||
| state | string | Состояние группы. |
|
|
||||||
| techStatus | string | Технический статус группы. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_group
|
|
||||||
|
|
||||||
Данный пример создаёт группу с именем `test_group`.
|
|
||||||
```
|
|
||||||
- hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Create BS group
|
|
||||||
decort_group:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
boot_disk: 10
|
|
||||||
bservice_id: 1823
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
count: 2
|
|
||||||
cpu: 2
|
|
||||||
image_id: 518
|
|
||||||
name: test_group
|
|
||||||
networks:
|
|
||||||
- type: VINS
|
|
||||||
id: 1987
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
ram: 2
|
|
||||||
verify_ssl: false
|
|
||||||
register: group_test
|
|
||||||
```
|
|
||||||
|
|
||||||
Данный пример удаляет группу с именем `test_group`.
|
|
||||||
|
|
||||||
```
|
|
||||||
- hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Delete BS group
|
|
||||||
decort_group:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
bservice_id: 1823
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
name: test_group
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
state: absent
|
|
||||||
verify_ssl: False
|
|
||||||
register: group_test
|
|
||||||
```
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
# Вспомогательный модуль для получения авторизационного 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 }}"
|
|
||||||
```
|
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
# Модуль decort_k8s
|
|
||||||
## Обзор модуля decort_k8s
|
|
||||||
|
|
||||||
Модуль **decort_k8s** предназначен для выполнения следующих действий над кластерами Kubernetes:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- отключить/включить/запустить
|
|
||||||
- изменить группы Worker-узлов
|
|
||||||
- удалить (в корзину или безвозвратно)
|
|
||||||
- восстановить из корзины
|
|
||||||
|
|
||||||
## Параметры модуля decort_k8s
|
|
||||||
Ниже приведен полный список параметров для модуля **decort_k8s**:
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Идентификатор аккаунта. |
|
|
||||||
| account_name | (string) | Имя аккаунта. |
|
|
||||||
| additionalSANs | (list) | Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена.
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| cluster_conf | (dict) | Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| description | (string)<br>Default: `Created by decort ansible module` | Описание кластера. |
|
|
||||||
| extnet_id | (int)<br>Default: `0` | Идентификатор внешней сети. Если задан `0`, то внешняя сеть выбирается автоматически. Если задан параметр `vins_id`, то значение данного параметра будет проигнорировано. Если задан `extnet_only: false`, то внешняя сеть будет подключена к создаваемой внутренней сети, а если `extnet_only: true`, то либо напрямую к каждому узлу кластера (если `with_lb: false`), либо напрямую к балансировщику нагрузки (если `with_lb: true`). |
|
|
||||||
| extnet_only | (bool)<br>Default: `false` | Не использовать внутреннюю сеть, подключать напрямую к внешней. |
|
|
||||||
| getConfig | (bool)<br>Default: `false` | Получить данные конфигурации для доступа к кластеру Kubernetes. |
|
|
||||||
| ha_lb | (bool)<br>Default: `false` | Использовать схему высокой доступности для создаваемого балансировщика нагрузки (если `with_lb: true`). |
|
|
||||||
| id | (int) | Идентификатор кластера Kubernetes. |
|
|
||||||
| init_conf | (dict) | Словарь для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере. Позволяет настраивать такие процессы, как регистрация узла, настройка сети и другие задачи инициализации.
|
|
||||||
| join_conf | (dict) | Словарь для настройки поведения и параметров присоединения узла к кластеру. Включает в себя такие параметры, как control-plane-endpoint кластера, токен и certificate-key. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| k8ci_id | (int) | Идентификатор конфигурации кластера Kubernetes. Обязательный параметр. |
|
|
||||||
| kubeproxy_conf | (dict) | Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. |
|
|
||||||
| kublet_conf | (dict) | Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet. |
|
|
||||||
| master_count | (int)<br>Default: `1` | Количество Master-узлов. |
|
|
||||||
| master_cpu | (int)<br>Default: `2` | Количество виртуальных процессоров на Master-узле. |
|
|
||||||
| master_disk | (int)<br>Default: `10` | Объём загрузочного диска на Master-узле. |
|
|
||||||
| master_pool | (str) | Пул СХД, заданной параметром `master_sepid`. |
|
|
||||||
| master_ram | (int)<br>Default: `2048` | Объём оперативной памяти на Master-узле. |
|
|
||||||
| master_sepid | (int) | Идентификатор СХД для Master-узла. Если не задан, то используется СХД образа Master-узла. |
|
|
||||||
| name | (string) | Имя кластера Kubernetes. |
|
|
||||||
| network_plugin | (str)<br>Значения:<br>`flannel`<br>`calico`<br>`weavenet`<br>Default: `flannel` | CNI plugin (модуль для управления сетевыми интерфейсами контейнера). Возможные значения могут быть ограничены в используемой конфигурации кластера Kubernetes (параметр `k8ci_id`) |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| oidc_cert | (raw) | Сертификат X.509 для OIDC-провайдера.
|
|
||||||
| permanent | (bool)<br>Default: `false` | Если выполняется удаление, то выполнить безвозвратное удаление (минуя корзину). |
|
|
||||||
| rg_id | (int) | Идентификатор ресурсной группы. |
|
|
||||||
| rg_name | (str) | Имя ресурсной группы. |
|
|
||||||
| started | (bool)<br>Default: `true` | Автоматический запуск кластера после его создания. |
|
|
||||||
| state | (string)<br>Значения:<br>`present`<br>`absent`<br>`enabled`<br>`disabled`<br>`check`<br>Default: `present` | Целевое состояние кластера. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| vins_id | (int) | Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано `extnet_only: true`, то параметр игнорируется.
|
|
||||||
| with_lb | (bool)<br>Default: `true` | Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. В ином случае каждый узел получит отдельный адрес из внешней сети.
|
|
||||||
| workers | (list) | Обязательный параметр. Список словарей, описывающих группы Worker-узлов.<br>Ключи словаря:<br>• `annotations` (list) (необязательный) - список строк с annotations в формате: `key1=value1`<br>• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init<br>• `cpu` (int) (обязательный) - количество виртуальных процессоров на узле<br>• `disk` (int) (обязательный) - объём загрузочного диска на узле<br>• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`<br>• `name` (string) (обязательный) - имя группы Worker-узлов<br>• `num` (int) (обязательный) - количество узлов<br>• `pool` (str) (обязательный) - пул СХД, заданной ключом `sep_id`<br>• `ram` (int) (обязательный) - объём оперативной памяти на узле<br>• `sep_id` (int) (обязательный) - идентификатор СХД; если задать `null`, то используется СХД образа узла<br>• `taints` (list) (необязательный) - список строк с taints в формате: `key1=value1:NoSchedule` |
|
|
||||||
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_k8s
|
|
||||||
|
|
||||||
Модуль **decort_k8s** возвращает информацию о кластере в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Идентификатор аккаунта. |
|
|
||||||
| config | str | Kuber config кластера.
|
|
||||||
| id | int | Идентификатор кластера. |
|
|
||||||
| k8s_Masters | dict | Словарь с информацией о группе Master-узлов.<br>Ключи словаря:<br>• `cpu` (int) - количество виртуальных процессоров<br>• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ<br>• `disk` (int) - объём загрузочного диска<br>• `id` (int) - идентификатор группы<br>• `name` (str) - имя группы<br>• `num` (int) - количество узлов<br>• `ram` (int) - объём оперативной памяти
|
|
||||||
| k8s_Workers | dict | Список словарей с информацией о группах Worker-узлов.<br>Ключи словаря:<br>• `cpu` (int) - количество виртуальных процессоров<br>• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ<br>• `disk` (int) - объём загрузочного диска<br>• `id` (int) - идентификатор группы<br>• `labels` (list) - список строк с labels<br>• `name` (str) - имя группы<br>• `num` (int) - количество узлов<br>• `ram` (int) - объём оперативной памяти<br>• `taints` (list) - список строк с taints
|
|
||||||
| name | string | Имя кластера. |
|
|
||||||
| rg_id | int | Идентификатор ресурсной группы. |
|
|
||||||
| state | string | Статус кластера. |
|
|
||||||
| techStatus | string | Технический статус кластера. |
|
|
||||||
| vins_id | int | Идентификатор внутренней сети кластера. |
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_k8s
|
|
||||||
|
|
||||||
|
|
||||||
Пример создания кластера Kubernetes с именем `cluster-test` с получением Kuber config.
|
|
||||||
```
|
|
||||||
- name: Create a k8s cluster named cluster-test
|
|
||||||
decort_k8s:
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
getConfig: true
|
|
||||||
jwt: "{{ token.jwt }}"
|
|
||||||
k8ci_id: 18
|
|
||||||
name: cluster-test
|
|
||||||
rg_id: 125
|
|
||||||
workers:
|
|
||||||
- cpu: 10
|
|
||||||
disk: 10
|
|
||||||
name: wg1
|
|
||||||
num: 1
|
|
||||||
pool: null
|
|
||||||
ram: 1024
|
|
||||||
sep_id: null
|
|
||||||
- cpu: 10
|
|
||||||
disk: 10
|
|
||||||
name: wg2
|
|
||||||
num: 2
|
|
||||||
pool: null
|
|
||||||
ram: 1024
|
|
||||||
sep_id: null
|
|
||||||
register: k8s_cluster
|
|
||||||
```
|
|
||||||
@@ -1,106 +0,0 @@
|
|||||||
# Модуль decort_kvmvm
|
|
||||||
## Обзор модуля decort_kvmvm
|
|
||||||
|
|
||||||
Модуль **decort_kvmvm** предназначен для выполнения следующих действий над виртуальными машинами:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- остановить/приостановить/запустить
|
|
||||||
- подключить/отключить диски с данными
|
|
||||||
- подключить/отключить сети
|
|
||||||
- изменить
|
|
||||||
- объём загрузочного диска в большую сторону
|
|
||||||
- количество CPU
|
|
||||||
- объём ОЗУ
|
|
||||||
- тэги
|
|
||||||
- affinity метку
|
|
||||||
- affinity правила
|
|
||||||
- anti-affinity правила
|
|
||||||
- удалить (безвозвратно)
|
|
||||||
|
|
||||||
## Параметры модуля decort_kvmvm
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля **decort_kvmvm**. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_kvmvm`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| aaff_rule | (list) | Список словарей, описывающих anti-affinity правила.<br>Ключи словаря:<br>• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)<br>• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`<br>• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)<br>• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила<br>• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`)
|
|
||||||
| account_id | (int) | Идентификатор аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией `account_id` и `rg_name`. Если задан `account_id`, то `account_name` игнорируется.|
|
|
||||||
| account_name | (string) | Имя аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией `account_name` и `rg_name`. Если задан `account_id`, то `account_name` игнорируется. |
|
|
||||||
| aff_rule | (list) | Список словарей, описывающих affinity правила.<br>Ключи словаря:<br>• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)<br>• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`<br>• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)<br>• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила<br>• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`)
|
|
||||||
| affinity_label | (str) | Метка affinity.
|
|
||||||
| annotation | (string) | Опциональное описание виртуальной машины. Этот параметр используется только при создании.|
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DCORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| arch | (str)<br>Значения:<br/>`X86_64`<br>`PPC64_LE`<br>Default: `X86_64` | Архитектура виртуальной машины. |
|
|
||||||
| authenticator | (str)<br>Значения:<br>`oauth2`<br>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| boot_disk | (int) | Объём загрузочного диска виртуальной машины в ГБ. |
|
|
||||||
| ci_user_data | (dict) | конфигурация для cloud-init
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данная виртуальная машина. Данный параметр является обязательным. |
|
|
||||||
| cpu | (int) | Количество виртуальных процессоров, выделяемых виртуальной машине. |
|
|
||||||
| data_disks | (list) | Список идентификаторов дисков, которые следует подключить к данной виртуальной машине как дополнительные. |
|
|
||||||
| id | (int) | Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива – по комбинации `name`, `rg_name` и `account_name`). Если при вызове модуля **decort_kvmvm** существующая ВМ идентифицируется по `id`, то параметры `account_id`, `account_name`, `rg_id` и `rg_name` игнорируются. |
|
|
||||||
| image_id | (int) | Уникальный цифровой идентификатор образа, на базе которого следует создать виртуальную машину. При создании задать этот параметр или параметр `image_name`. При любых других операциях данные параметры игнорируются. Если заданы оба этих параметра (`image_id` и `image_name`), то `image_name` игнорируется. |
|
|
||||||
| image_name | (string) | Название образа, на базе которого следует создать ВМ. При создании требуется задать этот параметр или параметр `image_id`. При любых других операциях данные параметры игнорируются. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_JWT`.
|
|
||||||
| name | (string) | Имя ВМ. Чтобы модуль **decort_kvmvm** мог управлять сервером по его названию, также необходимо задать комбинацию `account_name` и `rg_name` или `rg_id`. Если для существующей ВМ указаны и `name`, и `id`, то параметр `name` игнорируется и идентификация сервера выполняется по `id`.|
|
|
||||||
| networks | (list) | Список словарей, описывающих сети для подключения к ВМ.<br>Ключи словаря:<br>• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)<br>• `id` (int) (обязательный) - идентификатор сети<br>• `ip_addr` (string) (необязательный) - IP-адрес, используемый для подключения к данной сети. |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| pool | (str) | Пул СХД, заданной параметром `sep_id`. Если пул не задан, то он будет выбран платформой.
|
|
||||||
| ram | (int) | Объем оперативной памяти в МБ, выделенной данной ВМ. Параметр является обязательным при создании. Если указать его для уже существующей ВМ, то будет выполнена попытка изменить объем выделенной памяти. |
|
|
||||||
| rg_id | (int) | Уникальный цифровой идентификатор уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ (альтернативой является задание комбинации `account_name` и `rg_name`).|
|
|
||||||
| rg_name | (string) | Имя уже существующей ресурсной группы, в которой будет создаа новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ, когда задается пара `account_name` и `rg_name` (альтернативой является задание `rg_id`). Если заданы и `rg_id`, и `rg_name`, то параметр `rg_name` игнорируется.|
|
|
||||||
| sep_id | (int) | Идентификатор СХД для загрузочного диска ВМ. Если не задан, то будет использоваться СХД образа.
|
|
||||||
| ssh_key | (string) | Открытая часть SSH-ключа, который необходимо добавить на создаваемую ВМ для пользователя, заданного параметром `ssh_key_user`. Данный параметр применим только для ОС Linux, используется только при создании и игнорируется при других операциях. |
|
|
||||||
| ssh_key_user | (string) | Имя пользователя в гостевой ОС (только для Linux), для которого добавляется SSH-ключ, заданный параметром `ssh_key`. Данный параметр является обязательным, если задан `ssh_key`. Используется только при создании и игнорируется при других операциях. |
|
|
||||||
| state | (str)<br>Значения:<br>`present`<br>`absent`<br>`poweredon`<br>`poweredoff`<br>`halted`<br>`paused`<br>`check`<br>Default: `present` | Целевое состояние ВМ.<br> Значение `halted` - синоним к `poweredoff`. Значения `present` и `poweredon` равнозначны. <br>Значение `check` вызывает модуль в _read-only_ режиме и считывает характеристики существующей ВМ. |
|
|
||||||
| tag | (dict) | Словарь, пары ключ-значение которого, описывают тэги для ВМ. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_kvmvm
|
|
||||||
|
|
||||||
Модуль **decort_kvmvm** возвращает информацию о виртуальной машине в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Идентификатор аккаунта. |
|
|
||||||
| arch | string | Архитектура ВМ. |
|
|
||||||
| cpu | int | Количество виртуальных процессоров. |
|
|
||||||
| data_disks | list | Список идентификаторов дисков с данными, подключенных к ВМ. |
|
|
||||||
| disk_size | int | Размер загрузочного диска в ГБ. |
|
|
||||||
| id | int | Идентификатор ВМ. |
|
|
||||||
| image_id | id | Идентификатор образа.
|
|
||||||
| name | string | Имя ВМ. |
|
|
||||||
| password | string | Пароль пользователя ОС по умолчанию. |
|
|
||||||
| private_ips | list | Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям. |
|
|
||||||
| public_ips | list | Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям. |
|
|
||||||
| ram | int | Объём ОЗУ ВМ в МБ. |
|
|
||||||
| rg_id | int | Идентификатор ресурсной группы, которой принадлежит данная ВМ. |
|
|
||||||
| state | string | Состояние ВМ.|
|
|
||||||
| tags | dict | Словарь, пары ключ-значение которого, описывают тэги ВМ.
|
|
||||||
| tech_status | str | Технический статус ВМ.
|
|
||||||
| username | string | Имя пользователя ОС по умолчанию. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_kvmvm
|
|
||||||
|
|
||||||
В данном примере создается ВМ с именем MyFirstVM.
|
|
||||||
```
|
|
||||||
- name: Сreate VM
|
|
||||||
decort_kvmvm:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
cpu: 2
|
|
||||||
image_id: "{{ my_img.facts.id }}"
|
|
||||||
name: MyFirstVM
|
|
||||||
networks:
|
|
||||||
- type: VINS
|
|
||||||
id: "{{ my_vins.facts.id }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
ram: 4096
|
|
||||||
rg_id: "{{ my_rg.facts.id }}"
|
|
||||||
register: my_vm
|
|
||||||
```
|
|
||||||
@@ -1,893 +0,0 @@
|
|||||||
# Модуль decort_lb
|
|
||||||
## Обзор модуля decort_lb
|
|
||||||
|
|
||||||
Модуль **decort_lb** предназначен для выполнения следующих действий над балансировщиками нагрузки:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- отключить/включить/запустить/перезапустить
|
|
||||||
- изменить конфигурации backend и frontend
|
|
||||||
- удалить (в корзину или безвозвратно)
|
|
||||||
- восстановить из корзины
|
|
||||||
|
|
||||||
## Параметры модуля decort_lb
|
|
||||||
Ниже приведен полный список параметров для модуля **decort_lb**:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="3">Параметр</th>
|
|
||||||
<th>Тип</th>
|
|
||||||
<th>Описание</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
account_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор аккаунта.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
account_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя аккаунта.
|
|
||||||
<br> Может быть альтернативой параметру <code>account_id</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
annotation
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Default: <code>Managed by Ansible module decort_lb</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Описание балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
app_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор приложения, использующийся для подключения к контроллеру
|
|
||||||
облачной платформы DECORT в режиме <code>authenticator: oauth2</code>.
|
|
||||||
Данный параметр является обязательным для указанного режима. Если
|
|
||||||
параметр не задан в playbook, модуль будет использовать значение
|
|
||||||
переменной окружения <code>DECORT_APP_ID</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
app_secret
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Секретный ключ приложения, который используется для подключения к
|
|
||||||
контроллеру облачной платформы DECORT в режиме
|
|
||||||
<code>authenticator: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Так как он содержит секретную
|
|
||||||
информацию, то его не рекомендуется задавать непосредственно в
|
|
||||||
playbook. Если параметр не задан в playbook, то модуль будет
|
|
||||||
использовать значение переменной окружения
|
|
||||||
<code>DECORT_APP_SECRET</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
authenticator
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br/><code>oauth2</code>
|
|
||||||
<br/><code>jwt</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим аутентификации при подключении к контроллеру облачной платформы
|
|
||||||
DECORT. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
backends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
algorithm
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>leastconn</code>
|
|
||||||
<br><code>roundrobin</code>
|
|
||||||
<br><code>static-rr</code>
|
|
||||||
<br>Default: <code>roundrobin</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Используемый алгоритм.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
<a name="backend_default_settings">
|
|
||||||
default_settings
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Cловарь, описывающий параметры по умолчанию для backend-серверов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
downinter
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>1000</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Интервал в миллисекундах между двумя последовательными проверками
|
|
||||||
доступности сервера, который считается недоступным.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
fall
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>2</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество последовательных неудачных проверок доступности, после
|
|
||||||
которых сервер, ранее считавшийся доступным, начинает считаться
|
|
||||||
недоступным и временно исключается из схемы балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
inter
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>5000</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Интервал в миллисекундах между двумя последовательными проверками
|
|
||||||
доступности сервера, который считается доступным.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
maxconn
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>250</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Лимит одновременных подключений к серверу. При достижении этого лимита
|
|
||||||
сервер временно исключается из схемы балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
maxqueue
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>256</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Лимит соединений, ожидающих в очереди. Когда этот предел будет
|
|
||||||
достигнут, все последующие подключения будут перенаправлены
|
|
||||||
на другие серверы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
rise
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>2</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество проверок, которые должен пройти сервер, считавшийся
|
|
||||||
недоступным, чтобы начать считаться доступным и снова быть
|
|
||||||
включенным в схему балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
slowstart
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>60000</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Интервал в миллисекундах с момента когда сервер начинает считаться
|
|
||||||
доступным, по истечении которого количество фактически разрешенных
|
|
||||||
подключений к этому серверу будет возвращено до 100% от
|
|
||||||
установленного лимита.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
weight
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>100</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Вес сервера для использования в алгоритмах балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название backend. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
controller_url
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL контроллера, соответствующего экземпляру облачной платформы
|
|
||||||
DECORT. Данный параметр является обязательным.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
ext_net_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор внешней сети.
|
|
||||||
<br>Может быть не задан, если задан <code>vins_id</code> -
|
|
||||||
в таком случае балансировщик будет подключён только к
|
|
||||||
внутренней сети.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
<a name="frontends">
|
|
||||||
frontends
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации frontend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
backend
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название используемого backend. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
bindings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации binding.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
address
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
IP-адрес.
|
|
||||||
<br>Если не задан, то будет использоваться основной IP-адрес
|
|
||||||
балансировщика во внешней сети или, если подключена только
|
|
||||||
внутренняя сеть, основной IP-адрес балансировщика во внутренней сети.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
port
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>1</code>-<code>65535</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Порт. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
ha_lb
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
bool
|
|
||||||
<br>Default: <code>false</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Использовать схему высокой доступности для создаваемого балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
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="3">
|
|
||||||
lb_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор балансировщика нагрузки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
lb_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя балансировщика. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
oauth2_url
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL авторизационного сервера, работающего по протоколу Oauth2,
|
|
||||||
который должен использоваться в режиме
|
|
||||||
<code>authenticator: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Если параметр не задан в
|
|
||||||
playbook, модуль будет использовать значение переменной
|
|
||||||
окружения <code>DECORT_OAUTH2_URL</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
permanently
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
<br>Default: <code>false</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Если выполняется удаление, то выполнить безвозвратное удаление
|
|
||||||
(минуя корзину).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
rg_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор ресурсной группы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
rg_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя ресурсной группы.
|
|
||||||
<br> В комбинации с заданным аккаунтов может быть альтернативой
|
|
||||||
параметру <code>rg_id</code>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
servers
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend-серверов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
address
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
IP-адрес. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
backends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих параметры backend-сервера для разных
|
|
||||||
конфигураций backend.
|
|
||||||
<br>Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
check
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>enabled</code>
|
|
||||||
<br><code>disabled</code>
|
|
||||||
<br>Default: <code>enabled</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Проверка доступности сервера.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название конфигурации backend. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
port
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>1</code>-<code>65535</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Порт. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
server_settings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Словарь, описывающий параметры backend-сервера.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словаря
|
|
||||||
<a href=#backend_default_settings>
|
|
||||||
default_settings
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
state
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>present</code>
|
|
||||||
<br><code>absent</code>
|
|
||||||
<br><code>enabled</code>
|
|
||||||
<br><code>disabled</code>
|
|
||||||
<br><code>restart</code>
|
|
||||||
<br>Default: <code>present</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевое состояние балансировщика нагрузки.
|
|
||||||
<br>Выполнение с <code>state=restart</code> позволяет выполнить
|
|
||||||
перезапуск балансировщика, соответственно, всегда возвращает
|
|
||||||
<code>changed: true</code>.
|
|
||||||
<br>Значения <code>present</code> и <code>enabled</code> равнозначны
|
|
||||||
и соответствуют включённому и запущенному балансировщику.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
verify_ssl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
<br>Default: <code>true</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Позволяет отключить проверку SSL сертификатов при выполнении API
|
|
||||||
вызовов в адрес контроллера облачной инфраструктуры, например,
|
|
||||||
при работе с изолированной облачной инфраструктурой, использующей
|
|
||||||
самоподписанные сертификаты. Применяйте данный параметр с
|
|
||||||
осторожностью, предпочтительно в защищенных средах.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
vins_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор внутренней сети.
|
|
||||||
<br>Может быть не задан, если задан <code>ext_net_id</code> -
|
|
||||||
в таком случае балансировщик будет подключён только к
|
|
||||||
внешней сети.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
vins_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя внутренней сети.
|
|
||||||
<br> В комбинации с заданной РГ может быть альтернативой для
|
|
||||||
параметра <code>vins_id</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_lb
|
|
||||||
|
|
||||||
Модуль **decort_lb** возвращает информацию о балансировщике в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">
|
|
||||||
Ключ
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Тип
|
|
||||||
<br>данных
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Описание
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
backends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
algorithm
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Используемый алгоритм.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название конфигурации backend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
serverDefaultSettings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Cловарь, описывающий параметры по умолчанию для backend-серверов.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словаря
|
|
||||||
<a href=#backend_default_settings>
|
|
||||||
default_settings
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
servers
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend-серверов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
address
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
IP-адрес.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
check
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Проверка доступности сервера.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
port
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Порт.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
serverSettings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Cловарь, описывающий параметры backend-сервера.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словаря
|
|
||||||
<a href=#backend_default_settings>
|
|
||||||
default_settings
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
frontends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации frontend.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словарей списка
|
|
||||||
<a href=#frontends>
|
|
||||||
frontends
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
gid
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор физического кластера (Grid ID).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
rg_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор ресурсной группы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
state
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Статус балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
@@ -1,132 +0,0 @@
|
|||||||
# Модуль decort_osimage
|
|
||||||
## Обзор модуля decort_osimage
|
|
||||||
|
|
||||||
Модуль decort_osimage предназначен для выполнения следующих действий над образами, созданными в облачной платформе DECORT:
|
|
||||||
- шаблонные образы:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- изменить имя
|
|
||||||
- удалить
|
|
||||||
- виртуальные образы
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- изменить
|
|
||||||
- имя
|
|
||||||
- целевой образ
|
|
||||||
|
|
||||||
## Параметры модуля decort_osimage
|
|
||||||
Ниже приведен полный список параметров для модуля decort_osimage.
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_Id | (int) | Уникальный целочисленный идентификатор аккаунта. Используется для поиска образов, а тажке для их создания. |
|
|
||||||
| account_name | (string) | Имя аккаунта. Используется для получения уникального целочисленного идентификатора аккаунта. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| architecture | (string)<br>Default: `X86_64` | Архитектура микропроцессора, для которой предназначен образ. Используется при создании образа.|
|
|
||||||
| authenticator | (str)<br>Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| boottype | (string)<br>Default: `uefi` | Тип загрузки образа. Используется при создании образа.|
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) образ. Данный параметр является обязательным. |
|
|
||||||
| drivers | (string)<br>Default: `KVM_X86` | Тип виртуальных машин, подходящих для образа. Используется при создании образа.|
|
|
||||||
| hotresize | (bool)<br>Default: `false` | Поддерживает ли образ "горячее" изменение размера. По умолчанию установлено `false`. Используется при создании образа операционной системы. |
|
|
||||||
| image_id | (int) | Идентификатор шаблонного образа.
|
|
||||||
| image_name | (str) | Имя шаблонного образа.
|
|
||||||
| image_password | (string) | Опциональный пароль для образа. Используется при создании образа.|
|
|
||||||
| image_username | (string) | Опциональное имя пользователя для образа. Используется при создании образа. |
|
|
||||||
| imagetype | (string)<br>Default: `linux` | Тип образа. Используется при создании образа.|
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| passwordDL | (string) | Пароль для скачивания по URL-адресу. Используется при создании образа. |
|
|
||||||
| pool | (str) | Имя пула СХД. Используется для поиска существующего образа.
|
|
||||||
| poolName | (string) | Имя пула СХД. Используется при создании образа. |
|
|
||||||
| sepId | (integer) | Уникальный целочисленный идентификатор СХД. Используется при создании образа. |
|
|
||||||
| sep_id | (int) | Идентификатор СХД. Используется для поиска существующего образа.
|
|
||||||
| state | (string)<br>Значения:<br>`present`<br>`absent`<br>Default: `present` | Целевое состояние образа. `present` - существует, `absent` - удалён. |
|
|
||||||
| url | (string) | URL-адрес, с которого будет загружен образ. Используется при создании образа.|
|
|
||||||
| usernameDL | (string) | Имя пользователя для загрузки образа с заданного URL-адреса. Используется при создании образа. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| virt_id | (integer) | Уникальный целочисленный идентификатор виртуального образа. Может использоваться для получения информации о виртуальном образе, а также для привязки к нему другого образа.|
|
|
||||||
| virt_name | (string) | Имя виртуального образа. Используется для получения `virt_id`, а в последствии информации о виртуальном образе, а также для создания виртуального образа и привязки к нему другого образа.|
|
|
||||||
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_osimage
|
|
||||||
|
|
||||||
Модуль decort_osimage возвращает информацию об образе в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| accountId | int | Идентификатор аккаунта.
|
|
||||||
| id | int | Уникальный целочисленный идентификатор данного образа. |
|
|
||||||
| linkto | int | Уникальный целочисленный идентификатор образа, который привязан к данному виртуальному. |
|
|
||||||
| name | string | Имя образа. |
|
|
||||||
| pool | string | Имя пула на системе хранения данных, в котором находится данный образ.|
|
|
||||||
| sep_id | int | Идентификатор системы хранения данных, на которой хранится данный образ. |
|
|
||||||
| size | int | Размер образа в ГБ. |
|
|
||||||
| state | string | Текущий статус образа. |
|
|
||||||
| type | string | Тип образа. |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_osimage
|
|
||||||
|
|
||||||
|
|
||||||
Пример создания шаблонного образа с операционной системой Alpine Linux.
|
|
||||||
```
|
|
||||||
- name: Create template image
|
|
||||||
decort_osimage:
|
|
||||||
account_Id: 12345
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1
|
|
||||||
url: https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/cloud/nocloud_alpine-3.19.1-x86_64-uefi-cloudinit-r0.qcow2
|
|
||||||
verify_ssl: false
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
|
|
||||||
Пример получения информации о существующем шаблонном образе по его имени.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Get template image
|
|
||||||
decort_osimage:
|
|
||||||
account_Id: 12345
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1
|
|
||||||
verify_ssl: false
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
|
|
||||||
Пример создания виртуального образа. Также в случае, если виртуальный образ уже существует, но к нему привязан другой шаблонный образ, он привяжет к себе указанный в примере шаблонный образ.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Create virtual image
|
|
||||||
decort_osimage:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1
|
|
||||||
virt_name: alpine_last
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
Обратите внимание, что в данном примере можно использовать как `image_name`, так и `image_id`. Также можно использовать либо `virt_name`, либо `virt_id`.
|
|
||||||
|
|
||||||
Пример переименования образа.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Rename template image
|
|
||||||
decort_osimage:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1_new_name
|
|
||||||
image_id: 54321
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
# Модуль decort_pfw
|
|
||||||
## Обзор модуля decort_pfw
|
|
||||||
|
|
||||||
Модуль **decort_pfw** предназначен для настройки правил переадресации портов (port forwarding, destination NAT) на виртуальном маршрутизаторе заданной внутренней сети для заданной виртуальной машины.
|
|
||||||
Модуль поддерживает выполнение следующих действий над правилами:
|
|
||||||
- добавить
|
|
||||||
- получить информацию
|
|
||||||
- удалить
|
|
||||||
|
|
||||||
## Параметры модуля decort_pfw
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля **decort_pfw**. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_pfw`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| compute_id | (int) | Идентификатор виртуальной машины. IP-адрес, который данная ВМ имеет во внутренней сети, заданной параметром `vins_id`, будет использоваться как внутренний IP-адрес в правилах. Обязательный параметр. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| rules | (list) | Список словарей, описывающих правила переадресации портов для заданной ВМ (параметр `compute_id`) на виртуальном маршрутизаторе заданной внутренней сети (параметр `vins_id`).<br>Ключи словаря:<br>• `local_port` (int) (обязательный) - внутренний порт; значения: от `1` до `65535`<br>• `proto` (str) (обязательный) - протокол; значения: `tcp` или `udp`<br>• `public_port_end` (int) (необязательный) - верхняя граница диапазона внешних портов; значения: от значения ключа `public_port_start` до `65535`;<br>• `public_port_start` (int) (обязательный) - нижняя граница диапазона внешних портов; значения: от `1` до `65535` |
|
|
||||||
| state | (str)<br>Значения:<br/>`present`<br/>`absent`<br>Default: `present` | Целевое состояние правил.<br>Если `state=absent`, то, независимо от содержания параметра `rules`, будут удалены все правила для заданной ВМ (параметр `compute_id`) на виртуальном маршрутизаторе заданной внутренней сети (параметр `vins_id`). |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| vins_id | (int) | Идентификатор внутренней сети, на виртуальном маршрутизаторе которой настраиваются правила переадресации портов. Заданная ВМ (параметр `compute_id`) должна быть подключена к этой сети. Обязательный параметр. |
|
|
||||||
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_pfw
|
|
||||||
|
|
||||||
Модуль **decort_pfw** возвращает информацию о правилах переадресации портов и сопутствующую информацию в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| compute_id | int | Идентификатор ВМ. |
|
|
||||||
| public_ip | string | IP-адрес во внешней сети, настроенный на виртуальном маршрутизаторе внутренней сети. |
|
|
||||||
| rules | list | Список словарей, описывающих правила переадресации портов.<br>Ключи словаря:<br>• `id` (int) - идентификатор правила<br>• `localIp` (str) - IP-адрес ВМ<br>• `localPort` (int) - внутренний порт<br>• `protocol` (str) - протокол<br>• `publicPortEnd` (int) - верхняя граница диапазона внешних портов<br>• `publicPortStart` (int) - нижняя граница диапазона внешних портов<br>• `vmId` (int) - идентификатор ВМ<br>• `vmName` (str) - имя ВМ |
|
|
||||||
| state | string | Статус правил. Значения: `PRESENT` или `ABSENT`. |
|
|
||||||
| vins_id | int | Идентификатор внутренней сети. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_pfw
|
|
||||||
|
|
||||||
В данном примере для существующей ВМ (параметр `compute_id`), подключённой к внутренней сети (параметр `vins_id`), настраиваются два правила переадресации портов:
|
|
||||||
|
|
||||||
- Правило для одного порта: внешний порт `30022` на внутренний порт `22` по протоколу `tcp`.
|
|
||||||
- Правило для диапазона портов: внешние порты с `30080` по `30085` на внутренние порты с `30080` по протоколу `udp`.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Add port forwarding rules
|
|
||||||
decort_pfw:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
compute_id: "{{ my_vm.facts.id }}"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
rules:
|
|
||||||
- local_port: 22
|
|
||||||
proto: tcp
|
|
||||||
public_port_start: 30022
|
|
||||||
- local_port: 30080
|
|
||||||
proto: udp
|
|
||||||
public_port_end: 30085
|
|
||||||
public_port_start: 30080
|
|
||||||
vins_id: "{{ my_vins.facts.id }}"
|
|
||||||
register: my_pfw_rules
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере результат выполнения модуля **decort_pfw** записывается в переменную `my_pfw_rules`. Для доступа к списку правил используйте следующую конструкцию:
|
|
||||||
|
|
||||||
```
|
|
||||||
"{{ my_pfw_rules.facts.rules }}"
|
|
||||||
```
|
|
||||||
@@ -1,200 +0,0 @@
|
|||||||
# Модуль decort_rg
|
|
||||||
|
|
||||||
## Обзор модуля decort_rg
|
|
||||||
|
|
||||||
Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет:
|
|
||||||
|
|
||||||
- создавать ресурсные группы
|
|
||||||
- удалять ресурсные группы (в корзину или безвозвратно)
|
|
||||||
- восстанавливать ресурсные группы из корзины
|
|
||||||
- включать/отключать ресурсные группы
|
|
||||||
- запрашивать информацию об уже существующих ресурсных группах
|
|
||||||
- изменять ресурсные группы:
|
|
||||||
- переименовывать
|
|
||||||
- настраивать квоты
|
|
||||||
- задавать стандартную сеть
|
|
||||||
- настраивать права доступа для пользователей
|
|
||||||
|
|
||||||
## Параметры модуля decort_rg
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_rg. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: `ansible-doc -t module decort_rg`
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
|----------|--------------------------|----------|
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то account_name игнорируется. |
|
|
||||||
| account_name | (string) | Имя аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| access | (dict) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе. |
|
|
||||||
| annotation | (string) | Текстовое описание ресурсной группы. Данный параметр является опциональным и учитывается только при создании ресурсной группы, а при всех прочих операциях игнорируется. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения DECORT_APP_SECRET. |
|
|
||||||
| authenticator | Значения:<br>`oauth2`<br>`jwt`| Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным.|
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данная ресурсная группа. Данный параметр является обязательным. |
|
|
||||||
| def_netType | (string) <br>Значения:<br>`PRIVATE`<br>`PUBLIC`<br>`NONE`<br>Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. |
|
|
||||||
| def_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. |
|
|
||||||
| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети. Используется при создании РГ для подключения внешней сети к внутренней сети, которая будет создана и задана как сеть по умолчанию для РГ. |
|
|
||||||
| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. |
|
|
||||||
| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. |
|
|
||||||
| ipcidr | (string) | IP-адрес внутренней сети. Используется при создании ресурсной группы, чтобы задать IP-адрес сети для создаваемой внутренней сети, которая создастся вместе с ресурсной группой. Используется при параметре `def_netType` в значении `PRIVATE`. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`<br>Данный параметр является обязательным для указанного режима.<br>Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.<br>Если этот параметр не определен в _playbook_, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| rename | (string) | Новое имя ресурсной группы. Используется при переименовании ресурсной группы. |
|
|
||||||
| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. |
|
|
||||||
| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. |
|
|
||||||
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` |
|
|
||||||
| state | Значения:<br>`present`<br>`absent`<br>`enabled`<br>`disabled`<br>Default: `present` | Целевое состояние ресурсной группы. |
|
|
||||||
| permanently | (bool)<br>Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_rg
|
|
||||||
|
|
||||||
Модуль decort_rg возвращает информацию о ресурсной группе в виде словаря facts со следующими ключами:
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
|------|------------|----------|
|
|
||||||
| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная ресурсная группа. |
|
|
||||||
| gid | int | Идентификатор физического кластера (Grid ID), на базе которого развёрнута ресурсная группа. |
|
|
||||||
| id | int | Уникальный целочисленный идентификатор ресурсной группы. |
|
|
||||||
| name | string | Имя ресурсной группы. Обратите внимание, что это имя уникально только в рамках аккаунта, которому принадлежит данная ресурсная группа. |
|
|
||||||
| state | string | Текущее состояние ресурсной группы. |
|
|
||||||
| quota | dict | Текущие квоты ресурсной группы. |
|
|
||||||
| resTypes | list | Список типов ресурсов, разрешенных к созданию в данной ресурсной группе. |
|
|
||||||
| defNetId | int | Уникальный целочисленный идентификатор сети по умолчанию в данной ресурсной группе. |
|
|
||||||
| defNetType | string | Тип сети по умолчанию в данной ресурсной группе. |
|
|
||||||
| ViNS | list | Список идентификаторов внутренних сетей ресурсной группы. |
|
|
||||||
| computes | list | Список идентификаторов виртуальных машин ресурсной группы. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_rg
|
|
||||||
|
|
||||||
В данном примере показано, как создать ресурсную группу по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как создать ресурсную группу по имени MyRG в аккаунте MyAccount, также задать квоты и выдать права на чтение пользователю MyUser.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
access:
|
|
||||||
action: "grant"
|
|
||||||
user: "MyUser"
|
|
||||||
right: "R"
|
|
||||||
quotas:
|
|
||||||
cpu: 16
|
|
||||||
ram: 16384
|
|
||||||
disk: 100
|
|
||||||
ext_ips: 20
|
|
||||||
net_transfer: 1000
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как выдать доступ на чтение и запись пользователю MyUser в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
access:
|
|
||||||
action: "grant"
|
|
||||||
user: "MyUser"
|
|
||||||
right: "RCX"
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как сменить квоту в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
quotas:
|
|
||||||
cpu: 16
|
|
||||||
ram: 16384
|
|
||||||
disk: 100
|
|
||||||
ext_ips: 20
|
|
||||||
net_transfer: 1000
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как изменить сеть по умолчанию в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
def_netType: "PRIVATE"
|
|
||||||
def_netId: 99
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как переименовать ресурсную группу по имени MyRG на новое имя "NewRg" в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
rename: "NewRg"
|
|
||||||
rg_id: 27
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере результат работы модуля decort_rg записывается в переменную my_rg.
|
|
||||||
|
|
||||||
Модули DECORT, которым для работы требуется ресурсная группа, в качестве одного из параметров, как правило, принимают идентификатор `rg_id`. Так, например, используя модуль `decort_kvmvm` для создания виртуального сервера необходимо указать ресурсную группу, к которой будет принадлежать этот виртуальный сервер. Сделать это можно следующим образом:
|
|
||||||
|
|
||||||
```
|
|
||||||
<прочие детали опущены>
|
|
||||||
rg_id: "{{ my_rg.facts.id }}"
|
|
||||||
```
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,120 +0,0 @@
|
|||||||
# Модуль decort_vins
|
|
||||||
## Обзор модуля decort_vins
|
|
||||||
|
|
||||||
Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия:
|
|
||||||
- создавать
|
|
||||||
- на уровне ресурсной группы (если РГ задана)
|
|
||||||
- на уровне аккаунта (если РГ не задана)
|
|
||||||
- удалять (безвозвратно)
|
|
||||||
- восстанавливать из корзины
|
|
||||||
- запрашивать информацию
|
|
||||||
- включать/отключать
|
|
||||||
- соединять (необходимы права администратора)
|
|
||||||
- изменять:
|
|
||||||
- включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора)
|
|
||||||
- включать/отключать режим **Custom Config** для виртуального маршрутизатора (необходимы права администратора)
|
|
||||||
- сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора)
|
|
||||||
|
|
||||||
## Параметры модуля decort_vins
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_vins. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_vins`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная внутреняя сеть. При идентификации внутренней сети по имени (см. параметр `vins_name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
| account_name | (string) | Имя аккаунта, которому принадлежит данная внутренняя сеть. При идентификации внутренней сети по имени (см. параметр `vins_name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр account_id). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
|annotation | (string)| Текстовое описание внутренней сети. Данный аргумент является опциональным и учитывается только при создании внутренней сети, а при всех прочих операциях игнорируется.|
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данный внутренняя сеть. Данный параметр является обязательным.
|
|
||||||
| ext_net_id | (int) | Идентификатор внешней сети, к которой должна быть подключена внутренняя сеть. Если задать значение `0`, то платформой будет выбрана внешняя сеть по умолчанию. |
|
|
||||||
| ext_ip_addr | (string) | IP-адрес внешней сети, заданной через параметр `ext_net_id`. Если не задан, то IP-адрес для внешней сети будет выбран платформой автоматически.
|
|
||||||
| ipcidr | (string) | Адрес сети для создаваемой внутренней сети. Если этот параметр не задан, то платформа назначит адрес автоматически. Обратите внимание, что внутренние сети, принадлежащие одному и тому же аккаунту, не могут иметь пересекающихся сетей.|
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу _Oauth2_, который должен использоваться в режиме `authenticator: oauth2`.<br/>Данный параметр является обязательным для указанного режима.<br/>Если параметр не задан в _playbook_, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
|rg_id | (int) | Идентификатор ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_id` и `rg_name`, то `rg_name` игнорируется.|
|
|
||||||
| rg_name | (string) | Имя ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_name` и `rg_id`, то `rg_name` игнорируется.|
|
|
||||||
| state | (string)<br>Значения:<br/>`present`<br/>`absent`<br/>`enabled`<br/>`disabled`<br/>Default: `present` | Целевое состояние внутренней сети. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| vins_id | (int) | Идентификатор внутренней сети. Соответствующая внутренная сеть должна существовать. Таким образом, с помощью `vins_id` нельзя создать новую внутреннюю сеть, а только управлять уже имеющимися. Если задан данный параметр, то параметры `vins_name`, `account_name`, `account_id`, `rg_name` и `rg_id` игнорируются.|
|
|
||||||
| vins_name| (string) | Имя внутренней сети. Для идентификации внутренней сети требуется либо `vins_name` и информация об аккаунте/ресурсной группе, которой принадлежит сеть, либо `vins_id`. Обратите внимание, что это имя уникально только в рамках ресурсной группы или аккаунта, на уровне которого существует данная внутренняя сеть.|
|
|
||||||
| mgmtaddr | (list) | Список существующих IP-адресов виртуального маршрутизатора во внутренней сети, через которые необходимо разрешить SSH-доступ к виртуальному маршрутизатору.
|
|
||||||
| custom_config | (bool)<br>Default: `false` | Включить/отключить режим пользовательской конфигурации виртуального маршрутизатора. |
|
|
||||||
| config_save | (bool)<br>Default: `false` | Выполнить сохранение текущей конфигурации виртуального маршрутизатора для возможности последующего отката к ней. |
|
|
||||||
| connect_to | (list) | Список словарей, содержащих информацию о внутренних сетях, к которым необходимо подключить данную. См. примеры.
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_vins
|
|
||||||
|
|
||||||
Модуль decort_vins возвращает информацию о внутренней сети в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит внутренняя сеть. |
|
|
||||||
| custom_net_addr | (list) | Список IP-адресов пользовательских интерфейсов виртуального маршрутизатора
|
|
||||||
| ext_ip_addr | (string) | IP-адрес интерфейса, которым виртуальный маршрутизатор подключён к внешней сети. |
|
|
||||||
| ext_net_id | (int) | Идентификатор внешней сети, к которой подключена внутренняя сеть. `-1` означает, что внутренняя сеть не подключёна к внешней сети. |
|
|
||||||
| gid | (int) | Идентификатор физического кластера (Grid ID), на базе которого развёрнуты ресурсы данной внутренней сети. |
|
|
||||||
| id | (int) | Уникальный целочисленный идентификатор внутренней сети. |
|
|
||||||
| name | (string) | Имя внутренней сети. |
|
|
||||||
| int_net_addr | (string) | Адрес внутренней сети. |
|
|
||||||
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы, которой принадлежит данная внутренняя сеть. Если данная внутренняя сеть создана на уровне аккаунта, то `rg_id=0`. |
|
|
||||||
| ssh_ipaddr | (list) | Список IP-адресов виртуального маршрутизатора во внутренней сети, на которых включён SSH-доступ к нему.
|
|
||||||
| ssh_password | (str) | Пароль для SSH-доступа к виртуальному маршрутизатору.
|
|
||||||
| ssh_port | (int) | Номер порта для SSH-подключения к виртуальному маршрутизатору.
|
|
||||||
| state | (string) | Состояние внутренней сети. |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_vins
|
|
||||||
|
|
||||||
В данном примере создаётся внутренняя сеть с именем "MyVins01" (vins_name: "MyVins01").
|
|
||||||
|
|
||||||
Внутренняя сеть создаётся на уровне ресурсной группы "MyRg01" (rg_name: "MyRg01"), принадлежащей аккаунту "MyMainAccount" (account_name: "MyMainAccount"). Внутренняя сеть будет иметь подключение во внешнюю сеть по умолчанию (ext_net_id: 0).
|
|
||||||
```
|
|
||||||
- name: Manage ViNS on resource group level
|
|
||||||
decort_vins:
|
|
||||||
account_name: "MyMainAccount"
|
|
||||||
rg_name: "MyRg01"
|
|
||||||
authenticator: jwt
|
|
||||||
jwt: "{{ my_jwt.jwt }}"
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
ext_net_id: 0
|
|
||||||
vins_name: "MyVins01"
|
|
||||||
register: my_vins
|
|
||||||
```
|
|
||||||
|
|
||||||
Здесь результат исполнения модуля decort_vins записывается в переменную my_vins, которую можно дальше использовать в Ansible playbooks. Ниже показано, как получить и использовать идентификатор внутренней сети для подключения к нему виртуального сервера.
|
|
||||||
```
|
|
||||||
- name: Manage virtual machine
|
|
||||||
decort_kvmvm:
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
networks:
|
|
||||||
- type: VINS
|
|
||||||
id: "{{ my_vins.facts.id }}"
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере идёт создание внутренней сети, а потом её привязка к внутренним сетям с id 864 и 196.
|
|
||||||
```
|
|
||||||
- name: Manage ViNS on resource group level
|
|
||||||
decort_vins:
|
|
||||||
authenticator: jwt
|
|
||||||
jwt: "{{ my_jwt.jwt }}"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
vins_name: "ViNS_connected_by_decort_vins_module"
|
|
||||||
rg_id: 98
|
|
||||||
connect_to:
|
|
||||||
- id: 864
|
|
||||||
ipaddr: 192.168.5.66
|
|
||||||
netmask: 24
|
|
||||||
- id: 196
|
|
||||||
ipaddr: 192.168.9.133
|
|
||||||
netmask: 24
|
|
||||||
register: managed_vins
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
1. [Введение](./введение.md)
|
|
||||||
- [Введение](./введение.md#введение)
|
|
||||||
- [Системные требования](./введение.md#системные-требования)
|
|
||||||
- [Подготовка к работе](./введение.md#подготовка-к-работе)
|
|
||||||
- [Авторизация](./введение.md#авторизация)
|
|
||||||
- [Общие параметры модулей для авторизации](./введение.md#общие-параметры-модулей-для-авторизации)
|
|
||||||
- [Пример авторизации с помощью app_id и app_secret](./введение.md#пример-авторизации-с-помощью-app_id-и-app_secret)
|
|
||||||
- [Пример авторизации с помощью JSON Web Token](./введение.md#пример-авторизации-с-помощью-json-web-token)
|
|
||||||
1. Ansible модули DECORT:
|
|
||||||
- [Модуль decort_kvmvm](./модуль-decort_kvmvm.md) - управление виртуальными машинами
|
|
||||||
- [Модуль decort_osimage](./модуль-decort_osimage.md) - управление образами
|
|
||||||
- [Модуль decort_disk](./модуль-decort_disk.md) - управление дисками
|
|
||||||
- [Модуль decort_pfw](./модуль-decort_pfw.md) - управление правилами переадресации портов
|
|
||||||
- [Модуль decort_rg](./модуль-decort_rg.md) - управление ресурсными группами
|
|
||||||
- [Модуль decort_vins](./модуль-decort_vins.md) - управление внутренними сетями
|
|
||||||
- [Модуль decort_jwt](./модуль-decort_jwt.md) - получение авторизационного токена
|
|
||||||
- [Модуль decort_bservice](./модуль-decort_bservice.md) - управление базовыми службами
|
|
||||||
- [Модуль decort_group](./модуль-decort_group.md)- управление группами базовой службы
|
|
||||||
- [Модуль decort_k8s](./модуль-decort_k8s.md) - управление кластерами Kubernetes
|
|
||||||
- [Модуль decort_lb](./модуль-decort_lb.md) - управление балансировщиками нагрузки
|
|
||||||
- [Модуль decort_account_info](./модуль-decort_account_info.md) - получение информации об аккаунте
|
|
||||||
- [Модуль decort_account](./модуль-decort_account.md) - управление аккаунтами
|
|
||||||
- [Модуль decort_user_info](./модуль-decort_user_info.md) - получение информации о пользователе
|
|
||||||
@@ -1,181 +0,0 @@
|
|||||||
# Модули Ansible для управления облачными ресурсами в платформе DECORT
|
|
||||||
## Введение
|
|
||||||
|
|
||||||
Настоящая документация содержит руководство пользователя по библиотеке модулей decort для Ansible. С помощью этих модулей Вы сможете управлять созданием и конфигурированием облачных ресурсов в платформе DECORT (Digital Energy Cloud Orchestration Technology).
|
|
||||||
|
|
||||||
По каждому модулю есть своя документация, в которой вы можете найти список доступных действий, подробную информацию о входных параметрах и возвращаемых данных, а также примеры использования.
|
|
||||||
|
|
||||||
## Системные требования
|
|
||||||
Убедитесь, что Ваша система соответствует требованиям для работы модуля DECORT.
|
|
||||||
Системные требования для работы модуля:
|
|
||||||
- Ansible 10.5.0
|
|
||||||
- Python 3.10.12
|
|
||||||
- PyJWT 2.9.0 Python module
|
|
||||||
- requests 2.32.3 Python module
|
|
||||||
- DynamiX Enterprise 4.1.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>
|
|
||||||
Идентификатор приложения, использующийся для подключения к контроллеру
|
|
||||||
облачной платформы DECORT в режиме <code>authenticator: oauth2</code>.
|
|
||||||
Данный параметр является обязательным для указанного режима. Если
|
|
||||||
параметр не задан в playbook, модуль будет использовать значение
|
|
||||||
переменной окружения <code>DECORT_APP_ID</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
app_secret
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Секретный ключ приложения, который используется для подключения к
|
|
||||||
контроллеру облачной платформы DECORT в режиме
|
|
||||||
<code>authenticator: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Так как он содержит секретную
|
|
||||||
информацию, то его не рекомендуется задавать непосредственно в
|
|
||||||
playbook. Если параметр не задан в playbook, то модуль будет
|
|
||||||
использовать значение переменной окружения
|
|
||||||
<code>DECORT_APP_SECRET</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
authenticator
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br/><code>oauth2</code>
|
|
||||||
<br/><code>jwt</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим аутентификации при подключении к контроллеру облачной платформы
|
|
||||||
DECORT. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
controller_url
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL контроллера, соответствующего экземпляру облачной платформы
|
|
||||||
DECORT. Данный параметр является обязательным.
|
|
||||||
</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: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Если параметр не задан в
|
|
||||||
playbook, модуль будет использовать значение переменной
|
|
||||||
окружения <code>DECORT_OAUTH2_URL</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
verify_ssl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
<br>Default: <code>true</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Позволяет отключить проверку SSL сертификатов при выполнении API
|
|
||||||
вызовов в адрес контроллера облачной инфраструктуры, например,
|
|
||||||
при работе с изолированной облачной инфраструктурой, использующей
|
|
||||||
самоподписанные сертификаты. Применяйте данный параметр с
|
|
||||||
осторожностью, предпочтительно в защищенных средах.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
### Пример авторизации с помощью app_id и app_secret
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Auth with app_id and app_secret
|
|
||||||
decort_module_name:
|
|
||||||
# Специфичные для модулей параметры упущены
|
|
||||||
# Пример демонстрирует только параметры для авторизации
|
|
||||||
app_id: "{{ app_id }}"
|
|
||||||
app_secret: "{{ app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
oauth2_url: "{{ oauth2_url }}"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Пример авторизации с помощью JSON Web Token
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Auth with JWT
|
|
||||||
decort_module_name:
|
|
||||||
# Специфичные для модулей параметры упущены
|
|
||||||
# Пример демонстрирует только параметры для авторизации
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
jwt: "{{ jwt }}"
|
|
||||||
```
|
|
||||||
@@ -1,992 +0,0 @@
|
|||||||
# Модуль decort_account
|
|
||||||
## Обзор модуля
|
|
||||||
|
|
||||||
Модуль **decort_account** предназначен для выполнения следующих действий над аккаунтом:
|
|
||||||
- **удалить в корзину** (см. [параметр state](#state) и [примеры](#в-корзину))
|
|
||||||
- **удалить безвозвратно** (см. [параметр state](#state) и [примеры](#безвозвратно))
|
|
||||||
- **восстановить из корзины** (см. [параметр state](#state) и [примеры](#восстановить-из-корзины))
|
|
||||||
- **выключить/включить** (см. [параметр state](#state) и [примеры](#выключитьвключить))
|
|
||||||
- **изменить права доступа** (см. [параметр acl](#acl) и [примеры](#изменить-права-доступа))
|
|
||||||
- **изменить имя** (см. [параметр name](#name) и [примеры](#переименовать))
|
|
||||||
- **изменить квоты** (см. [параметр quotas](#quotas) и [примеры](#изменить-квоты))
|
|
||||||
- **выключить/включить отправку уведомлений о предоставлении доступа к ресурсам** (см. [параметр access_emails](#access_emails) и [примеры](#выключитьвключить-отправку-уведомлений-о-предоставлении-доступа-к-ресурсам))
|
|
||||||
- **изменить доступные пулы СХД** (см. [параметр sep_pools](#sep_pools) и [примеры](#изменить-доступные-пулы-схд))
|
|
||||||
|
|
||||||
## Параметры модуля
|
|
||||||
Ниже приведен список параметров для модуля **decort_account** (за исключением [общих параметров авторизации](./введение.md#общие-параметры-модулей-для-авторизации)):
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="6">Параметр</th>
|
|
||||||
<th>Тип</th>
|
|
||||||
<th>Описание</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="access_emails">
|
|
||||||
access_emails
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Выключение/включение отправки пользователям на эл. почту уведомлений о предоставлении доступа к ресурсам.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="acl">
|
|
||||||
acl
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевые права доступа.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
mode
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>match</code>
|
|
||||||
<br><code>revoke</code>
|
|
||||||
<br><code>update</code>
|
|
||||||
<br>Default: <code>update</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим изменения прав доступа для указанных пользователей.
|
|
||||||
<br><code>match</code> - привести в соответствие для указанных
|
|
||||||
пользователей, удалить предоставленные для других.
|
|
||||||
<br><code>revoke</code> - отозвать для указанных пользователей,
|
|
||||||
если предоставлены.
|
|
||||||
<br><code>update</code> - привести в соответствие для указанных
|
|
||||||
пользователей, оставить без изменения предоставленные для
|
|
||||||
других.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
users
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих права доступа пользователей.
|
|
||||||
<br>Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="4">
|
|
||||||
rights
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>R</code>
|
|
||||||
<br><code>RCX</code>
|
|
||||||
<br><code>ARCXDU</code>
|
|
||||||
<br>Default: <code>R</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Права доступа.
|
|
||||||
<br>При <code>mode: revoke</code> не используется.
|
|
||||||
<br>При <code>mode: match</code> и <code>mode: update</code>
|
|
||||||
права <code>ARCXDU</code> считаются соответствующими
|
|
||||||
правам <code>CXDRAU</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="4">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор пользователя.
|
|
||||||
<br>Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор целевого аккаунта.
|
|
||||||
<br>Обязательный параметр, если не задан параметр
|
|
||||||
<code>name</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="name">
|
|
||||||
name
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя целевого аккаунта.
|
|
||||||
<br>Может быть альтернативой параметру <code>id</code>,
|
|
||||||
за исключением случая, когда необходимо получить
|
|
||||||
информацию о безвозвратно удалённом объекте.
|
|
||||||
<br>Если задан совместно с параметром <code>id</code>,
|
|
||||||
то используется для переименования (целевое имя).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="quotas">
|
|
||||||
quotas
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевые квоты.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
cpu
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество виртуальных процессоров.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
disks_size
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём дисков в ГБ.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
ext_traffic
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём трафика внешних сетей.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
gpu
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество графических процессоров.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
public_ip
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество внешних IP-адресов.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
ram
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём оперативной памяти в МБ.
|
|
||||||
<br><code>-1</code> - удалить квоту.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="sep_pools">
|
|
||||||
sep_pools
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих доступные пулы СХД.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
sep_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор системы хранения данных.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
pool_names
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список названий пулов системы хранения данных.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
<a name="state">
|
|
||||||
state
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>absent</code>
|
|
||||||
<br><code>absent_permanently</code>
|
|
||||||
<br><code>confirmed</code>
|
|
||||||
<br><code>disabled</code>
|
|
||||||
<br><code>present</code>
|
|
||||||
<br>Default: <code>present</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевое состояние.
|
|
||||||
<br><code>absent</code> - удалён в корзину, безвозвратно удалён
|
|
||||||
или не существует. Если существует и не удалён, то будет удалён
|
|
||||||
в корзину.
|
|
||||||
<br><code>absent_permanently</code> - безвозвратно удалён или
|
|
||||||
не существует. Если существует и не удалён или удалён в корзину,
|
|
||||||
то будет безвозвратно удалён.
|
|
||||||
<br> При значениях <code>absent</code> и <code>absent_permanently</code>
|
|
||||||
использование других параметров модуля, вызывающих изменение объекта,
|
|
||||||
не допускается.
|
|
||||||
<br><code>confirmed</code> - включён. Если выключен, то будет включён.
|
|
||||||
Если удалён в корзину, то будет восстановлен из корзины.
|
|
||||||
<br><code>disabled</code> - выключен. Если включён, то будет выключен.
|
|
||||||
Если удалён в корзину, то будет восстановлен из корзины и выключен.
|
|
||||||
<br><code>present</code> - существует и не удалён. Если удалён в
|
|
||||||
корзину, то будет восстановлен из корзины.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Возвращаемые значения
|
|
||||||
|
|
||||||
Модуль **decort_account** возвращает информацию об аккаунте в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="6">
|
|
||||||
Ключ
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Тип
|
|
||||||
<br>данных
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Описание
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
acl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих доступы пользователей.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
canBeDeleted
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
bool
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Может ли быть удалён.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
right
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Права.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
status
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Статус.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
type
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Тип.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
userGroupId
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор пользователя или группы пользователей.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
company
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название компании.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
companyurl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL компании.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
computeFeatures
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список дополнительных возможностей гипервизора, доступных ВМ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
computes_amount
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество ВМ по состоянию.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
started
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество запущенных ВМ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
stopped
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество остановленных ВМ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
cpu_allocation_parameter
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим выделения ЦП.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
cpu_allocation_ratio
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Коэффициент для режима выделения ЦП.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
createdBy
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор пользователя, который создал.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
createdTime
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Unix-время создания.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
createdTime_readable
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Дата и время создания.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deactivationTime
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Unix-время выключения.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deactivationTime_readable
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Дата и время выключения.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deletedBy
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор пользователя, который удалил.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deletedTime
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Unix-время удаления.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
deletedTime_readable
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Дата и время удаления.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
displayname
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Отображаемое имя.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
resourceLimits
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Квоты на ресурсы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_C
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество виртуальных процессоров.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_D
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём диска в ГБ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_DM
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём дисков в ГБ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_I
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество внешних IP-адресов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_M
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
float
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём оперативной памяти в МБ.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
CU_NP
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Объём трафика внешних сетей.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="5">
|
|
||||||
gpu_units
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество графических процессоров.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
sendAccessEmails
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
bool
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Отправка пользователям на эл. почту уведомлений о предоставлении доступа.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
status
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Статус.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
uniqPools
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список доступных пулов СХД.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
updatedTime
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Unix-время обновления.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
updatedTime_readable
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Дата и время обновления.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
vins
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список идентификаторов внутренних сетей на уровне аккаунта.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="6">
|
|
||||||
vinses_amount
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество внутренних сетей.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Примеры использования
|
|
||||||
|
|
||||||
### Удалить
|
|
||||||
|
|
||||||
#### В корзину
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Delete account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: absent
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Безвозвратно
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Delete account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: absent_permanently
|
|
||||||
```
|
|
||||||
|
|
||||||
### Восстановить из корзины
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Restore account from recycle bin
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: present
|
|
||||||
```
|
|
||||||
|
|
||||||
### Выключить/включить
|
|
||||||
|
|
||||||
#### Выключить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Disable account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: disabled
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Включить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Enable account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
state: confirmed
|
|
||||||
```
|
|
||||||
|
|
||||||
### Изменить права доступа
|
|
||||||
|
|
||||||
#### Отозвать
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Revoke user access rights
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
acl:
|
|
||||||
mode: revoke
|
|
||||||
users:
|
|
||||||
- id: "{{ user1_id }}"
|
|
||||||
- id: "{{ user2_id }}"
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Обновить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Update user access rights
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
acl:
|
|
||||||
mode: update
|
|
||||||
users:
|
|
||||||
- id: "{{ user1_id }}"
|
|
||||||
rights: R
|
|
||||||
- id: "{{ user2_id }}"
|
|
||||||
rights: RCX
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Привести в соответствие
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Match user access rights
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
acl:
|
|
||||||
mode: match
|
|
||||||
users:
|
|
||||||
- id: "{{ user1_id }}"
|
|
||||||
rights: ARCXDU
|
|
||||||
- id: "{{ user2_id }}"
|
|
||||||
rights: RCX
|
|
||||||
```
|
|
||||||
|
|
||||||
### Переименовать
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Rename account
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
name: "{{ account_new_name }}"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Изменить квоты
|
|
||||||
|
|
||||||
#### На объём дисков
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Update account quota of disks size
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
quotas:
|
|
||||||
disks_size: 500
|
|
||||||
```
|
|
||||||
|
|
||||||
#### На количество внешних IP-адресов
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Update account quota of public IP amount
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
quotas:
|
|
||||||
public_ip: 10
|
|
||||||
```
|
|
||||||
|
|
||||||
### Выключить/включить отправку уведомлений о предоставлении доступа к ресурсам
|
|
||||||
|
|
||||||
#### Выключить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Disable sending access emails
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
access_emails: false
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Включить
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Enable sending access emails
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
access_emails: true
|
|
||||||
```
|
|
||||||
|
|
||||||
### Изменить доступные пулы СХД
|
|
||||||
```
|
|
||||||
- name: Example
|
|
||||||
hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Change available sep pools
|
|
||||||
decort_account:
|
|
||||||
# Параметры для авторизации упущены
|
|
||||||
id: "{{ account_id }}"
|
|
||||||
sep_pools:
|
|
||||||
- sep_id: 1
|
|
||||||
pool_names:
|
|
||||||
- pool1
|
|
||||||
```
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,92 +0,0 @@
|
|||||||
# Модуль decort_bservice
|
|
||||||
|
|
||||||
## Обзор модуля decort_bservice
|
|
||||||
|
|
||||||
Базовая служба (Basic Service) это несколько групп виртуальных серверов (compute), создаваемых и управляемых как единое целое.
|
|
||||||
|
|
||||||
Все compute(s) в группе имеют одни и те же характеристики (cpu/ram/boot disk size/OS image + сетевые подключения). Для разных групп эти характеристики могут быть разными.
|
|
||||||
|
|
||||||
Группы в составе Basic Service могут иметь отношения parent-child с другими группами. Наличие таких отношений определяет последовательность запуска групп ("сначала parents").
|
|
||||||
|
|
||||||
На основе ресурсов, предоставляемых и управляемых через Basic Service, могут создаваться другие сервисы.
|
|
||||||
|
|
||||||
`Для взаимодействия с группами виртуальных серверов используется модуль decort_group.`
|
|
||||||
|
|
||||||
Модуль decort_bservice предназначен для управления базовыми службами, в которых находятся группы виртуальных серверов.
|
|
||||||
Данный модуль позволяет:
|
|
||||||
- Создавать Basic Service
|
|
||||||
- Удалять Basic Service (безвозвратно).
|
|
||||||
- Включать/выключать Basic Service
|
|
||||||
- Запускать Basic Service
|
|
||||||
- Запрашивать информацию о Basic Service.
|
|
||||||
|
|
||||||
|
|
||||||
## Параметры модуля decort_bservice
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_bservice. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на Вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_bservice`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит ресурсная группа. При идентификации базовой службы и ресурсной группы по именам (см. параметры `name` и `rg_name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
|account_name | (string) | Имя аккаунта, которому принадлежит ресурсная группа. При идентификации базовой службы и ресурсной группы по именам (см. параметры `name` и `rg_name`) должен быть задан либо идентификатор (см. `account_id`), либо имя аккаунта. Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
|app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данная базовая служба. Данный параметр является обязательным.|
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`<br/>Данный параметр является обязательным для указанного режима.<br/>Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.<br/>Если этот параметр не определен в _playbook_, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
|oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`.|
|
|
||||||
|state | Значения: `absent`, `disabled`, `enabled`, `present`, `check`. <br> Default: `present`| Целевое состояние базовой службы. Значения `present` и `enabled` равнозначны.|
|
|
||||||
| started | (bool) <br> Default: `true` | Параметр, определяющий состояние добавленных виртуальных серверов в Basic Service. Запускать их, или нет. |
|
|
||||||
| name | (string) | Имя базовой службы. Данный параметр является обязательным при создании базовой службы и при изменении если не задан `id`. |
|
|
||||||
| sshuser | (string) | Имя пользователя, который будет создан на всех виртуальных серверах базовой службы. Используется в паре с `sshkey`. |
|
|
||||||
| sshkey | (string) | SSH ключ, который будет загружен на все виртуальные сервера базовой службы. Используется в паре с `sshuser`. |
|
|
||||||
| id | (int) | Уникальный целочисленный идентификатор базовой службы. Используется для поиска, изменения и удаления базовой службы. |
|
|
||||||
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы базовой службы. |
|
|
||||||
| rg_name | (string) | Имя ресурсной группы базовой службы. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_bservice
|
|
||||||
|
|
||||||
Модуль decort_bservice возвращает информацию о базовой службе в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
|id | int | Уникальный целочисленный идентификатор базовой службы.|
|
|
||||||
|name | string | Имя базовой службы.|
|
|
||||||
| techStatus | string | Технический статус базовой службы. |
|
|
||||||
|state | string | Статус базовой службы.|
|
|
||||||
| rg_id | int | Уникальный целочисленный идентификатор ресурсной группы, в которой находится базовая служба.|
|
|
||||||
| account_id | int | Уникальный целочисленный идентификатор аккаунта, в котором находится ресурсная группа.|
|
|
||||||
| groups | list | Список словарей с информацией о группах базовой службы.|
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_bservice
|
|
||||||
|
|
||||||
Данный пример создаёт базовую службу с именем databases.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Create Basic Service
|
|
||||||
decort_bservice:
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
jwt: "{{ auth_token }}"
|
|
||||||
name: databases
|
|
||||||
rg_id: "{{ rg_id }}"
|
|
||||||
register: db_bservice
|
|
||||||
```
|
|
||||||
|
|
||||||
Данный пример удаляет базовую службу с названием databases.
|
|
||||||
```
|
|
||||||
- name: Delete Basic Service
|
|
||||||
decort_bservice:
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "{{ controller_url }}"
|
|
||||||
jwt: "{{ auth_token }}"
|
|
||||||
state: absent
|
|
||||||
name: databases
|
|
||||||
rg_id: "{{ rg_id }}"
|
|
||||||
register: db_bservice
|
|
||||||
```
|
|
||||||
@@ -1,177 +0,0 @@
|
|||||||
# Модуль decort_disk
|
|
||||||
## Обзор модуля decort_disk
|
|
||||||
|
|
||||||
Модуль decort_disk предназначен для управления дисками и позволяет производить с ними следующие действия:
|
|
||||||
- создавать
|
|
||||||
- удалять (в корзину или безвозвратно)
|
|
||||||
- восстановливать из корзины
|
|
||||||
- изменять:
|
|
||||||
- имя
|
|
||||||
- размер
|
|
||||||
- лимиты ввода/вывода
|
|
||||||
- включать/отключать общий доступ
|
|
||||||
|
|
||||||
|
|
||||||
Обратите внимание:
|
|
||||||
|
|
||||||
- Загрузочный диск для виртуальной машины создаётся и подключается автоматически в процессе создания этой машины.
|
|
||||||
- Модуль decort_disk служит для управления дополнительными дисками (т.н. data-дисками);
|
|
||||||
- Подключение дополнительных дисков, созданных посредством decort_disk, к виртуальным машинам выполняется с помощью модуля управления виртуальными машинами (см. модуль decort_kvmvm).
|
|
||||||
|
|
||||||
## Параметры модуля decort_disk
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_disk. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_disk`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
|account_name | (string) | Имя аккаунта, которому принадлежит данный диск. При идентификации диска по имени (см. параметр name) должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| annotation | (string)<br>Default: `Disk by decort_disk` | Текстовое описание диска. Данный параметр является опциональным и учитывается только при создании диска, а при всех прочих операциях игнорируется.|
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
|app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
|controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данный диск. Данный параметр является обязательным.|
|
|
||||||
|id | (int) | Уникальный целочисленный идентификатор диска. Соответствующий диск должен существовать (таким образом, с помощью id нельзя создать новый диск, а только управлять уже имеющимися). Если задан данный параметр, то параметры `name`, `account_name` и `account_id` игнорируются.|
|
|
||||||
| iops | (int)<br>Default: `2000` | Ограничение ввода/вывода диска. Используется при создании диска. |
|
|
||||||
| force_detach | (bool)<br/>Default: `false` | Задаёт поведение платформы при попытке удалить диск, подключённый к виртуальной машине.<br/>По умолчанию, удаление подключённых дисков не разрешается, и попытка удалить такой диск приведёт к аварийному завершению модуля. Чтобы изменить это поведение, явно установите `force_detach: true`. |
|
|
||||||
|jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
||||||
| limitIO | (dict) | Параметр, позволяющий ограничить скорость ввода/вывода диска как в iops, так и в байтах в секунду. Обратите внимание, что параметры с total не задаются вместе с read/write. Все возможные подпараметры можно увидеть в примерах. |
|
|
||||||
| name | (string) | Имя диска. Для идентификации диска требуется либо его `name` и информация об аккаунте (`account_id` или `account_name`), которому принадлежит диск, либо его `id`.|
|
|
||||||
|oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`.|
|
|
||||||
| permanently | (bool)<br>Default: `false` | Параметр, использующийся при удалении диска, при значении `true` - диск удалится навсегда, а при `false` - попадёт в корзину. |
|
|
||||||
| place_with | (int) | Идентификатор образа диска, из которого следует взять параметр `sep_id`, чтобы разместить данный диск на той же системе хранения данных, что и указанный образ диска. Данный параметр является опциональным и используется только на стадии создания диска. Если задан `place_with`, то `sep_id` игнорируется.|
|
|
||||||
| pool | (string) | Название пула на системе хранения данных, в рамках которой следует создать данный диск. Этот параметр используется только на стадии создания диска и игнорируется при операциях над уже существующими дисками. Параметр является опциональным, если не задан, то платформа будет использовать пул, который сконфигурирован на целевой системе хранения как пул по умолчанию. |
|
|
||||||
| reason | (string)<br>Default: `Managed by Ansible decort_disk` | Причина, по которой было выполнено какое-либо действие. В данном модуле используется только при удалении диска. |
|
|
||||||
| sep_id | (int) | Идентификатор системы хранения данных (Storage End-point). Данный параметр определяет систему хранения данных, на ресурсах которой создаётся диск. Используется только при создании диска и игнорируется при прочих операциях. Альтернативой данному параметру является `place_with`, позволяющий разместить диск на той же системе хранения, что и указанный образ диска, на базе которого создаётся виртуальная машина.|
|
|
||||||
| shareable | (bool)<br>Default: `false` | Включение/отключение общего доступа к диску.
|
|
||||||
| size | (int) | Размер диска в ГБ. Этот параметр является обязательным при создании диска. Если он задан для уже существующего диска, а текущий размер диска меньше заданного, то будет предпринята попытка увеличить размер диска. При прочих операциях данный параметр игнорируется.|
|
|
||||||
| state | (str)<br>Значения:<br>`present`<br>`absent`<br>Default: `present` | Целевое состояние диска. |
|
|
||||||
| type | (string)<br>Значения:<br>`B`<br>`D`<br>Default: `D` | Тип создаваемого диска. `B` - Boot/загрузочный, `D` - Data/с данными. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `false` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_disk
|
|
||||||
|
|
||||||
Модуль decort_disk возвращает информацию о диске в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит диск.|
|
|
||||||
| computes | dict | Словарь, в котором ключ - идентификатор, а значение - имя виртуальной машины, к которой в настоящий момент подключён диск. Если диск не подключён, то возвращается пустой словарь.|
|
|
||||||
| gid | int | Идентификатор физического кластера (Grid ID), на ресурсах которого создан диск.|
|
|
||||||
| id | int | Уникальный целочисленный идентификатор данного диска.|
|
|
||||||
| iotune | dict | Текущие ограничения ввода/вывода диска. |
|
|
||||||
| name | string | Имя диска. Обратите внимание, что имя диска не является уникальным с точки зрения системы хранения данных, на которой этот диск расположен.|
|
|
||||||
| pool | string | Имя пула на системе хранения данных, в котором размещаются ресурсы диска.|
|
|
||||||
|sep_id | int | Идентификатор системы хранения данных (Storage Endpoint), на которой размещаются ресурсы данного диска.|
|
|
||||||
| size | int | Размер диска в ГБ.|
|
|
||||||
| state | string | Текущий статус диска. |
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_disk
|
|
||||||
|
|
||||||
В данном примере создаётся диск размером 50ГБ (`size: 50`), с ограничением ввода/вывода в 2000 iops, на ресурсах системы хранения данных под номером 1 (`sep_id: 1`) в пуле "data01".
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
name: "DataDisk01"
|
|
||||||
size: 50
|
|
||||||
account_name: "MyAccount"
|
|
||||||
sep_id: 1
|
|
||||||
iops: 2000
|
|
||||||
annotation: "Disk example"
|
|
||||||
pool: data01
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
В следующих двух примерах для существующего диска с именем "DataDisk01" задаются все доступные лимиты на операции ввода/вывода.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
name: "DataDisk01"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
limitIO:
|
|
||||||
read_bytes_sec: 10000
|
|
||||||
write_bytes_sec: 5000
|
|
||||||
read_iops_sec и write_iops_sec
|
|
||||||
read_iops_sec: 2500
|
|
||||||
write_iops_sec: 1000
|
|
||||||
read_bytes_sec_max: 11000
|
|
||||||
write_bytes_sec_max: 6000
|
|
||||||
read_iops_sec_max: 3000
|
|
||||||
write_iops_sec_max: 1500
|
|
||||||
size_iops_sec: 1000
|
|
||||||
register: my_data_disk01
|
|
||||||
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
name: "DataDisk01"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
limitIO:
|
|
||||||
total_bytes_sec: 15000
|
|
||||||
total_iops_sec: 3500
|
|
||||||
total_bytes_sec_max: 17000
|
|
||||||
total_iops_sec_max: 4500
|
|
||||||
size_iops_sec: 1000
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере выполняется восстановление удаленного диска с id 111 из корзины.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
id: 111
|
|
||||||
size: 10
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере выполняется переименование диска с id 111 на новое имя "NewExampleDisk".
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage disk
|
|
||||||
decort_disk:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
id: 111
|
|
||||||
name: "NewExampleDisk"
|
|
||||||
size: 10
|
|
||||||
register: my_data_disk01
|
|
||||||
```
|
|
||||||
|
|
||||||
Здесь результат работы модуля decort_disk записывается в переменную my_data_disk01. Для получения идентификатора диска, например, при подключении его к виртуальной машине, следует воспользоваться показанной ниже конструкцией:
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Manage compute
|
|
||||||
decort_kvmvm:
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
data_disks:
|
|
||||||
- "{{ my_data_disk01.facts.id }}"
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
```
|
|
||||||
@@ -1,105 +0,0 @@
|
|||||||
# Модуль decort_group
|
|
||||||
## Обзор модуля decort_group
|
|
||||||
Модуль **decort_group** позволяет производить следующие действия над группами базовой службы:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- запустить/остановить
|
|
||||||
- подключить/отключить сети (для существующей группы только внутренние сети)
|
|
||||||
- изменить
|
|
||||||
- имя
|
|
||||||
- объём загрузочного диска
|
|
||||||
- количество ВМ
|
|
||||||
- роль
|
|
||||||
- количество виртуальных процессоров
|
|
||||||
- объём ОЗУ
|
|
||||||
- удалить (безвозвратно)
|
|
||||||
|
|
||||||
## Параметры модуля decort_group
|
|
||||||
Ниже приведен полный список параметров для модуля **decort_group**.
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Идентификатор аккаунта. При идентификации группы по имени (см. параметр `name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| account_name | (string) | Имя аккаунта. При идентификации группы по имени (см. параметр `name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br>`oauth2`<br>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| boot_disk | (int) | Обьём загрузочного диска. |
|
|
||||||
| bservice_id | (int) | Идентификатор базовой службы. Обязательный параметр. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| count | (int) | Количество виртуальных машин. |
|
|
||||||
| cpu | (int) | Количество виртуальных процессоров. |
|
|
||||||
| driver | (string)<br>Значения:<br>`KVM_X86`<br>`SVA_KVM_X86`<br>Default: `KVM_X86` | Драйвер. |
|
|
||||||
| id | (int) | Идентификатор группы. |
|
|
||||||
| image_id | (int) | Идентификатор образа. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt` Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| name | (str) | Имя группы.<br>Используется для идентификации группы, если не задан параметр `id`, а также для переименования группы, если параметр `id` задан. |
|
|
||||||
| networks | (list) | Список словарей, описывающих сети, которые должны быть подключены.<br>Ключи словаря:<br>• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя) или `EXTNET` (внешняя)<br>• `id` (int) (обязательный) - идентификатор сети |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| ram | (int) | Объём оперативной памяти. |
|
|
||||||
| role | (string) | Тег роли. |
|
|
||||||
| state | (str)<br>Значения:<br>`present`<br>`absent`<br>`started`<br>`stopped`<br>`check`<br>Default: `present` |
|
|
||||||
| timeoutStart | (int) | Время отсрочки запуска группы после создания в секундах. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_group
|
|
||||||
|
|
||||||
Модуль **decort_group** возвращает информацию о группе в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Идентификатор аккаунта. |
|
|
||||||
| Computes | list | Список словарей, содержащих информацию о виртуальных машинах группы.<br>Ключи словаря:<br>• `id` (int) - идентификатор ВМ<br>• `ipAddresses` (list) - список IP-адресов ВМ<br>• `name` (str) - имя ВМ<br>• `osUsers` (list) - список словарей, содержащих учётные данные пользователей ОС ВМ по умолчанию; ключи: `login` (str) и `password` (str) |
|
|
||||||
| id | int | Идентификатор группы.|
|
|
||||||
| name | string | Имя группы.|
|
|
||||||
| rg_id | int | Идентификатор ресурсной группы. |
|
|
||||||
| state | string | Состояние группы. |
|
|
||||||
| techStatus | string | Технический статус группы. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_group
|
|
||||||
|
|
||||||
Данный пример создаёт группу с именем `test_group`.
|
|
||||||
```
|
|
||||||
- hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Create BS group
|
|
||||||
decort_group:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
boot_disk: 10
|
|
||||||
bservice_id: 1823
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
count: 2
|
|
||||||
cpu: 2
|
|
||||||
image_id: 518
|
|
||||||
name: test_group
|
|
||||||
networks:
|
|
||||||
- type: VINS
|
|
||||||
id: 1987
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
ram: 2
|
|
||||||
verify_ssl: false
|
|
||||||
register: group_test
|
|
||||||
```
|
|
||||||
|
|
||||||
Данный пример удаляет группу с именем `test_group`.
|
|
||||||
|
|
||||||
```
|
|
||||||
- hosts: localhost
|
|
||||||
tasks:
|
|
||||||
- name: Delete BS group
|
|
||||||
decort_group:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
bservice_id: 1823
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
name: test_group
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
state: absent
|
|
||||||
verify_ssl: False
|
|
||||||
register: group_test
|
|
||||||
```
|
|
||||||
@@ -1,53 +0,0 @@
|
|||||||
# Вспомогательный модуль для получения авторизационного 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 }}"
|
|
||||||
```
|
|
||||||
@@ -1,108 +0,0 @@
|
|||||||
# Модуль decort_k8s
|
|
||||||
## Обзор модуля decort_k8s
|
|
||||||
|
|
||||||
Модуль **decort_k8s** предназначен для выполнения следующих действий над кластерами Kubernetes:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- отключить/включить/запустить
|
|
||||||
- изменить группы Worker-узлов
|
|
||||||
- удалить (в корзину или безвозвратно)
|
|
||||||
- восстановить из корзины
|
|
||||||
|
|
||||||
## Параметры модуля decort_k8s
|
|
||||||
Ниже приведен полный список параметров для модуля **decort_k8s**:
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Идентификатор аккаунта. |
|
|
||||||
| account_name | (string) | Имя аккаунта. |
|
|
||||||
| additionalSANs | (list) | Список дополнительных SAN (Subject Alternative Names) для использования в процессе автоматического выписывания сертификата Кластера Kubernetes. Можно использовать IP-адреса и доменные имена.
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| cluster_conf | (dict) | Словарь с глобальными настройками и конфигурацией для всего кластера. Включает в себя такие настройки, как имя кластера, настройки DNS, методы аутентификации и другие конфигурации всего кластера. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| description | (string)<br>Default: `Created by decort ansible module` | Описание кластера. |
|
|
||||||
| extnet_id | (int)<br>Default: `0` | Идентификатор внешней сети. Если задан `0`, то внешняя сеть выбирается автоматически. Если задан параметр `vins_id`, то значение данного параметра будет проигнорировано. Если задан `extnet_only: false`, то внешняя сеть будет подключена к создаваемой внутренней сети, а если `extnet_only: true`, то либо напрямую к каждому узлу кластера (если `with_lb: false`), либо напрямую к балансировщику нагрузки (если `with_lb: true`). |
|
|
||||||
| extnet_only | (bool)<br>Default: `false` | Не использовать внутреннюю сеть, подключать напрямую к внешней. |
|
|
||||||
| getConfig | (bool)<br>Default: `false` | Получить данные конфигурации для доступа к кластеру Kubernetes. |
|
|
||||||
| ha_lb | (bool)<br>Default: `false` | Использовать схему высокой доступности для создаваемого балансировщика нагрузки (если `with_lb: true`). |
|
|
||||||
| id | (int) | Идентификатор кластера Kubernetes. |
|
|
||||||
| init_conf | (dict) | Словарь для определения настроек и действий, которые должны быть выполнены перед запуском любого другого компонента в кластере. Позволяет настраивать такие процессы, как регистрация узла, настройка сети и другие задачи инициализации.
|
|
||||||
| join_conf | (dict) | Словарь для настройки поведения и параметров присоединения узла к кластеру. Включает в себя такие параметры, как control-plane-endpoint кластера, токен и certificate-key. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| k8ci_id | (int) | Идентификатор конфигурации кластера Kubernetes. |
|
|
||||||
| kubeproxy_conf | (dict) | Словарь для настройки поведения и настроек Kube-proxy, отвечающего за сетевое проксирование и балансировку нагрузки внутри кластера. Включает в себя такие параметры, как режим прокси, диапазоны IP-адресов кластера и другие конфигурации, специфичные для Kube-proxy. |
|
|
||||||
| kublet_conf | (dict) | Словарь для настройки поведения и настроек Kubelet, который является агентом основного узла, работающим на каждом узле кластера. Включает в себя такие параметры, как IP-адрес узла, распределение ресурсов, политики вытеснения модулей и другие конфигурации, специфичные для Kubelet. |
|
|
||||||
| master_count | (int)<br>Default: `1` | Количество Master-узлов. |
|
|
||||||
| master_cpu | (int)<br>Default: `2` | Количество виртуальных процессоров на Master-узле. |
|
|
||||||
| master_disk | (int)<br>Default: `10` | Объём загрузочного диска на Master-узле. |
|
|
||||||
| master_pool | (str) | Пул СХД, заданной параметром `master_sepid`. |
|
|
||||||
| master_ram | (int)<br>Default: `2048` | Объём оперативной памяти на Master-узле. |
|
|
||||||
| master_sepid | (int) | Идентификатор СХД для Master-узла. Если не задан, то используется СХД образа Master-узла. |
|
|
||||||
| name | (string) | Имя кластера Kubernetes. |
|
|
||||||
| network_plugin | (str)<br>Значения:<br>`flannel`<br>`calico`<br>`weavenet`<br>Default: `flannel` | CNI plugin (модуль для управления сетевыми интерфейсами контейнера). Возможные значения могут быть ограничены в используемой конфигурации кластера Kubernetes (параметр `k8ci_id`) |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| oidc_cert | (raw) | Сертификат X.509 для OIDC-провайдера.
|
|
||||||
| permanent | (bool)<br>Default: `false` | Если выполняется удаление, то выполнить безвозвратное удаление (минуя корзину). |
|
|
||||||
| rg_id | (int) | Идентификатор ресурсной группы. |
|
|
||||||
| rg_name | (str) | Имя ресурсной группы. |
|
|
||||||
| started | (bool)<br>Default: `true` | Запустить кластер.<br>Используется только для существующего кластера. |
|
|
||||||
| state | (string)<br>Значения:<br>`present`<br>`absent`<br>`enabled`<br>`disabled`<br>`check`<br>Default: `present` | Целевое состояние кластера. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| vins_id | (int) | Идентификатор внутренней сети. Если не задан, то будет создана новая внутренняя сеть. Если задан, то заданная внутренняя сеть должна иметь подключение к внешней сети. Если задано `extnet_only: true`, то параметр игнорируется.
|
|
||||||
| with_lb | (bool)<br>Default: `true` | Создание кластера Kubernetes с размещением Master-узлов за балансировщиком нагрузки. В ином случае каждый узел получит отдельный адрес из внешней сети.
|
|
||||||
| workers | (list) | Список словарей, описывающих группы Worker-узлов.<br>Ключи словаря:<br>• `annotations` (list) (необязательный) - список строк с annotations в формате: `key1=value1`<br>• `ci_user_data` (dict) (необязательный) - конфигурация для cloud-init<br>• `cpu` (int) (необязательный) - количество виртуальных процессоров на узле; обязателен при создании группы<br>• `disk` (int) (необязательный) - объём загрузочного диска на узле; обязателен при создании группы<br>• `labels` (list) (необязательный) - список строк с labels в формате: `label1=value1`<br>• `name` (string) (обязательный) - имя группы Worker-узлов<br>• `num` (int) (необязательный) - количество узлов; обязателен при создании группы<br>• `pool` (str) (необязательный) - пул СХД, заданной ключом `sep_id`; если не задан, то пул будет выбран платформой<br>• `ram` (int) (необязательный) - объём оперативной памяти на узле; обязателен при создании группы<br>• `sep_id` (int) (необязательный) - идентификатор СХД; если не задан, то используется СХД образа узла<br>• `taints` (list) (необязательный) - список строк с taints в формате: `key1=value1:NoSchedule` |
|
|
||||||
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_k8s
|
|
||||||
|
|
||||||
Модуль **decort_k8s** возвращает информацию о кластере в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Идентификатор аккаунта. |
|
|
||||||
| config | str | Kuber config кластера.
|
|
||||||
| id | int | Идентификатор кластера. |
|
|
||||||
| k8s_Masters | dict | Словарь с информацией о группе Master-узлов.<br>Ключи словаря:<br>• `cpu` (int) - количество виртуальных процессоров<br>• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ<br>• `disk` (int) - объём загрузочного диска<br>• `id` (int) - идентификатор группы<br>• `name` (str) - имя группы<br>• `num` (int) - количество узлов<br>• `ram` (int) - объём оперативной памяти
|
|
||||||
| k8s_Workers | dict | Список словарей с информацией о группах Worker-узлов.<br>Ключи словаря:<br>• `cpu` (int) - количество виртуальных процессоров<br>• `detailedInfo` (list) - список словарей с информацией об узлах; ключи словаря: `id` (int) - идентификатор ВМ, `name` (str) - имя ВМ, `status` (str) - статус ВМ, `techStatus` (str) - технический статус ВМ<br>• `disk` (int) - объём загрузочного диска<br>• `id` (int) - идентификатор группы<br>• `labels` (list) - список строк с labels<br>• `name` (str) - имя группы<br>• `num` (int) - количество узлов<br>• `ram` (int) - объём оперативной памяти<br>• `taints` (list) - список строк с taints
|
|
||||||
| name | string | Имя кластера. |
|
|
||||||
| rg_id | int | Идентификатор ресурсной группы. |
|
|
||||||
| state | string | Статус кластера. |
|
|
||||||
| techStatus | string | Технический статус кластера. |
|
|
||||||
| vins_id | int | Идентификатор внутренней сети кластера. |
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_k8s
|
|
||||||
|
|
||||||
|
|
||||||
Пример создания кластера Kubernetes с именем `cluster-test` с получением Kuber config.
|
|
||||||
```
|
|
||||||
- name: Create a k8s cluster named cluster-test
|
|
||||||
decort_k8s:
|
|
||||||
authenticator: jwt
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
getConfig: true
|
|
||||||
jwt: "{{ token.jwt }}"
|
|
||||||
k8ci_id: 18
|
|
||||||
name: cluster-test
|
|
||||||
rg_id: 125
|
|
||||||
workers:
|
|
||||||
- cpu: 10
|
|
||||||
disk: 10
|
|
||||||
name: wg1
|
|
||||||
num: 1
|
|
||||||
pool: null
|
|
||||||
ram: 1024
|
|
||||||
sep_id: null
|
|
||||||
- cpu: 10
|
|
||||||
disk: 10
|
|
||||||
name: wg2
|
|
||||||
num: 2
|
|
||||||
pool: null
|
|
||||||
ram: 1024
|
|
||||||
sep_id: null
|
|
||||||
register: k8s_cluster
|
|
||||||
```
|
|
||||||
@@ -1,109 +0,0 @@
|
|||||||
# Модуль decort_kvmvm
|
|
||||||
## Обзор модуля decort_kvmvm
|
|
||||||
|
|
||||||
Модуль **decort_kvmvm** предназначен для выполнения следующих действий над виртуальными машинами:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- остановить/приостановить/запустить
|
|
||||||
- подключить/отключить диски с данными
|
|
||||||
- подключить/отключить сети
|
|
||||||
- изменить
|
|
||||||
- объём загрузочного диска в большую сторону
|
|
||||||
- количество CPU
|
|
||||||
- объём ОЗУ
|
|
||||||
- тэги
|
|
||||||
- affinity метку
|
|
||||||
- affinity правила
|
|
||||||
- anti-affinity правила
|
|
||||||
- удалить (безвозвратно)
|
|
||||||
|
|
||||||
## Параметры модуля decort_kvmvm
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля **decort_kvmvm**. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_kvmvm`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| aaff_rule | (list) | Список словарей, описывающих anti-affinity правила.<br>Ключи словаря:<br>• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)<br>• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`<br>• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)<br>• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила<br>• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`).<br>Чтобы очистить anti-affinity правила, нужно указать пустой список `[]`. |
|
|
||||||
| account_id | (int) | Идентификатор аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией `account_id` и `rg_name`. Если задан `account_id`, то `account_name` игнорируется.|
|
|
||||||
| account_name | (string) | Имя аккаунта. Этот параметр является опциональным и используется в сценариях, когда уже существующая ресурсная группа задается комбинацией `account_name` и `rg_name`. Если задан `account_id`, то `account_name` игнорируется. |
|
|
||||||
| aff_rule | (list) | Список словарей, описывающих affinity правила.<br>Ключи словаря:<br>• `topology` (string) (обязательный) - назначение правила; значения: `node` (узел) или `compute` (ВМ)<br>• `policy` (string) (обязательный) - степень "необходимости" этого правила; значения: `RECOMMENDED` или `REQUIRED`<br>• `mode` (string) (обязательный) - режим сравнения; значения: `EQ` (должно соответствовать), `NE` (не должно соответствовать), `ANY` (любое)<br>• `key` (string) (обязательный) - ключ, который учитывается при анализе данного правила<br>• `value` (string) (обязательный) - значение ключа, учитываемого при анализе данного правила (зависит от ключа `mode`).<br>Чтобы очистить affinity правила, нужно указать пустой список `[]`. |
|
|
||||||
| affinity_label | (str) | Метка affinity.<br>Чтобы очистить метку affinity, нужно указать пустую строку `""`. |
|
|
||||||
| annotation | (string) | Опциональное описание виртуальной машины. Этот параметр используется только при создании.|
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DCORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | (str)<br>Значения:<br>`oauth2`<br>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| boot_disk | (int) | Объём загрузочного диска виртуальной машины в ГБ.<br>Если параметр не задан, размер будет равен размеру образа.<br>Если не заданы этот параметр и параметры `image_id` и `image_name`, то виртуальная машина будет создана без загрузочного диска. |
|
|
||||||
| chipset | (string)<br>Значения:<br>`q35`<br>`i440fx`<br>Default: `i440fx` | Эмулируемый чипсет. |
|
|
||||||
| ci_user_data | (dict) | конфигурация для cloud-init
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) данная виртуальная машина. Данный параметр является обязательным. |
|
|
||||||
| cpu | (int) | Количество виртуальных процессоров, выделяемых виртуальной машине. |
|
|
||||||
| data_disks | (list) | Список идентификаторов дисков, которые следует подключить к данной виртуальной машине как дополнительные.<br>Чтобы отключить все диски, нужно указать пустой список `[]`.|
|
|
||||||
| id | (int) | Уникальный цифровой идентификатор виртуальной машины. Этот параметр используется как один из методов идентификации существующей ВМ (альтернатива – по комбинации `name`, `rg_name` и `account_name`). Если при вызове модуля **decort_kvmvm** существующая ВМ идентифицируется по `id`, то параметры `account_id`, `account_name`, `rg_id` и `rg_name` игнорируются. |
|
|
||||||
| image_id | (int) | Уникальный цифровой идентификатор образа, на базе которого следует создать виртуальную машину.<br>При создании задать этот параметр или параметр `image_name`. При любых других операциях данные параметры игнорируются.<br>Если заданы оба этих параметра (`image_id` и `image_name`), то `image_name` игнорируется.<br>Если этот параметр и параметр `image_name` не заданы, то виртуальная машина будет создана без образа. |
|
|
||||||
| image_name | (string) | Название образа, на базе которого следует создать ВМ.<br>При создании требуется задать этот параметр или параметр `image_id`. При любых других операциях данные параметры игнорируются.<br>Если этот параметр и параметр `image_id` не заданы, то виртуальная машина будет создана без образа. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_JWT`.
|
|
||||||
| name | (string) | Имя ВМ. Чтобы модуль **decort_kvmvm** мог управлять сервером по его названию, также необходимо задать комбинацию `account_name` и `rg_name` или `rg_id`.<br>Если для существующей ВМ указаны и `name`, и `id`, то параметр `name` используется для переименования. |
|
|
||||||
| network_order_changing | (bool)<br>Default:<br>`false` | Соблюдение очерёдности сетей при их изменении.<br>Если `true`, то сравнение списка уже подключённых к ВМ сетей со списком из параметра `networks` будет производится <u>с учётом очерёдности сетей</u> и, <u>при выявлении несоответствия, сначала будет произведено отключение всех сетей от ВМ</u>, а затем подключение сетей в соответствии с параметром `networks`.<br> Если `false`, то очерёдность при сравнении учитываться не будет. Соответственно, сети, которые имеются в списке параметра `networks` и уже подключены к ВМ, переподключаться не будут, что может кратно уменьшить время выполнения изменения сетей. |
|
|
||||||
| networks | (list) | Список словарей, описывающих сети ВМ.<br>Ключи словаря:<br>• `type` (string) (обязательный) - тип сети; значения: `VINS` (внутренняя), `EXTNET` (внешняя), `VFNIC` (вирт. функция), `DPDK`, `EMPTY` (без подключения к сети)<br>• `id` (int) (необязательный) - идентификатор внутренней/внешней/DPDK сети или пула вирт. функций<br>• `ip_addr` (string) (необязательный) - IP-адрес, используемый для подключения к данной сети; применимо только для `VINS` и `EXTNET`.<br>ВМ не может одновременно быть подключена к сети DPDK и к сети другого типа.<br>Чтобы отключить все сети, нужно указать пустой список `[]`. |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль **decort_kvmvm** будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| pool | (str) | Пул СХД, заданной параметром `sep_id`. Если пул не задан, то он будет выбран платформой. |
|
|
||||||
| ram | (int) | Объем оперативной памяти в МБ, выделенной данной ВМ. Параметр является обязательным при создании. Если указать его для уже существующей ВМ, то будет выполнена попытка изменить объем выделенной памяти. |
|
|
||||||
| rg_id | (int) | Уникальный цифровой идентификатор уже существующей ресурсной группы, в которой будет создана новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ (альтернативой является задание комбинации `account_name` и `rg_name`).|
|
|
||||||
| rg_name | (string) | Имя уже существующей ресурсной группы, в которой будет создаа новая или находится уже существующая ВМ. Данный параметр является одним из методов идентификации существующей РГ, когда задается пара `account_name` и `rg_name` (альтернативой является задание `rg_id`). Если заданы и `rg_id`, и `rg_name`, то параметр `rg_name` игнорируется.|
|
|
||||||
| sep_id | (int) | Идентификатор СХД для загрузочного диска ВМ. Если не задан, то будет использоваться СХД образа.|
|
|
||||||
| ssh_key | (string) | Открытая часть SSH-ключа, который необходимо добавить на создаваемую ВМ для пользователя, заданного параметром `ssh_key_user`. Данный параметр применим только для ОС Linux, используется только при создании и игнорируется при других операциях. |
|
|
||||||
| ssh_key_user | (string) | Имя пользователя в гостевой ОС (только для Linux), для которого добавляется SSH-ключ, заданный параметром `ssh_key`. Данный параметр является обязательным, если задан `ssh_key`. Используется только при создании и игнорируется при других операциях. |
|
|
||||||
| state | (str)<br>Значения:<br>`present`<br>`absent`<br>`poweredon`<br>`poweredoff`<br>`halted`<br>`paused`<br>`check`<br>Default: `present` | Целевое состояние ВМ.<br> Значение `halted` - синоним к `poweredoff`. Значения `present` и `poweredon` равнозначны. <br>Значение `check` вызывает модуль в _read-only_ режиме и считывает характеристики существующей ВМ. |
|
|
||||||
| tag | (dict) | Словарь, пары ключ-значение которого, описывают тэги для ВМ.<br>Чтобы очистить теги, нужно указать пустой словарь `{}`.|
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_kvmvm
|
|
||||||
|
|
||||||
Модуль **decort_kvmvm** возвращает информацию о виртуальной машине в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | int | Идентификатор аккаунта. |
|
|
||||||
| arch | string | Архитектура ВМ. |
|
|
||||||
| chipset | string | Эмулируемый чипсет. |
|
|
||||||
| cpu | int | Количество виртуальных процессоров. |
|
|
||||||
| data_disks | list | Список идентификаторов дисков с данными, подключенных к ВМ. |
|
|
||||||
| disk_size | int | Размер загрузочного диска в ГБ. |
|
|
||||||
| id | int | Идентификатор ВМ. |
|
|
||||||
| image_id | id | Идентификатор образа.
|
|
||||||
| interfaces | list | Список словарей, описывающих сетевые интерфейсы ВМ, отсортированный по номеру слота PCI. |
|
|
||||||
| name | string | Имя ВМ. |
|
|
||||||
| password | string | Пароль пользователя ОС по умолчанию. |
|
|
||||||
| private_ips | list | Список IP-адресов на сетевых интерфейсах ВМ, которые подключены к внутренним сетям. |
|
|
||||||
| public_ips | list | Список IP адресов на сетевых интерфейсах ВМ, которые подключены к внешним сетям. |
|
|
||||||
| ram | int | Объём ОЗУ ВМ в МБ. |
|
|
||||||
| rg_id | int | Идентификатор ресурсной группы, которой принадлежит данная ВМ. |
|
|
||||||
| state | string | Состояние ВМ.|
|
|
||||||
| tags | dict | Словарь, пары ключ-значение которого, описывают тэги ВМ.
|
|
||||||
| tech_status | str | Технический статус ВМ.
|
|
||||||
| username | string | Имя пользователя ОС по умолчанию. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_kvmvm
|
|
||||||
|
|
||||||
В данном примере создается ВМ с именем MyFirstVM.
|
|
||||||
```
|
|
||||||
- name: Сreate VM
|
|
||||||
decort_kvmvm:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
cpu: 2
|
|
||||||
image_id: "{{ my_img.facts.id }}"
|
|
||||||
name: MyFirstVM
|
|
||||||
networks:
|
|
||||||
- type: VINS
|
|
||||||
id: "{{ my_vins.facts.id }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
ram: 4096
|
|
||||||
rg_id: "{{ my_rg.facts.id }}"
|
|
||||||
register: my_vm
|
|
||||||
```
|
|
||||||
@@ -1,893 +0,0 @@
|
|||||||
# Модуль decort_lb
|
|
||||||
## Обзор модуля decort_lb
|
|
||||||
|
|
||||||
Модуль **decort_lb** предназначен для выполнения следующих действий над балансировщиками нагрузки:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- отключить/включить/запустить/перезапустить
|
|
||||||
- изменить конфигурации backend и frontend
|
|
||||||
- удалить (в корзину или безвозвратно)
|
|
||||||
- восстановить из корзины
|
|
||||||
|
|
||||||
## Параметры модуля decort_lb
|
|
||||||
Ниже приведен полный список параметров для модуля **decort_lb**:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="3">Параметр</th>
|
|
||||||
<th>Тип</th>
|
|
||||||
<th>Описание</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
account_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор аккаунта.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
account_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя аккаунта.
|
|
||||||
<br> Может быть альтернативой параметру <code>account_id</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
annotation
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Default: <code>Managed by Ansible module decort_lb</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Описание балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
app_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор приложения, использующийся для подключения к контроллеру
|
|
||||||
облачной платформы DECORT в режиме <code>authenticator: oauth2</code>.
|
|
||||||
Данный параметр является обязательным для указанного режима. Если
|
|
||||||
параметр не задан в playbook, модуль будет использовать значение
|
|
||||||
переменной окружения <code>DECORT_APP_ID</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
app_secret
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Секретный ключ приложения, который используется для подключения к
|
|
||||||
контроллеру облачной платформы DECORT в режиме
|
|
||||||
<code>authenticator: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Так как он содержит секретную
|
|
||||||
информацию, то его не рекомендуется задавать непосредственно в
|
|
||||||
playbook. Если параметр не задан в playbook, то модуль будет
|
|
||||||
использовать значение переменной окружения
|
|
||||||
<code>DECORT_APP_SECRET</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
authenticator
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br/><code>oauth2</code>
|
|
||||||
<br/><code>jwt</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Режим аутентификации при подключении к контроллеру облачной платформы
|
|
||||||
DECORT. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
backends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
algorithm
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>leastconn</code>
|
|
||||||
<br><code>roundrobin</code>
|
|
||||||
<br><code>static-rr</code>
|
|
||||||
<br>Default: <code>roundrobin</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Используемый алгоритм.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
<a name="backend_default_settings">
|
|
||||||
default_settings
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Cловарь, описывающий параметры по умолчанию для backend-серверов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
downinter
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>1000</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Интервал в миллисекундах между двумя последовательными проверками
|
|
||||||
доступности сервера, который считается недоступным.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
fall
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>2</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество последовательных неудачных проверок доступности, после
|
|
||||||
которых сервер, ранее считавшийся доступным, начинает считаться
|
|
||||||
недоступным и временно исключается из схемы балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
inter
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>5000</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Интервал в миллисекундах между двумя последовательными проверками
|
|
||||||
доступности сервера, который считается доступным.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
maxconn
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>250</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Лимит одновременных подключений к серверу. При достижении этого лимита
|
|
||||||
сервер временно исключается из схемы балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
maxqueue
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>256</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Лимит соединений, ожидающих в очереди. Когда этот предел будет
|
|
||||||
достигнут, все последующие подключения будут перенаправлены
|
|
||||||
на другие серверы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
rise
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>2</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Количество проверок, которые должен пройти сервер, считавшийся
|
|
||||||
недоступным, чтобы начать считаться доступным и снова быть
|
|
||||||
включенным в схему балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
slowstart
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>60000</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Интервал в миллисекундах с момента когда сервер начинает считаться
|
|
||||||
доступным, по истечении которого количество фактически разрешенных
|
|
||||||
подключений к этому серверу будет возвращено до 100% от
|
|
||||||
установленного лимита.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
weight
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Default: <code>100</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Вес сервера для использования в алгоритмах балансировки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название backend. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
controller_url
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL контроллера, соответствующего экземпляру облачной платформы
|
|
||||||
DECORT. Данный параметр является обязательным.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
ext_net_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор внешней сети.
|
|
||||||
<br>Может быть не задан, если задан <code>vins_id</code> -
|
|
||||||
в таком случае балансировщик будет подключён только к
|
|
||||||
внутренней сети.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
<a name="frontends">
|
|
||||||
frontends
|
|
||||||
</a>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации frontend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
backend
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название используемого backend. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
bindings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации binding.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
address
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
IP-адрес.
|
|
||||||
<br>Если не задан, то будет использоваться основной IP-адрес
|
|
||||||
балансировщика во внешней сети или, если подключена только
|
|
||||||
внутренняя сеть, основной IP-адрес балансировщика во внутренней сети.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
port
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>1</code>-<code>65535</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Порт. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
ha_lb
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
bool
|
|
||||||
<br>Default: <code>false</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Использовать схему высокой доступности для создаваемого балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
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="3">
|
|
||||||
lb_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор балансировщика нагрузки.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
lb_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
oauth2_url
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
URL авторизационного сервера, работающего по протоколу Oauth2,
|
|
||||||
который должен использоваться в режиме
|
|
||||||
<code>authenticator: oauth2</code>. Данный параметр является
|
|
||||||
обязательным для указанного режима. Если параметр не задан в
|
|
||||||
playbook, модуль будет использовать значение переменной
|
|
||||||
окружения <code>DECORT_OAUTH2_URL</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
permanently
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
<br>Default: <code>false</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Если выполняется удаление, то выполнить безвозвратное удаление
|
|
||||||
(минуя корзину).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
rg_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор ресурсной группы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
rg_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя ресурсной группы.
|
|
||||||
<br> В комбинации с заданным аккаунтов может быть альтернативой
|
|
||||||
параметру <code>rg_id</code>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
servers
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend-серверов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
address
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
IP-адрес. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
backends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(list)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих параметры backend-сервера для разных
|
|
||||||
конфигураций backend.
|
|
||||||
<br>Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
check
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>enabled</code>
|
|
||||||
<br><code>disabled</code>
|
|
||||||
<br>Default: <code>enabled</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Проверка доступности сервера.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название конфигурации backend. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
port
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>1</code>-<code>65535</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Порт. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td>
|
|
||||||
server_settings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(dict)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Словарь, описывающий параметры backend-сервера.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словаря
|
|
||||||
<a href=#backend_default_settings>
|
|
||||||
default_settings
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название. Обязательный параметр.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
state
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
<br>Значения:
|
|
||||||
<br><code>present</code>
|
|
||||||
<br><code>absent</code>
|
|
||||||
<br><code>enabled</code>
|
|
||||||
<br><code>disabled</code>
|
|
||||||
<br><code>restart</code>
|
|
||||||
<br>Default: <code>present</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Целевое состояние балансировщика нагрузки.
|
|
||||||
<br>Выполнение с <code>state=restart</code> позволяет выполнить
|
|
||||||
перезапуск балансировщика, соответственно, всегда возвращает
|
|
||||||
<code>changed: true</code>.
|
|
||||||
<br>Значения <code>present</code> и <code>enabled</code> равнозначны
|
|
||||||
и соответствуют включённому и запущенному балансировщику.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
verify_ssl
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(bool)
|
|
||||||
<br>Default: <code>true</code>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Позволяет отключить проверку SSL сертификатов при выполнении API
|
|
||||||
вызовов в адрес контроллера облачной инфраструктуры, например,
|
|
||||||
при работе с изолированной облачной инфраструктурой, использующей
|
|
||||||
самоподписанные сертификаты. Применяйте данный параметр с
|
|
||||||
осторожностью, предпочтительно в защищенных средах.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
vins_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(int)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор внутренней сети.
|
|
||||||
<br>Может быть не задан, если задан <code>ext_net_id</code> -
|
|
||||||
в таком случае балансировщик будет подключён только к
|
|
||||||
внешней сети.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="3">
|
|
||||||
vins_name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
(str)
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя внутренней сети.
|
|
||||||
<br> В комбинации с заданной РГ может быть альтернативой для
|
|
||||||
параметра <code>vins_id</code>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_lb
|
|
||||||
|
|
||||||
Модуль **decort_lb** возвращает информацию о балансировщике в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th colspan="4">
|
|
||||||
Ключ
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Тип
|
|
||||||
<br>данных
|
|
||||||
</th>
|
|
||||||
<th>
|
|
||||||
Описание
|
|
||||||
</th>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
backends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
algorithm
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Используемый алгоритм.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название конфигурации backend.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
serverDefaultSettings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Cловарь, описывающий параметры по умолчанию для backend-серверов.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словаря
|
|
||||||
<a href=#backend_default_settings>
|
|
||||||
default_settings
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="3">
|
|
||||||
servers
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации backend-серверов.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
address
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
IP-адрес.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
check
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Проверка доступности сервера.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Название.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
port
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Порт.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td></td>
|
|
||||||
<td></td>
|
|
||||||
<td colspan="2">
|
|
||||||
serverSettings
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
dict
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Cловарь, описывающий параметры backend-сервера.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словаря
|
|
||||||
<a href=#backend_default_settings>
|
|
||||||
default_settings
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
frontends
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
list
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Список словарей, описывающих конфигурации frontend.
|
|
||||||
<br> Ключи данного словаря аналогичны ключам словарей списка
|
|
||||||
<a href=#frontends>
|
|
||||||
frontends
|
|
||||||
</a>.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
gid
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор физического кластера (Grid ID).
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
name
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Имя балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
rg_id
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
int
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Идентификатор ресурсной группы.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td colspan="4">
|
|
||||||
state
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
str
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
Статус балансировщика.
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
@@ -1,131 +0,0 @@
|
|||||||
# Модуль decort_osimage
|
|
||||||
## Обзор модуля decort_osimage
|
|
||||||
|
|
||||||
Модуль decort_osimage предназначен для выполнения следующих действий над образами, созданными в облачной платформе DECORT:
|
|
||||||
- шаблонные образы:
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- изменить имя
|
|
||||||
- удалить
|
|
||||||
- виртуальные образы
|
|
||||||
- создать
|
|
||||||
- получить информацию
|
|
||||||
- изменить
|
|
||||||
- имя
|
|
||||||
- целевой образ
|
|
||||||
|
|
||||||
## Параметры модуля decort_osimage
|
|
||||||
Ниже приведен полный список параметров для модуля decort_osimage.
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_Id | (int) | Уникальный целочисленный идентификатор аккаунта. Используется для поиска образов, а тажке для их создания. |
|
|
||||||
| account_name | (string) | Имя аккаунта. Используется для получения уникального целочисленного идентификатора аккаунта. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| boottype | (string)<br>Default: `uefi` | Тип загрузки образа. Используется при создании образа.|
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должен быть создан (или уже существует) образ. Данный параметр является обязательным. |
|
|
||||||
| drivers | (string)<br>Default: `KVM_X86` | Тип виртуальных машин, подходящих для образа. Используется при создании образа.|
|
|
||||||
| hotresize | (bool)<br>Default: `false` | Поддерживает ли образ "горячее" изменение размера. По умолчанию установлено `false`. Используется при создании образа операционной системы. |
|
|
||||||
| image_id | (int) | Идентификатор шаблонного образа.
|
|
||||||
| image_name | (str) | Имя шаблонного образа.
|
|
||||||
| image_password | (string) | Опциональный пароль для образа. Используется при создании образа.|
|
|
||||||
| image_username | (string) | Опциональное имя пользователя для образа. Используется при создании образа. |
|
|
||||||
| imagetype | (string)<br>Default: `linux` | Тип образа. Используется при создании образа.|
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| passwordDL | (string) | Пароль для скачивания по URL-адресу. Используется при создании образа. |
|
|
||||||
| pool | (str) | Имя пула СХД. Используется для поиска существующего образа.
|
|
||||||
| poolName | (string) | Имя пула СХД. Используется при создании образа. |
|
|
||||||
| sepId | (integer) | Уникальный целочисленный идентификатор СХД. Используется при создании образа. |
|
|
||||||
| sep_id | (int) | Идентификатор СХД. Используется для поиска существующего образа.
|
|
||||||
| state | (string)<br>Значения:<br>`present`<br>`absent`<br>Default: `present` | Целевое состояние образа. `present` - существует, `absent` - удалён. |
|
|
||||||
| url | (string) | URL-адрес, с которого будет загружен образ. Используется при создании образа.|
|
|
||||||
| usernameDL | (string) | Имя пользователя для загрузки образа с заданного URL-адреса. Используется при создании образа. |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| virt_id | (integer) | Уникальный целочисленный идентификатор виртуального образа. Может использоваться для получения информации о виртуальном образе, а также для привязки к нему другого образа.|
|
|
||||||
| virt_name | (string) | Имя виртуального образа. Используется для получения `virt_id`, а в последствии информации о виртуальном образе, а также для создания виртуального образа и привязки к нему другого образа.|
|
|
||||||
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_osimage
|
|
||||||
|
|
||||||
Модуль decort_osimage возвращает информацию об образе в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| accountId | int | Идентификатор аккаунта.
|
|
||||||
| id | int | Уникальный целочисленный идентификатор данного образа. |
|
|
||||||
| linkto | int | Уникальный целочисленный идентификатор образа, который привязан к данному виртуальному. |
|
|
||||||
| name | string | Имя образа. |
|
|
||||||
| pool | string | Имя пула на системе хранения данных, в котором находится данный образ.|
|
|
||||||
| sep_id | int | Идентификатор системы хранения данных, на которой хранится данный образ. |
|
|
||||||
| size | int | Размер образа в ГБ. |
|
|
||||||
| state | string | Текущий статус образа. |
|
|
||||||
| type | string | Тип образа. |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_osimage
|
|
||||||
|
|
||||||
|
|
||||||
Пример создания шаблонного образа с операционной системой Alpine Linux.
|
|
||||||
```
|
|
||||||
- name: Create template image
|
|
||||||
decort_osimage:
|
|
||||||
account_Id: 12345
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1
|
|
||||||
url: https://dl-cdn.alpinelinux.org/alpine/v3.19/releases/cloud/nocloud_alpine-3.19.1-x86_64-uefi-cloudinit-r0.qcow2
|
|
||||||
verify_ssl: false
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
|
|
||||||
Пример получения информации о существующем шаблонном образе по его имени.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Get template image
|
|
||||||
decort_osimage:
|
|
||||||
account_Id: 12345
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1
|
|
||||||
verify_ssl: false
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
|
|
||||||
Пример создания виртуального образа. Также в случае, если виртуальный образ уже существует, но к нему привязан другой шаблонный образ, он привяжет к себе указанный в примере шаблонный образ.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Create virtual image
|
|
||||||
decort_osimage:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1
|
|
||||||
virt_name: alpine_last
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
Обратите внимание, что в данном примере можно использовать как `image_name`, так и `image_id`. Также можно использовать либо `virt_name`, либо `virt_id`.
|
|
||||||
|
|
||||||
Пример переименования образа.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Rename template image
|
|
||||||
decort_osimage:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
image_name: alpine_linux_3.19.1_new_name
|
|
||||||
image_id: 54321
|
|
||||||
register: osimage
|
|
||||||
```
|
|
||||||
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
# Модуль decort_pfw
|
|
||||||
## Обзор модуля decort_pfw
|
|
||||||
|
|
||||||
Модуль **decort_pfw** предназначен для настройки правил переадресации портов (port forwarding, destination NAT) на виртуальном маршрутизаторе заданной внутренней сети для заданной виртуальной машины.
|
|
||||||
Модуль поддерживает выполнение следующих действий над правилами:
|
|
||||||
- добавить
|
|
||||||
- получить информацию
|
|
||||||
- удалить
|
|
||||||
|
|
||||||
## Параметры модуля decort_pfw
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля **decort_pfw**. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_pfw`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`. |
|
|
||||||
| authenticator | (str)<br>Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Обязательный параметр. |
|
|
||||||
| compute_id | (int) | Идентификатор виртуальной машины. IP-адрес, который данная ВМ имеет во внутренней сети, заданной параметром `vins_id`, будет использоваться как внутренний IP-адрес в правилах. Обязательный параметр. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| rules | (list) | Список словарей, описывающих правила переадресации портов для заданной ВМ (параметр `compute_id`) на виртуальном маршрутизаторе заданной внутренней сети (параметр `vins_id`).<br>Ключи словаря:<br>• `local_port` (int) (обязательный) - внутренний порт; значения: от `1` до `65535`<br>• `proto` (str) (обязательный) - протокол; значения: `tcp` или `udp`<br>• `public_port_end` (int) (необязательный) - верхняя граница диапазона внешних портов; значения: от значения ключа `public_port_start` до `65535`;<br>• `public_port_start` (int) (обязательный) - нижняя граница диапазона внешних портов; значения: от `1` до `65535` |
|
|
||||||
| state | (str)<br>Значения:<br/>`present`<br/>`absent`<br>Default: `present` | Целевое состояние правил.<br>Если `state=absent`, то, независимо от содержания параметра `rules`, будут удалены все правила для заданной ВМ (параметр `compute_id`) на виртуальном маршрутизаторе заданной внутренней сети (параметр `vins_id`). |
|
|
||||||
| verify_ssl | (bool)<br>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| vins_id | (int) | Идентификатор внутренней сети, на виртуальном маршрутизаторе которой настраиваются правила переадресации портов. Заданная ВМ (параметр `compute_id`) должна быть подключена к этой сети. Обязательный параметр. |
|
|
||||||
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_pfw
|
|
||||||
|
|
||||||
Модуль **decort_pfw** возвращает информацию о правилах переадресации портов и сопутствующую информацию в виде словаря `facts` со следующими ключами:
|
|
||||||
|
|
||||||
|
|
||||||
|Ключ | Тип данных | Описание|
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| compute_id | int | Идентификатор ВМ. |
|
|
||||||
| public_ip | string | IP-адрес во внешней сети, настроенный на виртуальном маршрутизаторе внутренней сети. |
|
|
||||||
| rules | list | Список словарей, описывающих правила переадресации портов.<br>Ключи словаря:<br>• `id` (int) - идентификатор правила<br>• `localIp` (str) - IP-адрес ВМ<br>• `localPort` (int) - внутренний порт<br>• `protocol` (str) - протокол<br>• `publicPortEnd` (int) - верхняя граница диапазона внешних портов<br>• `publicPortStart` (int) - нижняя граница диапазона внешних портов<br>• `vmId` (int) - идентификатор ВМ<br>• `vmName` (str) - имя ВМ |
|
|
||||||
| state | string | Статус правил. Значения: `PRESENT` или `ABSENT`. |
|
|
||||||
| vins_id | int | Идентификатор внутренней сети. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_pfw
|
|
||||||
|
|
||||||
В данном примере для существующей ВМ (параметр `compute_id`), подключённой к внутренней сети (параметр `vins_id`), настраиваются два правила переадресации портов:
|
|
||||||
|
|
||||||
- Правило для одного порта: внешний порт `30022` на внутренний порт `22` по протоколу `tcp`.
|
|
||||||
- Правило для диапазона портов: внешние порты с `30080` по `30085` на внутренние порты с `30080` по протоколу `udp`.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: Add port forwarding rules
|
|
||||||
decort_pfw:
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
authenticator: oauth2
|
|
||||||
compute_id: "{{ my_vm.facts.id }}"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
rules:
|
|
||||||
- local_port: 22
|
|
||||||
proto: tcp
|
|
||||||
public_port_start: 30022
|
|
||||||
- local_port: 30080
|
|
||||||
proto: udp
|
|
||||||
public_port_end: 30085
|
|
||||||
public_port_start: 30080
|
|
||||||
vins_id: "{{ my_vins.facts.id }}"
|
|
||||||
register: my_pfw_rules
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере результат выполнения модуля **decort_pfw** записывается в переменную `my_pfw_rules`. Для доступа к списку правил используйте следующую конструкцию:
|
|
||||||
|
|
||||||
```
|
|
||||||
"{{ my_pfw_rules.facts.rules }}"
|
|
||||||
```
|
|
||||||
@@ -1,229 +0,0 @@
|
|||||||
# Модуль decort_rg
|
|
||||||
|
|
||||||
## Обзор модуля decort_rg
|
|
||||||
|
|
||||||
Модуль decort_rg предназначен для создания, редактирования и удаления ресурсных групп (Resource Group, RG) в облачной платформе DECORT, а также для получения информации об уже существующей ресурсной группе. Модуль decort_rg позволяет:
|
|
||||||
|
|
||||||
- создавать ресурсные группы
|
|
||||||
- удалять ресурсные группы (в корзину или безвозвратно, с удалением содержимого или без)
|
|
||||||
- восстанавливать ресурсные группы из корзины
|
|
||||||
- включать/отключать ресурсные группы
|
|
||||||
- запрашивать информацию об уже существующих ресурсных группах
|
|
||||||
- изменять ресурсные группы:
|
|
||||||
- переименовывать
|
|
||||||
- настраивать квоты
|
|
||||||
- задавать стандартную сеть
|
|
||||||
- настраивать права доступа для пользователей
|
|
||||||
- изменять доступные пулы СХД
|
|
||||||
|
|
||||||
## Параметры модуля decort_rg
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_rg. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: `ansible-doc -t module decort_rg`
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
|----------|--------------------------|----------|
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то account_name игнорируется. |
|
|
||||||
| account_name | (string) | Имя аккаунта, в рамках которого создаётся или уже существует данная ресурсная группа. Должно быть задано либо имя, либо идентификатор учётной записи (см. параметр `account_id`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется. |
|
|
||||||
| access | (dict) | Параметр, позволяющий выдать, забрать или изменить права у пользователя в ресурсной группе. |
|
|
||||||
| annotation | (string) | Текстовое описание ресурсной группы. Данный параметр является опциональным и учитывается только при создании ресурсной группы, а при всех прочих операциях игнорируется. |
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`. |
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения DECORT_APP_SECRET. |
|
|
||||||
| authenticator | Значения:<br>`oauth2`<br>`jwt`| Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным.|
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данная ресурсная группа. Данный параметр является обязательным. |
|
|
||||||
| def_netId | (int) | Уникальный целочисленный идентификатор внутренней или внешней сети. Используется для изменения сети по умолчанию в ресурсной группе. |
|
|
||||||
| def_netType | (string) <br>Значения:<br>`PRIVATE`<br>`PUBLIC`<br>`NONE`<br>Default: `PRIVATE` | Тип сети по умолчанию в ресурсной группе. Используется при создании ресурсной группы, а также при изменении. |
|
|
||||||
| extNetId | (int) | Уникальный целочисленный идентификатор внешней сети.<br>Если `def_netType: PRIVATE`, то указывает какую внешнюю сеть подключить к создаваемой внутренней сети, которая будет задана как сеть по умолчанию для создаваемой РГ.<br>Если `def_netType: PUBLIC`, то указывает какую внешнюю сеть задать как сеть по умолчанию для создаваемой РГ. |
|
|
||||||
| extNetIp | (string) | IP-адрес для внешней сети, которая задана в параметре `extNetId`. |
|
|
||||||
| ipcidr | (string) | IP-адрес внутренней сети. Используется при создании ресурсной группы, чтобы задать IP-адрес сети для создаваемой внутренней сети, которая создастся вместе с ресурсной группой. Используется при параметре `def_netType` в значении `PRIVATE`. |
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`<br>Данный параметр является обязательным для указанного режима.<br>Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.<br>Если этот параметр не определен в _playbook_, то модуль будет использовать значение переменной окружения `DECORT_JWT`. |
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу Oauth2, который должен использоваться в режиме authenticator: oauth2. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
| owner | (string) | Владелец ресурсной группы. Задаётся при создании ресурсной группы, не обязателен. Если оставить пустое значение - владельцем ресурсной группы будет пользователь, создавший ресурсную группу. |
|
|
||||||
| permanently | (bool)<br>Default: `false` | Параметр, использующийся при удалении ресурсной группы. При значении `true` - ресурсная группа удалится безвозвратно, а при `false` - попадёт в корзину. |
|
|
||||||
| quotas | (dict) | Предназначено для задания или изменения квоты на ресурсы в составе данной ресурсной группы. |
|
|
||||||
| recursive_deletion | (bool)<br>Default: `false` | Рекурсивное удаление.<br>Если `true`, то при удалении РГ будет удалено всё её содержимое.<br>Если `false`, то при удалении непустой РГ работа модуля завершится ошибкой. |
|
|
||||||
| rename | (string) | Новое имя ресурсной группы.<br>Возможно переименование только включенной ресурсной группы. |
|
|
||||||
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы. Является обязательным при изменении РГ если не заданы `rg_name` и `account_id`/`account_name` |
|
|
||||||
| rg_name | (string) | Имя ресурсной группы. Данный параметр является обязательным при создании. |
|
|
||||||
| sep_pools| (list) | Список словарей, описывающих доступные пулы СХД.<br>Ключи словаря:<br>• `sep_id` (int) - идентификатор системы хранения данных.<br>• `pool_names` (list) - список названий пулов системы хранения данных.<br>Чтобы очистить список доступных пулов, нужно указать пустой список `[]`.|
|
|
||||||
| state | Значения:<br>`present`<br>`absent`<br>`enabled`<br>`disabled`<br>Default: `present` | Целевое состояние ресурсной группы. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_rg
|
|
||||||
|
|
||||||
Модуль decort_rg возвращает информацию о ресурсной группе в виде словаря facts со следующими ключами:
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
|------|------------|----------|
|
|
||||||
| account_id | int | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная ресурсная группа. |
|
|
||||||
| gid | int | Идентификатор физического кластера (Grid ID), на базе которого развёрнута ресурсная группа. |
|
|
||||||
| id | int | Уникальный целочисленный идентификатор ресурсной группы. |
|
|
||||||
| name | string | Имя ресурсной группы. Обратите внимание, что это имя уникально только в рамках аккаунта, которому принадлежит данная ресурсная группа. |
|
|
||||||
| state | string | Текущее состояние ресурсной группы. |
|
|
||||||
| quota | dict | Текущие квоты ресурсной группы. |
|
|
||||||
| resTypes | list | Список типов ресурсов, разрешенных к созданию в данной ресурсной группе. |
|
|
||||||
| defNetId | int | Уникальный целочисленный идентификатор сети по умолчанию в данной ресурсной группе. |
|
|
||||||
| defNetType | string | Тип сети по умолчанию в данной ресурсной группе. |
|
|
||||||
| ViNS | list | Список идентификаторов внутренних сетей ресурсной группы. |
|
|
||||||
| computes | list | Список идентификаторов виртуальных машин ресурсной группы. |
|
|
||||||
| uniqPools | list | Список доступных пулов СХД. |
|
|
||||||
|
|
||||||
## Пример использования модуля decort_rg
|
|
||||||
|
|
||||||
В данном примере показано, как создать ресурсную группу по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как создать ресурсную группу по имени MyRG в аккаунте MyAccount, также задать квоты и выдать права на чтение пользователю MyUser.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
access:
|
|
||||||
action: "grant"
|
|
||||||
user: "MyUser"
|
|
||||||
right: "R"
|
|
||||||
quotas:
|
|
||||||
cpu: 16
|
|
||||||
ram: 16384
|
|
||||||
disk: 100
|
|
||||||
ext_ips: 20
|
|
||||||
net_transfer: 1000
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как выдать доступ на чтение и запись пользователю MyUser в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
access:
|
|
||||||
action: "grant"
|
|
||||||
user: "MyUser"
|
|
||||||
right: "RCX"
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как сменить квоту в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
quotas:
|
|
||||||
cpu: 16
|
|
||||||
ram: 16384
|
|
||||||
disk: 100
|
|
||||||
ext_ips: 20
|
|
||||||
net_transfer: 1000
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как изменить сеть по умолчанию в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
def_netType: "PRIVATE"
|
|
||||||
def_netId: 99
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как переименовать ресурсную группу по имени MyRG на новое имя "NewRg" в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: manage resource group
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
rename: "NewRg"
|
|
||||||
rg_id: 27
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере результат работы модуля decort_rg записывается в переменную my_rg.
|
|
||||||
|
|
||||||
Модули DECORT, которым для работы требуется ресурсная группа, в качестве одного из параметров, как правило, принимают идентификатор `rg_id`. Так, например, используя модуль `decort_kvmvm` для создания виртуального сервера необходимо указать ресурсную группу, к которой будет принадлежать этот виртуальный сервер. Сделать это можно следующим образом:
|
|
||||||
|
|
||||||
```
|
|
||||||
<прочие детали опущены>
|
|
||||||
rg_id: "{{ my_rg.facts.id }}"
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере показано, как изменить доступные пулы СХД в ресурсной группе по имени MyRG в аккаунте MyAccount.
|
|
||||||
|
|
||||||
```
|
|
||||||
- name: change available sep pools
|
|
||||||
decort_rg:
|
|
||||||
authenticator: oauth2
|
|
||||||
app_id: "{{ my_app_id }}"
|
|
||||||
app_secret: "{{ my_app_secret }}"
|
|
||||||
oauth2_url: "https://sso.digitalenergy.online"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
account_name: "MyAccount"
|
|
||||||
rg_name: "MyRG"
|
|
||||||
sep_pools:
|
|
||||||
- sep_id: 1
|
|
||||||
pool_names:
|
|
||||||
- sep1_pool1
|
|
||||||
- sep1_pool2
|
|
||||||
- sep_id: 2
|
|
||||||
pool_names:
|
|
||||||
- sep2_pool1
|
|
||||||
state: present
|
|
||||||
register: my_rg
|
|
||||||
delegate_to: localhost
|
|
||||||
```
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,120 +0,0 @@
|
|||||||
# Модуль decort_vins
|
|
||||||
## Обзор модуля decort_vins
|
|
||||||
|
|
||||||
Модуль decort_vins предназначен для управления внутренними сетями (Virtual Network Segment, ViNS) и позволяет производить с ними следующие действия:
|
|
||||||
- создавать
|
|
||||||
- на уровне ресурсной группы (если РГ задана)
|
|
||||||
- на уровне аккаунта (если РГ не задана)
|
|
||||||
- удалять (безвозвратно)
|
|
||||||
- восстанавливать из корзины
|
|
||||||
- запрашивать информацию
|
|
||||||
- включать/отключать
|
|
||||||
- соединять (необходимы права администратора)
|
|
||||||
- изменять:
|
|
||||||
- включать/отключать SSH-доступ к виртуальному маршрутизатору (необходимы права администратора)
|
|
||||||
- включать/отключать режим **Custom Config** для виртуального маршрутизатора (необходимы права администратора)
|
|
||||||
- сохранять конфигурацию виртуального маршрутизатора для возможности последующего отката к ней (необходимы права администратора)
|
|
||||||
|
|
||||||
## Параметры модуля decort_vins
|
|
||||||
|
|
||||||
Ниже в алфавитном порядке приведен полный список параметров для модуля decort_vins. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
||||||
`ansible-doc -t module decort_vins`
|
|
||||||
|
|
||||||
|
|
||||||
| Параметр | Тип, допустимые значения | Описание |
|
|
||||||
| ------ | ------ | ------ |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит данная внутреняя сеть. При идентификации внутренней сети по имени (см. параметр `vins_name`) должен быть задан либо идентификатор, либо имя аккаунта (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
| account_name | (string) | Имя аккаунта, которому принадлежит данная внутренняя сеть. При идентификации внутренней сети по имени (см. параметр `vins_name`) должно быть задано либо имя, либо идентификатор аккаунта (см. параметр account_id). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.|
|
|
||||||
|annotation | (string)| Текстовое описание внутренней сети. Данный аргумент является опциональным и учитывается только при создании внутренней сети, а при всех прочих операциях игнорируется.|
|
|
||||||
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Если параметр не задан в playbook, модуль будет использовать значение переменной окружения `DECORT_APP_ID`.|
|
|
||||||
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в playbook. Если параметр не задан в playbook, то модуль будет использовать значение переменной окружения `DECORT_APP_SECRET`.|
|
|
||||||
| authenticator | Значения:<br/>`oauth2`<br/>`jwt` | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. Данный параметр является обязательным. |
|
|
||||||
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECORT, в рамках которого должна быть создана (или уже существует) данный внутренняя сеть. Данный параметр является обязательным.
|
|
||||||
| ext_net_id | (int) | Идентификатор внешней сети, к которой должна быть подключена внутренняя сеть. Если задать значение `0`, то платформой будет выбрана внешняя сеть по умолчанию. |
|
|
||||||
| ext_ip_addr | (string) | IP-адрес внешней сети, заданной через параметр `ext_net_id`. Если не задан, то IP-адрес для внешней сети будет выбран платформой автоматически.
|
|
||||||
| ipcidr | (string) | Адрес сети для создаваемой внутренней сети. Если этот параметр не задан, то платформа назначит адрес автоматически. Обратите внимание, что внутренние сети, принадлежащие одному и тому же аккаунту, не могут иметь пересекающихся сетей.|
|
|
||||||
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECORT в режиме `authenticator: jwt`. Данный параметр является обязательным для указанного режима. Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в playbook. Если этот параметр не определен в playbook, то модуль будет использовать значение переменной окружения `DECORT_JWT`.|
|
|
||||||
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу _Oauth2_, который должен использоваться в режиме `authenticator: oauth2`.<br/>Данный параметр является обязательным для указанного режима.<br/>Если параметр не задан в _playbook_, модуль будет использовать значение переменной окружения `DECORT_OAUTH2_URL`. |
|
|
||||||
|rg_id | (int) | Идентификатор ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_id` и `rg_name`, то `rg_name` игнорируется.|
|
|
||||||
| rg_name | (string) | Имя ресурсной группы, в которой должна быть создана или уже существует внутренняя сеть. Если одновременно заданы `rg_name` и `rg_id`, то `rg_name` игнорируется.|
|
|
||||||
| state | (string)<br>Значения:<br/>`present`<br/>`absent`<br/>`enabled`<br/>`disabled`<br/>Default: `present` | Целевое состояние внутренней сети. |
|
|
||||||
| verify_ssl | (bool)<br/>Default: `true` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
||||||
| vins_id | (int) | Идентификатор внутренней сети. Соответствующая внутренная сеть должна существовать. Таким образом, с помощью `vins_id` нельзя создать новую внутреннюю сеть, а только управлять уже имеющимися. Если задан данный параметр, то параметры `vins_name`, `account_name`, `account_id`, `rg_name` и `rg_id` игнорируются.|
|
|
||||||
| vins_name| (string) | Имя внутренней сети. Для идентификации внутренней сети требуется либо `vins_name` и информация об аккаунте/ресурсной группе, которой принадлежит сеть, либо `vins_id`. Обратите внимание, что это имя уникально только в рамках ресурсной группы или аккаунта, на уровне которого существует данная внутренняя сеть.|
|
|
||||||
| mgmtaddr | (list) | Список существующих IP-адресов виртуального маршрутизатора во внутренней сети, через которые необходимо разрешить SSH-доступ к виртуальному маршрутизатору.
|
|
||||||
| custom_config | (bool)<br>Default: `false` | Включить/отключить режим пользовательской конфигурации виртуального маршрутизатора. |
|
|
||||||
| config_save | (bool)<br>Default: `false` | Выполнить сохранение текущей конфигурации виртуального маршрутизатора для возможности последующего отката к ней. |
|
|
||||||
| connect_to | (list) | Список словарей, содержащих информацию о внутренних сетях, к которым необходимо подключить данную. См. примеры.
|
|
||||||
|
|
||||||
## Возвращаемые значения модуля decort_vins
|
|
||||||
|
|
||||||
Модуль decort_vins возвращает информацию о внутренней сети в виде словаря facts со следующими ключами:
|
|
||||||
|
|
||||||
| Ключ | Тип данных | Описание |
|
|
||||||
| --- | --- | --- |
|
|
||||||
| account_id | (int) | Уникальный целочисленный идентификатор аккаунта, которому принадлежит внутренняя сеть. |
|
|
||||||
| custom_net_addr | (list) | Список IP-адресов пользовательских интерфейсов виртуального маршрутизатора
|
|
||||||
| ext_ip_addr | (string) | IP-адрес интерфейса, которым виртуальный маршрутизатор подключён к внешней сети. |
|
|
||||||
| ext_net_id | (int) | Идентификатор внешней сети, к которой подключена внутренняя сеть. `-1` означает, что внутренняя сеть не подключёна к внешней сети. |
|
|
||||||
| gid | (int) | Идентификатор физического кластера (Grid ID), на базе которого развёрнуты ресурсы данной внутренней сети. |
|
|
||||||
| id | (int) | Уникальный целочисленный идентификатор внутренней сети. |
|
|
||||||
| name | (string) | Имя внутренней сети. |
|
|
||||||
| int_net_addr | (string) | Адрес внутренней сети. |
|
|
||||||
| rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы, которой принадлежит данная внутренняя сеть. Если данная внутренняя сеть создана на уровне аккаунта, то `rg_id=0`. |
|
|
||||||
| ssh_ipaddr | (list) | Список IP-адресов виртуального маршрутизатора во внутренней сети, на которых включён SSH-доступ к нему.
|
|
||||||
| ssh_password | (str) | Пароль для SSH-доступа к виртуальному маршрутизатору.
|
|
||||||
| ssh_port | (int) | Номер порта для SSH-подключения к виртуальному маршрутизатору.
|
|
||||||
| state | (string) | Состояние внутренней сети. |
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Пример использования модуля decort_vins
|
|
||||||
|
|
||||||
В данном примере создаётся внутренняя сеть с именем "MyVins01" (vins_name: "MyVins01").
|
|
||||||
|
|
||||||
Внутренняя сеть создаётся на уровне ресурсной группы "MyRg01" (rg_name: "MyRg01"), принадлежащей аккаунту "MyMainAccount" (account_name: "MyMainAccount"). Внутренняя сеть будет иметь подключение во внешнюю сеть по умолчанию (ext_net_id: 0).
|
|
||||||
```
|
|
||||||
- name: Manage ViNS on resource group level
|
|
||||||
decort_vins:
|
|
||||||
account_name: "MyMainAccount"
|
|
||||||
rg_name: "MyRg01"
|
|
||||||
authenticator: jwt
|
|
||||||
jwt: "{{ my_jwt.jwt }}"
|
|
||||||
controller_url: "https://ds1.digitalenergy.online"
|
|
||||||
ext_net_id: 0
|
|
||||||
vins_name: "MyVins01"
|
|
||||||
register: my_vins
|
|
||||||
```
|
|
||||||
|
|
||||||
Здесь результат исполнения модуля decort_vins записывается в переменную my_vins, которую можно дальше использовать в Ansible playbooks. Ниже показано, как получить и использовать идентификатор внутренней сети для подключения к нему виртуального сервера.
|
|
||||||
```
|
|
||||||
- name: Manage virtual machine
|
|
||||||
decort_kvmvm:
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
networks:
|
|
||||||
- type: VINS
|
|
||||||
id: "{{ my_vins.facts.id }}"
|
|
||||||
<< для краткости фрагмент опущен >>
|
|
||||||
```
|
|
||||||
|
|
||||||
В данном примере идёт создание внутренней сети, а потом её привязка к внутренним сетям с id 864 и 196.
|
|
||||||
```
|
|
||||||
- name: Manage ViNS on resource group level
|
|
||||||
decort_vins:
|
|
||||||
authenticator: jwt
|
|
||||||
jwt: "{{ my_jwt.jwt }}"
|
|
||||||
controller_url: "https://cloud.digitalenergy.online"
|
|
||||||
vins_name: "ViNS_connected_by_decort_vins_module"
|
|
||||||
rg_id: 98
|
|
||||||
connect_to:
|
|
||||||
- id: 864
|
|
||||||
ipaddr: 192.168.5.66
|
|
||||||
netmask: 24
|
|
||||||
- id: 196
|
|
||||||
ipaddr: 192.168.9.133
|
|
||||||
netmask: 24
|
|
||||||
register: managed_vins
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,8 +1,4 @@
|
|||||||
## Документация:
|
## Документация:
|
||||||
|
|
||||||
- [Модули Ansible версии 6.0.0](./6.0.0/Home.md)
|
|
||||||
- [Модули Ansible версии 5.6.0](./5.6.0/Home.md)
|
|
||||||
- [Модули Ansible версии 5.5.0](./5.5.0/Home.md)
|
|
||||||
- [Модули Ansible версии 5.4.0](./5.4.0/Home.md)
|
|
||||||
- [Модули Ansible версии 5.3.0](./5.3.0/Home.md)
|
- [Модули Ansible версии 5.3.0](./5.3.0/Home.md)
|
||||||
- [Модули Ansible версии 5.2.6](./5.2.6/Home.md)
|
- [Модули Ansible версии 5.2.6](./5.2.6/Home.md)
|
||||||
Reference in New Issue
Block a user