#azure
#azure
Вопрос:
Azure поддерживает UEFI через виртуальную машину поколения 2.
Я могу создать виртуальную машину поколения 2 с помощью веб-консоли Azure, но я не могу указать способ создания виртуальной машины через Azure SDK.
В документах Microsoft я нашел ссылку для создания управляемого диска с использованием PowerCLI https://learn.microsoft.com/en-us/azure/virtual-machines/windows/generation-2#frequently-asked-questions
Я просмотрел онлайн-документацию Azure ComputeClient#virtual_machines#create_or_update () api. Но все еще не могу найти в документации по коду python какой-либо способ указать гипергенерации для виртуальной машины.
Ответ №1:
ДА. Это отчасти противоречит здравому смыслу, но это выглядит следующим образом: вам нужно указать поколение виртуальной машины на диске; тогда виртуальная машина, созданная с этого диска, будет того же поколения.
Если у вас уже есть диск gen2, вы просто выбираете его и указываете при создании виртуальной машины. Однако мне пришлось создать диск из файла VHD. Итак, когда вы создаете диск, вам понадобится IWithCreate
экземпляр, а затем вызовите по цепочке WithHyperVGeneration
метод. Вот так (C #):
public async Task<IDisk> MakeDisk(string vhdPath)
{
return await Azure.Disks.Define(name)
.WithRegion(Region.EuropeWest)
.WithExistingResourceGroup("my-resources")
.WithWindowsFromVhd(vhdPath)
.WithStorageAccount("saname")
.WithHyperVGeneration(HyperVGeneration.V2) // <--- This is how you specify the generation
.WithSku(DiskSkuTypes.PremiumLRS)
.CreateAsync();
}
Затем создайте виртуальную машину:
var osDisk = await MakeDisk("template.vhd");
var vm = await Azure.VirtualMachines.Define("template-vm")
.WithRegion(Region.EuropWest)
.WithExistingResourceGroup("the-rg")
.WithExistingPrimaryNetworkInterface("some-nic")
.WithSpecializedOSDisk(osDisk, OperatingSystemTypes.Windows) // <-- Pay attention
.WithSize(VirtualMachineSizeTypes.StandardB2s)
.CreateAsync();
Комментарии:
1. Спасибо. Это сработало. Я проверил то же самое с помощью Python SDK