# 03.02 Модуль decort_osimage ## Обзор модуля decort_osimage Модуль decort_osimage предназначен для выполнения следующих действий над образами, созданными в облачной платформе DECORT: 1. Создание нового образа операционной системы для виртуальных машин. 2. Создание виртуального образа для образа операционной системы. 3. Изменение имени образа (в случае изменения имени виртуального образа, имя и id виртуального образа указываются как image_name и image_id. 4. Привязка другого образа операционной системы к виртуальному образу. 5. Удаление существующего образа, привязанного к аккаунту. 6. Получение информации об образе. Также данный модуль может быть полезен при массовом создании экземпляров compute (напр., виртуальных серверов) на базе одного и того же образа, так как позволяет оптимизировать количество API вызовов, инициируемых в адрес контроллера облачной платформы. ## Параметры модуля decort_osimage Ниже приведен полный список параметров для модуля decort_osimage. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой: | Параметр | Тип, допустимые значения | Описание | | ------ | ------ | ------ | | 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`. | | verify_ssl | (bool) | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты. Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. | | workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль будет оперативно передавать информацию о своем статусе и текущей фазе исполнения. Данный параметр является опциональным. Функциональность callbacks в текущей версии модуля не реализована. | | workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL. Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи. Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`. Функциональность callbacks в текущей версии модуля не реализована. | | account_Id | (string) | Уникальный целочисленный идентификатор аккаунта. Используется для поиска образов, а тажке для их создания. | | account_name | (string) | Имя аккаунта. Используется для получения уникального целочисленного идентификатора аккаунта. | | virt_id | (integer) | Уникальный целочисленный идентификатор виртуального образа. Может использоваться для получения информации о виртуальном образе, а также для привязки к нему другого образа операционной системы.| | virt_name | (string) | Имя виртуального образа. Используется для получения `virt_id`, а в последвии информации о виртуальном образе, а также для создания виртуального образа и привязки к нему другого образа операционной системы.| | state | (string) | Состояние образов. При значении present идет создание образов операционной системы, к которым привязан указанный в `account_Id` или `account_name` аккаунт. При значении absent идет их удаление. | | drivers | (string) | Список типов compute (напр., виртуальных серверов), подходящих для образа операционной системы. Прим. `KVM_X86`. Используется при создании образа операционной системы.| | architecture | (string) | Бинарная архитектура образа. Прим. `X86_64` или `PPC64_LE`. Используется при создании образа операционной системы.| | imagetype | (string) | Тип образа. `linux`, `windows` или `other`. По умолчанию установлено `linux`. Используется при создании образа операционной системы.| | boottype | (string) | Тип загрузки образа. `bios` или `uefi`. По умолчанию установлено `uefi`. Используется при создании образа операционной системы.| | url | (string) | Унифицированный указатель ресурса (URL), указывающий на образ iso операционной системы. Используется при создании образа операционной системы.| | sepId | (integer) | Уникальный целочисленный идентификатор конечной точки провайдера хранения. Указывается в паре с `poolName`. Используется при создании образа операционной системы.| | poolName | (string) | Пул, в котором будет создан образ. Указывается в паре с `sepId`. Используется при создании образа операционной системы.| | hotresize | (bool) | Поддерживает ли образ "горячее" изменение размера. По умолчанию установлено `false`. Используется при создании образа операционной системы.| | image_username | (string) | Опциональное имя пользователя для образа. Используется при создании образа операционной системы. | | image_password | (string) | Опциональный пароль для образа. Используется при создании образа операционной системы. Используется при создании образа операционной системы.| | usernameDL | (string) | Имя пользователя для загрузки бинарного носителя. Используется в паре с `passwordDL`. Используется при создании образа операционной системы. | | passwordDL | (string)| Пароль для загрузки бинарного носителя. Используется в паре с `usernameDL`. Используется при создании образа операционной системы. | | permanently | (bool) | Навсегда ли удалить образ. Используется при удалении убраза. По умолчанию установлено false.| ## Возвращаемые значения модуля decort_osimage Модуль decort_osimage возвращает информацию о XXX в виде словаря facts со следующими ключами: | Ключ | Тип данных | Описание | | ------ | ------ | ------ | | arch | string | Аппаратная архитектура, с которой совместим данный образ. Возможные значения: X86_64 (Intel x86), PPC64_LE (IBM PowerPC). | | id | int | Уникальный целочисленный идентификатор данного образа. | | linkto | int | Уникальный целочисленный идентификатор образа операционной системы, который привязан к данному виртуальному. | | name | string | Имя образа. Обратите внимание, что имя образа может содержать пробелы. | | pool | string | Пул на системе хранения данных, в котором находится данный образ.| | sep_id |int | Идентификатор системы хранения (Storage Endpoint Provider), на которой хранится данный образ. | | size |int | Размер образа в ГБ. Загрузочный диск экземпляра compute, создаваемого на базе данного образа, должен иметь как минимум такой же размер. | | state | string | Текущий статус образа. Возможные значения: CREATED, DISABLED, DESTROYED. Экземпляры compute можно создавать только на базе образов, которые находятся в статусе CREATED.| | type | string | Тип операционной системы внутри данного образа. Возможные значения: Linux, Windows.| ## Пример использования модуля decort_osimage Пример создания образа операционной системы Alpine Linux. ``` - name: create_osimage decort_osimage: authenticator: oauth2 verify_ssl: False controller_url: "https://ds1.digitalenergy.online" state: present image_name: "alpine_linux3.14.0" account_Id: 12345 url: "https://dl-cdn.alpinelinux.org/alpine/v3.14/releases/x86_64/alpine-virt-3.14.0-x86_64.iso" boottype: "uefi" imagetype: "linux" hotresize: False image_username: "test" image_password: "p@ssw0rd" usernameDL: "testDL" passwordDL: "p@ssw0rdDL" architecture: "X86_64" drivers: "KVM_X86" delegate_to: localhost register: osimage ``` Пример получения образа операционной системы по имени образа. ``` - name: get_osimage decort_osimage: authenticator: oauth2 controller_url: "https://ds1.digitalenergy.online" image_name: "alpine_linux_3.14.0" account_Id: 12345 delegate_to: localhost register: osimage ``` Пример создания виртуального образа. Также в случае, если виртуальный образ уже существует, но к нему привязан другой образ операционной системы, он привяжет к себе указанный в примере образ операционной системы. ``` - name: create_virtual_osimage decort_osimage: authenticator: oauth2 controller_url: "https://ds1.digitalenergy.online" image_name: "alpine_linux_3.14.0" virt_name: "alpine_last" delegate_to: localhost register: osimage ``` Обратите внимание, что в данным примере можно использовать как image_name, так и image_id. Также можно использовать либо virt_name, либо virt_id. Пример переименования образа. ``` - name: rename_osimage decort_osimage: authenticator: oauth2 controller_url: "https://ds1.digitalenergy.online" image_name: "alpine_linux_3.14.0v2.0" image_id: 54321 delegate_to: localhost register: osimage ```