|
|
@ -0,0 +1,91 @@
|
|
|
|
|
|
|
|
# Модуль decort_kvmvm
|
|
|
|
|
|
|
|
## XX.1 Обзор модуля _decort_kvmvm_
|
|
|
|
|
|
|
|
Модуль _decs_osimage_ предназначен для предназначен для выполнения следующих действий над виртуальными серверами, созданными на базе технологии виртуализации KVM, в облачной платформе DECORT:
|
|
|
|
|
|
|
|
1. Создание нового виртуального сервера указанной аппаратной архитектуры. Платформа поддерживает виртуальные сервера архитектуры Intel x86 и IBM PowerPC.
|
|
|
|
|
|
|
|
2. Изменение конфигурации существующего виртуального сервера:
|
|
|
|
|
|
|
|
- Изменение количества выделенных CPU и виртуальной ОЗУ. Следует иметь ввиду, что изменение этих параметров в меньшую сторону может потребовать перезагрузки гостевой ОС.
|
|
|
|
|
|
|
|
- Увеличение размера загрузочного диска.
|
|
|
|
|
|
|
|
3. Изменение состояния существующего виртуального сервера:
|
|
|
|
|
|
|
|
- Выключение / включение.
|
|
|
|
|
|
|
|
- Перезагрузка, приостановка / возобновление работы гостевой ОС.
|
|
|
|
|
|
|
|
4. Удаление существующего виртуального сервера.
|
|
|
|
|
|
|
|
5. Получение информации о существующем виртуальном сервере без изменения его конфигурации.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## XX.2 Параметры модуля _decort_kvmvm_
|
|
|
|
|
|
|
|
Ниже в алфавитном порядке приведен полный список параметров для модуля _decs_kvmvm_. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
`ansible-doc -t module decort_kvmvm`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Параметр | Тип, допустимые значения | Описание |
|
|
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
|
|
| annotation | (string) | Опциональное описание виртуального сервера. Этот параметр используется только в момент создания нового виртуального сервера и игнорируется при любых действиях над существующими серверами. |
|
|
|
|
|
|
|
|
| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECS в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима.<br/> Если параметр не задан в _playbook_, модуль _decort_kvmvm_ будет использовать значение переменной окружения _DECS_APP_ID_. |
|
|
|
|
|
|
|
|
| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECS в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в _playbook_.<br/> Если параметр не задан в _playbook_, то модуль _decort_kvmvm_ будет использовать значение переменной окружения _DECS_APP_SECRET_. |
|
|
|
|
|
|
|
|
| authenticator | Значения:<br/>`legacy`<br/>`oauth2`<br/>`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы DECS. |
|
|
|
|
|
|
|
|
| boot_disk | (dict) | Конфигурация загрузочного диска виртуального сервера. Данный параметр является обязательным при создании нового виртуального сервера. Для существующих виртуальных серверов этот параметр является опциональным – с его помощью можно увеличить размер загрузочного диска. Параметр представляет собой словарь со следующими ключами:<br/>* (int) `size` – размер диска в GB.<br/>* (string) `pool` – пул дисковых ресурсов, из которого будет предоставлен данный загрузочный диск. Имена пулов могут меняться от одной модели СХД к другой. Если указанный пул не найден, модуль ожидает, что платформа создаст дисковый ресурс в “default” пуле, который всегда должен присутствовать.<br/>Обратите внимание, что загрузочный диск будет создан на той же системе хранения, где размещён образ ОС (см. параметры `image_name` или `image_id`), на базе которого создаётся данный виртуальный сервер. |
|
|
|
|
|
|
|
|
| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECS, в рамках которого должен быть создан (или уже существует) данный виртуальный сервер.<br/>Данный параметр является обязательным. |
|
|
|
|
|
|
|
|
| cpu | (int) | Количество виртуальных CPU, выделенных виртуальному серверу.<br/>Параметр является обязательным при создании нового сервера, во всех других случаях он опциональный. Если указать его для уже существующего сервера, то будет выполнена попытка изменить количество CPU.<br/>Следует иметь ввиду, что _уменьшение_ количества CPU у работающего сервера, как правило, потребует его перезагрузки. |
|
|
|
|
|
|
|
|
| datacenter | (string) | Целевой _datacenter_ под управлением заданного DECS контроллера, где размещается данный виртуальный сервер.<br/>Этот параметр является обязательным при создании нового виртуального сервера, когда вместе с сервером также требуется создать виртуальный сетевой сегмент, в котором он будет расположен. При всех прочих операциях данный параметр игнорируется. |
|
|
|
|
|
|
|
|
| id | (int) | Уникальный цифровой идентификатор виртуального сервера внутри платформы.<br/>Этот параметр используется как один из методов идентификации существующего сервера (альтернатива – по комбинации `name`, `vdc_name` и `tenant`) и игнорируется при создании нового сервера, так как для нового сервера облачная платформа назначает этот идентификатор автоматически.<br/>Если при вызове модуля _decort_kvmvm_ существующий виртуальный сервер идентифицируется по своему `id`, то параметры `tenant`, `vdc_name` и `vdc_id` игнорируются. |
|
|
|
|
|
|
|
|
| image_id | (int)| Уникальный цифровой идентификатор образа ОС, на базе которого следует создать виртуальный сервер.<br/>При создании нового виртуального сервера требуется задать этот параметр или параметр `image_name`. При любых других операциях данные параметры игнорируются.<br/>Если заданы оба этих параметра (`image_id` и `image_name`), то `image_name` игнорируется. Для получения `image_id` по `image_name` можно использовать модуль _decort_osimage_. |
|
|
|
|
|
|
|
|
| image_name | (string) | Название образа ОС, на базе которого следует создать виртуальный сервер.<br/>При создании нового виртуального сервера требуется задать этот параметр или параметр `image_id`. При любых других операциях данные параметры игнорируются.<br/>Параметр `image_name` должен задаваться в точном соответствии с тем, как назван нужный образ ОС в облачной инфраструктуре (с соблюдением заглавных и строчных символов, а также пробелов). |
|
|
|
|
|
|
|
|
| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECS в режиме `authenticator: jwt`<br/>Данный параметр является обязательным для указанного режима.<br/>Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.<br/>Если этот параметр не определен в _playbook_, то модуль _decort_kvmvm_ будет использовать значение переменной окружения _DECS_JWT_. |
|
|
|
|
|
|
|
|
| name | (string) | Название виртуального сервера.<br/>Чтобы модуль _decort_kvmvm_ мог управлять сервером по его названию, также необходимо задать комбинацию `tenant` и `rg_name` или идентификатор `rg_id`.<br/>Параметр должен задаваться в точном соответствии с тем, как назван сервер в облачной инфраструктуре (с соблюдением заглавных и строчных символов, а также пробелов).<br/>Если для существующего виртуального сервера указаны и `name`, и `id`, то параметр `name` игнорируется и идентификация сервера выполняется по его `id`. |
|
|
|
|
|
|
|
|
| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу _Oauth2_, который должен использоваться в режиме `authenticator: oauth2`.<br/>Данный параметр является обязательным для указанного режима.<br/>Если параметр не задан в _playbook_, модуль _decort_kvmvm_ будет использовать значение переменной окружения _DECS_OAUTH2_URL_. |
|
|
|
|
|
|
|
|
| password | (string) | Пароль для подключения к контроллеру облачной инфраструктуры DECS в режиме `authenticator: legacy`.<br/>Данный параметр является обязательным для указанного режима.<br/>Так как он содержит секретную информацию, то его не рекомендуется задавать в _playbook_.<br/>Если параметр не задан в _playbook_, то модуль _decort_kvmvm_ будет использовать значение переменной окружения _DECS_PASSWORD_. |
|
|
|
|
|
|
|
|
| ram | (int) | Объем оперативной памяти (RAM) в MB, выделенной данному виртуальному серверу.<br/>Параметр является обязательным при создании нового сервера. Если указать его для уже существующего сервера, то будет выполнена попытка изменить объем выделенной серверу памяти.<br/>Следует иметь ввиду, что уменьшение объема памяти работающего сервера в большинстве случаев потребует его перезагрузки. |
|
|
|
|
|
|
|
|
| rg_id | (int) | Уникальный цифровой идентификатор уже существующей ресурсной группы (RG), в которой будет создан новый или находится уже существующий виртуальный сервер.<br/>Данный параметр является одним из методов идентификации существующей RG (альтернативой является задание комбинации `tenant` и `rg_name`). |
|
|
|
|
|
|
|
|
| rg_name | (string) | Имя уже существующей ресурсной группы (RG), в которой будет создан новый или находится уже существующий виртуальный сервер.<br/>Данный параметр является одним из методов идентификации существующей RG, когда задается пара `tenant` и `rg_name` (альтернативой является задание rg_id, однако такой метод применим только для уже существующих RG).<br/>Параметр должен задаваться в точном соответствии с тем, как нужная ресурсная группа названа в облачной инфраструктуре (с соблюдением заглавных и строчных символов, а также пробелов).<br/>Если заданы и `rg_id`, и `rg_name`, то параметр `rg_name` игнорируется. |
|
|
|
|
|
|
|
|
| ssh_key | (string) | Открытая часть SSH ключа, который необходимо авторизовать на создаваемом виртуальном сервере для пользователя, заданного параметром `ssh_key_user`.<br/>Данный параметр применим только для Linux серверов, является опциональным, используется только при создании нового сервера и игнорируется при других операциях. |
|
|
|
|
|
|
|
|
| ssh_key_user | (string) | Имя пользователя на уровне гостевой ОС (только для Linux серверов) для которого авторизуется SSH ключ, заданный параметром `ssh_key`.<br/>Данный параметр является обязательным, если задан `ssh_key`, используется только при создании нового сервера и игнорируется при других операциях. |
|
|
|
|
|
|
|
|
| state | Значения:<br/>`present` <- default<br/>`absent`<br/>`poweredon`<br/>`poweredoff`<br/>`halted`<br/>`paused`<br/>`check` | Целевое состояние виртуального сервера на выходе из модуля _decort_kvmvm_.<br/> Значение 'halted' - синоним к 'poweredoff'.<br/>Значение 'check' вызывает модуль в _read-only_ режиме и считывает характеристики существующего виртуального сервера. |
|
|
|
|
|
|
|
|
| tags | (string) | Строка, содержащая набор текстовых меток, которые надлежит присвоить данному виртуальному серверу.<br/>Данные текстовые метки представляют собой произвольный текст, который можно использовать для группировки и индексирования виртуальных серверов во внешних приложениях.<br/>Параметр является опциональным.|
|
|
|
|
|
|
|
|
| tenant | (string) | Имя подписчика, которому будет принадлежать новый виртуальный сервер (или уже принадлежит существующий).<br/>Параметр должен задаваться в точном соответствии с тем, как назван нужный подписчик в облачной инфраструктуре (с соблюдением заглавных и строчных символов, а также пробелов).<br/>Этот параметр является опциональным и используется в сценариях, когда вместе с новым виртуальным сервером создается новый виртуальный сетевой сегмент (_VDC_), в котором будет размещаться данный сервер, или когда уже существующий целевой сегмент задается комбинацией `tenant` и `vdc_name`. |
|
|
|
|
|
|
|
|
| user | (string) | Имя пользователя, непосредственно зарегистрированного на контроллере облачной инфраструктуры DECS, которое используется для подключения к контроллеру в режиме `authenticator: legacy`.<br/>Данный параметр является обязательным для указанного режима.<br/>Если параметр не задан в _playbook_, модуль _decort_kvmvm_ будет использовать значение переменной окружения _DECS_USER_.|
|
|
|
|
|
|
|
|
| verify_ssl | (bool)<br/>`True` <- default<br/>`False` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.<br/>Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
|
|
|
|
|
|
|
|
| workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль _desc_vm_ будет оперативно передавать информацию о своем статусе и текущей фазе исполнения.<br/>Данный параметр является опциональным.<br/>Функциональность callbacks в текущей версии модуля _decort_kvmvm_ не реализована.|
|
|
|
|
|
|
|
|
| workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL.<br>Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи.<br/>Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`.<br/>Функциональность callbacks в текущей версии модуля _decort_kvmvm_ не реализована.|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## XX.3 Возвращаемые значения модуля _decort_kvmvm_
|
|
|
|
|
|
|
|
При успешном выполнении модуль _decs_osimage_ возвращает словарь `osimage_facts` со следующими ключами:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Ключ | Тип данных | Описание |
|
|
|
|
|
|
|
|
| --- | --- | --- |
|
|
|
|
|
|
|
|
| id | int | Уникальный цифровой идентификатор образа ОС в платформе DECS. |
|
|
|
|
|
|
|
|
| name | string | Имя образа ОС. |
|
|
|
|
|
|
|
|
| size | int | Размер образа ОС в ГБ. |
|
|
|
|
|
|
|
|
| type | string | Тип образа ОС. Доступные типы: `Linux`, `Windows`, `Other`. |
|
|
|
|
|
|
|
|
| state | string | Текущее состояние образа ОС. Доступные статусы: `CREATED`, `DISABLED`. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 12.4 Пример использования модуля _decort_kvmvm_
|
|
|
|
|
|
|
|
В данном примере сначала извлекается идентификатор образа ОС, а затем на базе этого образа создается виртуальный сервер.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- name: create new x86 KVM VM according to the specs
|
|
|
|
|
|
|
|
decort_kvmvm:
|
|
|
|
|
|
|
|
authenticator: oauth2
|
|
|
|
|
|
|
|
app_id: "{{ my_app_id }}"
|
|
|
|
|
|
|
|
app_secret: "{{ my_app_secret }}"
|
|
|
|
|
|
|
|
oauth2_url: "https://sso.decs.online"
|
|
|
|
|
|
|
|
controller_url: "https://cloud.digitalenergy.online"
|
|
|
|
|
|
|
|
name: NewVM01
|
|
|
|
|
|
|
|
arch: KVM_X86
|
|
|
|
|
|
|
|
state: present
|
|
|
|
|
|
|
|
cpu: 2
|
|
|
|
|
|
|
|
ram: 4096
|
|
|
|
|
|
|
|
boot_disk:
|
|
|
|
|
|
|
|
size: 10
|
|
|
|
|
|
|
|
image_id: "{{ ubuntu_img.osimage_facts.id }}"
|
|
|
|
|
|
|
|
rg_id: "MyFirstRG"
|
|
|
|
|
|
|
|
annotation: "My new x86 VM created and managed with decort_kvmvm module"
|
|
|
|
|
|
|
|
delegate_to: localhost
|
|
|
|
|
|
|
|
register: kvmvm01_specs
|
|
|
|
|
|
|
|
...
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Обратите внимание, как используется идентификатор образа ОС при создании нового виртуального сервера (в предположении, что результат выполнения _task_ для модуля _decs_osimage_ был сохранен в переменной `ubuntu_img`):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
` image_id: "{{ ubuntu_img.osimage_facts.id }}"`
|