Self Service виртуальных машин; Создание виртуальной машины с портала SCSM (часть 1)
Продолжаю цикл статей про самообслуживание пользователей. Перед прочтением этой статьи рекомендую ознакомиться с “подготовительными процедурами”.
-
Создание виртуальной машины;
Что будет сделано
-
Создание Runbook’а; (часть 1)
-
Создание дочерних Runbook’ов; (часть 2)
-
Импорт Runbook’ов в SCSM; (часть 3)
-
Создание шаблонов для публикации на портале; (часть 3)
-
Подготовка Request Offering к публикации; (часть 4)
-
Публикация и проверка. (часть 4)
Создание Runbook’а
Runbook, который будет создавать виртуальные машины, выглядит приблизительно так
Я останавлюсь на его создании крайне подробно. Для начала откройте Runbook Designer
Создайте папку с осмысленным названием и в ней новый Runbook
После этого необходимо заполнить runbook шагами. Первым шагом будет “Initialize Data”. Для создания шага в панели справа выберите пункт “Runbook Control” и действие “Initialize Data” и перетащите его в рабочую область.
После этого двойным шелчком откройте свойства данного шага и при необходимости добавьте или переименуйте шаги
Вы так же можете создать дополнительные переменные сейчас, на случай дальнейших кастомизаций. Я всегда рекомендую создавать запасные переменные, дело в том, что если Вы добавляете переменную после того как Вы создали шаблон runbook’а, он будет помечен как “failed” (или что-то в таком духе), и Вам придется пересоздавать шаблон и request offering.
Для того, чтобы шаги были связаны, Вам необходимо создать link между шагами. При наведении мышки на шаг Вы заметите маленькие стрелочки по бокам. Та что слева - “вход”, а что справа “выход”. Таким образом, для связывания двух шагов Вам нужно провести link между выходом однога шага ко входу другого.
2. Get SR
Этот шаг и далее, до шагов VMM, из SCSM integration pack.
Action: Get Object
После этого откройте свойства данного шага, выбирайте коннектор, класс и создаете фильтр
Connector: SCSM Connector
Class: Service Request
Filter: “SC Object GUID” equals {SR GUID” from “Initialize Data”}
Для того, чтобы в поле Value передать значение из какого-либо шага runbook’а, Вам необходимо нажать правой кнопкой мыши и выбрать Subscribe » Published Data
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
Остальные шаги создаются по подобию данных шагов.
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”}
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 (опциональный параметр, я использую его для генирации пароля администратора)
Обратите внимание, что в разделе “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”}
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}
Последние 2 действия нужны для смены владельца виртуальной машины, чтобы создатель виртуальной машины получил права на управления её через портал SCSM в дальнейшем. Когда я указывал владельца при создании машины через шаг “Create VM from Template”, разворачивание заканчивалось ошибкой, это workaround.
13. Launch VM
Этот шаг запускает другой Runbook, который в свою очередь запускает виртуальную машину. Для теста можно заменить этот шаг на просто шаг запуск виртуальной машины (Start VM).
14. Update Object
Опциональный шаг, в моем случае возвращает в Service Request dns имя машины, IP адрес и учетные данные для подключения.
Вы могли обратить внимание на {IP from “Launch VM”}. Эта переменная содержит IP виртуальной машины из дочернего ранбука, подробнее в следующем посте.