# 03.08 Модуль 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_disk предназначен для управления basic сервисами, в которых находятся группы виртуальных серверов. Данный модуль позволяет: - Создавать Basic Service. - Удалять Basic Service. - Включать/выключать Basic Service. - Запрашивать информацию о Basic Service. ## Параметры модуля decort_bservice Ниже в алфавитном порядке приведен полный список параметров для модуля decort_bservice. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на Вашем Ansible-сервере, можно получить командой: `ansible-doc -t module decort_bservice` | Параметр | Тип, допустимые значения | Описание | | ------ | ------ | ------ | | account_id | (int) | Уникальный целочисленный идентификатор учётной записи (account), которой принадлежит данный диск. При идентификации диска по имени (см. параметр `name`) должно быть задан либо идентификатор, либо имя учётной записи (см. параметр `account_name`). Если одновременно заданы и `account_id`, и `account_name`, то `account_name` игнорируется.| |account_name | (string) | Имя учётной записи (account), которой принадлежит данный диск. При идентификации диска по имени (см. параметр 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 | Значения:
`legacy`
`oauth2`
`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы DECORT. | |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`.| |state | Значения: absent, disabled, enabled, present, check| Состояние Basic сервиса.| | started | (bool) | Параметр, определяющий состояние добавленных виртуальных серверов в Basic Service. Запускать их, или нет. По умолчанию: False. | | name | (string) | Имя, с которым будет создан Basic сервис. Также используется для поиска ID Basic сервиса. | | sshuser | (string) | Имя пользователя, который будет создан на всех виртуальных серверах в группе basic сервиса. Используется в паре с sshkey. | | sshkey | (string) | SSH ключ, который будет загружен на все виртуальные сервера в группе basic сервиса. Используется в паре с sshuser. | | id | (int) | Уникальный целочисленный идентификатор Basic сервиса, используется для поиска, взаимодействия и удаления Basic сервиса. | | rg_id | (int) | Уникальный целочисленный идентификатор ресурсной группы, в которой будет работать модуль. | | rg_name | (string) | Имя ресурсной группы, в которой будет работать модуль. | | description | (string) | Описание. По умолчанию: `Created by decort ansible module`| | verify_ssl | (bool)
`True` <- default
`False` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | | workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения.
Данный параметр является опциональным.
Функциональность callbacks в текущей версии модуля не реализована.| | workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL.
Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи.
Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`.
Функциональность callbacks в текущей версии модуля не реализована.| ## Возвращаемые значения модуля decort_bservice Модуль decort_bservice возвращает информацию о диске в виде словаря facts со следующими ключами: |Ключ | Тип данных | Описание| | ------ | ------ | ------ | |id | int | Уникальный целочисленный идентификатор данного Basic сервиса.| |name | string | Имя Basic сервиса.| | techStatus | string | Технический статус Basic сервиса. | |state | string | Текущий статус Basic сервиса. Корректные состояния:MODELED, DISABLING, ENABLING, DELETING, DELETED, "DESTROYING, DESTROYED, RESTORYNG, RECONFIGURING| | rg_id | int | Уникальный целочисленный идентификатор ресурсной группы, в котором находится Basic сервис.| | account_id | int | Уникальный целочисленный идентификатор пользователя, к которому привязан данный Basic сервис.| | groupsName | string | Имена групп виртуальных серверов, которые находятся в данном Basic сервисе.| | groupsIds | string | Уникальные целочисленные идентификаторы групп виртуальных серверов, которые находятся в данном Basic сервисе. | ## Пример использования модуля decort_bservice Данный пример создаёт Basic сервис с названием databases. ``` - name: Manage bservice at RG decort_bservice: account_id: 98 verify_ssl: false authenticator: jwt jwt: "{{ my_jwt.jwt }}" controller_url: "https://ds1.digitalenergy.online" rg_id: 1629 state: present name: databases started: True register: db_bservice ``` Данный пример удаляет Basic сервис с названием databases. ``` - name: Manage bservice at RG decort_bservice: account_id: 98 verify_ssl: false authenticator: jwt jwt: "{{ my_jwt.jwt }}" controller_url: "https://ds1.digitalenergy.online" rg_id: 1629 state: absent name: databases started: False register: db_bservice ```