Подготовка собственных образов с продуктами Microsoft
Вы можете подготовить свои образы продуктов Microsoft, чтобы использовать их в Yandex Cloud с вашей собственной лицензией. Обязательно свяжитесь с Microsoft и уточните, что ваша лицензия подходит для использования в облачных средах. Рекомендуем собирать образы на ОС Linux.
Подготовка образа
Чтобы создать образ, готовый к использованию в Yandex Cloud:
-
Загрузите архив с конфигурациями для Packer
и распакуйте его в нужную папку, напримерwindows-packer
. -
Загрузите образ с драйверами
и откройте его. Переместите папкиNetKVM
,vioserial
иviostor
в папкуwindows-packer/drivers
. Папки содержат драйверы для разных ОС — обязательно используйте драйверы для вашей. -
Выберите подходящую для вашего продукта Microsoft конфигурацию для Packer и внесите следующие изменения в ее конфигурационный файл:
-
Укажите в параметре
iso_url
путь к вашему дистрибутиву. -
В блоке
cd_files
укажите пути к распакованным драйверам для вашей версии ОС, например:cd_files = [ "../drivers/NetKVM/2k19/amd64/*", "../drivers/viostor/2k19/amd64/*", "../drivers/vioserial/2k19/amd64/*", "../scripts/qemu/*", "Autounattend.xml" ]
Обратите внимание, что Packer чувствителен к регистру. Если вы поместили папки с драйверами в другое место, укажите соответствующие пути.
-
Узнайте контрольную сумму вашего дистрибутива (например, выполните
openssl dgst -sha256 <путь к дистрибутиву>
). Вставьте полученное значение в параметрiso_checksum
послеsha256:
. -
(Опционально) Если вы работаете на MacOS, вам потребуется заменить значение
accelerator = "kvm"
наaccelerator = "hvf"
.
-
-
Задайте пароль пользователя
Administrator
. Для этого в файлеAutounattend.xml
в секциюoobeSystem
добавьте разделUserAccounts
, указав пароль внутри тегаValue
:<settings pass="oobeSystem"> <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <OOBE> <HideEULAPage>true</HideEULAPage> <HideLocalAccountScreen>true</HideLocalAccountScreen> <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen> <HideOnlineAccountScreens>true</HideOnlineAccountScreens> <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE> <ProtectYourPC>1</ProtectYourPC> </OOBE> <RegisteredOwner /> <TimeZone>UTC</TimeZone> <UserAccounts> <AdministratorPassword> <Value><пароль_администратора></Value> <PlainText>true</PlainText> </AdministratorPassword> </UserAccounts> </component> </settings>
-
Перейдите в каталог с нужной конфигурацией образа (например,
external-windows-packer/ws22gui-qemu
) и выполните командуpacker build .
.
Примечание
Чтобы отслеживать сборку образа и видеть ошибки, вы можете подключиться к ВМ по VNC. Например, с помощью VNC-клиента от RealVNC
После выполнения команды будет создан дисковый образ в формате .qcow2
.
Загрузите образ в Object Storage
Загрузите созданный образ в Object Storage с помощью одного из поддерживаемых инструментов.
Импортируйте образ в Compute Cloud
С помощью API Compute Cloud вы можете импортировать образ в сервис:
yc compute image create --name <название образа> --description <описание образа> --os-type windows --source-uri <ссылка на образ в Object Storage>
curl -H "Authorization: Bearer `yc iam create-token`" -H "accept: application/json" -X POST https://compute.api.cloud.yandex.net/compute/v1/images -d '{"folderId": "<ID вашего каталога>", "name": "<название образа>", "description": "<описание образа>", "os": {"type": "WINDOWS"}, "pooled": false, "uri": "<ссылка на образ в Object Storage>"}'
function Create-YCImage {
param(
[ValidateNotNullOrEmpty()]
[string]$folderId = "",
[ValidateNotNullOrEmpty()]
[string]$name = "",
[string]$description = "",
[ValidateNotNullOrEmpty()]
[string]$os_type = "WINDOWS",
[int64]$minDiskSizeGb = 50GB,
[ValidateNotNullOrEmpty()]
[string]$uri = ""
)
$body = @"
{
"folderId": "$folderId",
"name": "$name",
"description": "$description",
"os.type": "$os_type",
"minDiskSize": "$minDiskSizeGb",
"os": {
"type": "$os_type"
},
"uri": "$uri"
}
"@
Invoke-WebRequest `
-Method POST `
-URI https://compute.api.cloud.yandex.net/compute/v1/images `
-header @{ "Authorization" = "Bearer $(& yc iam create-token)" } `
-ContentType 'Application/json' `
-body $body
}
$folderId = "<ID вашего каталога>"
Create-YCImage `
-folderId $folderId `
-name "<название образа>" `
-uri "<ссылка на образ в Object Storage>"
Импортированный образ можно использовать при создании загрузочного диска ВМ.