Self Service виртуальных машин; Создание виртуальной машины с портала SCSM (часть 1)

Продолжаю цикл статей про самообслуживание пользователей. Перед прочтением этой статьи рекомендую ознакомиться с “подготовительными процедурами”.

  1. Создание виртуальной машины;

  2. Изменение виртуальной машины;

  3. Удаление виртуальной машины;

  4. Создание сервиса из шаблона сервиса.

Что будет сделано

  1. Создание Runbook’а; (часть 1)

  2. Создание дочерних Runbook’ов; (часть 2)

  3. Импорт Runbook’ов в SCSM; (часть 3)

  4. Создание шаблонов для публикации на портале; (часть 3)

  5. Подготовка Request Offering к публикации; (часть 4)

  6. Публикация и проверка. (часть 4)

Создание Runbook’а

Runbook, который будет создавать виртуальные машины, выглядит приблизительно так

pc_newvm_00

Я останавлюсь на его создании крайне подробно. Для начала откройте Runbook Designer

pc_newvm_021

Создайте папку с осмысленным названием и в ней новый Runbook

pc_newvm_04

pc_newvm_05

После этого необходимо заполнить runbook шагами. Первым шагом будет “Initialize Data”. Для создания шага в панели справа выберите пункт “Runbook Control” и действие “Initialize Data” и перетащите его в рабочую область.

pc_newvm_01

После этого двойным шелчком откройте свойства данного шага и при необходимости добавьте или переименуйте шаги

pc_newvm_03

Вы так же можете создать дополнительные переменные сейчас, на случай дальнейших кастомизаций. Я всегда рекомендую создавать запасные переменные, дело в том, что если Вы добавляете переменную после того как Вы создали шаблон runbook’а, он будет помечен как “failed” (или что-то в таком духе), и Вам придется пересоздавать шаблон и request offering.

Для того, чтобы шаги были связаны, Вам необходимо создать link между шагами. При наведении мышки на шаг Вы заметите маленькие стрелочки по бокам. Та что слева - “вход”, а что справа “выход”. Таким образом, для связывания двух шагов Вам нужно провести link между выходом однога шага ко входу другого.

pc_newvm_20

2. Get SR

Этот шаг и далее, до шагов VMM, из SCSM integration pack.

pc_newvm_061

Action: Get Object

pc_newvm_07

После этого откройте свойства данного шага, выбирайте коннектор, класс и создаете фильтр

pc_newvm_08

Connector: SCSM Connector

Class: Service Request

Filter: “SC Object GUID” equals {SR GUID” from “Initialize Data”}

pc_st_03

Для того, чтобы в поле Value передать значение из какого-либо шага runbook’а, Вам необходимо нажать правой кнопкой мыши и выбрать Subscribe » Published Data

pc_newvm_09

3. Get Relationship SR to Template

Action: Get Relationsship

Connector: SCSM Connector

Object Class: Service Request

Object GUID: {SC Object GUID from “Get SR”}

Related Class: Virtual Machine Template

pc_newvm_101

Остальные шаги создаются по подобию данных шагов.

4. Get Object – Template

Action: Get Object

Connector: SCSM Connector

Class: Virtual Machine Template

Filter: “SC Object GUID” equals {Related object GUID from “Get Relationship - SR to Template”}

pc_newvm_11

5. Get Relationship – Affected User

Action: Get Relationsship

Connector: SCSM Connector

Object Class: Service Request

Object GUID: {SC Object GUID from “Get SR”}

Related Class: Active Directory User

6. Get Object - Affected User

Action: Get Object

Connector: SCSM Connector

Class: Service Templates

Filter: “SC Object GUID” equals {Related object GUID from “Get Relationship - Affected User”}

7. Get Relationship SR to Cloud

Action: Get Relationsship

Connector: SCSM Connector

Object Class: Service Request

Object Class: {SC Object GUID from “Get SR”}

Related Class: Private Cloud

8. Get Object – Cloud

Action: Get Object

Connector: SCSM Connector

Class: Private Cloud

Filter: “SC Object GUID” equals {Related object GUID” from “Get Relationship SR to Cloud”}

Теперь я поясню, что тут происходит. Второй шаг берет SR GUID, который SCSM передает в Runbook, и запрашивает Service Request из SCSM. После этого шаги 3, 5 и 7 запрашивают связанные с Service Request объекты, а шаги 4, 6 и 8 “получают” эти объекты.

9. Run .Net Script (опциональный параметр, я использую его для генирации пароля администратора)

pc_newvm_12

pc_newvm_13

Обратите внимание, что в разделе “Published Data”, переменная указывается без знака “$”. Вы можете просто создать еще одну переменную и запрашивать пароль на портале.

10. Create VM from Template

Этот шаг и шаги далее используют VMM Integration Pack

Action: Create VM from Template

Connector: VMM Connector

Properties:

Destination Type - Cloud

Destination - {“Display Name from “Get Object - Cloud”}

Path - не меняем

VM Name - {VM Name from “Initialize Data”}

Source Template Name - {Name from “Get Object - Template”}

Cloud Capability Profile - выберите подходящий Вам

Computer Name - {VM Name from “Initialize Data”}

Description - опционально

Admin User Name - administrator

Admin Password - {Password from “Run .Net Script”}pc_newvm_14

11. Get VM

Action: Get VM

Connector: VMM Connector

Filter: VM Name equals {VM Name from “Initialize Data”}

12. Update VM

Action: Get VM

Connector: VMM Connector

VM ID: {VM ID from “Get VM”}

Owner: domain{User Name from “Get Object - Affected User}

pc_newvm_15

Последние 2 действия нужны для смены владельца виртуальной машины, чтобы создатель виртуальной машины получил права на управления её через портал SCSM в дальнейшем. Когда я указывал владельца при создании машины через шаг “Create VM from Template”, разворачивание заканчивалось ошибкой, это workaround.

13. Launch VM

Этот шаг запускает другой Runbook, который в свою очередь запускает виртуальную машину. Для теста можно заменить этот шаг на просто шаг запуск виртуальной машины (Start VM).

14. Update Object

Опциональный шаг, в моем случае возвращает в Service Request dns имя машины, IP адрес и учетные данные для подключения.

pc_newvm_16

Вы могли обратить внимание на {IP from “Launch VM”}. Эта переменная содержит IP виртуальной машины из дочернего ранбука, подробнее в следующем посте.

Written on July 7, 2014