Руководство по созданию образов виртуальных машин Windows с помощью Azure PowerShell
Область применения: ✔️ Виртуальные машины Windows ✔️ Гибкие масштабируемые наборы
Образы можно использовать для начальной загрузки развертываний и обеспечения согласованности между несколькими виртуальными машинами. С помощью этого руководства вы создадите собственный пользовательский образ виртуальной машины Azure с помощью PowerShell и сохраните его в Коллекции вычислений Azure (ранее — Общая коллекция образов). Узнайте следующие темы:
- Создание Коллекции вычислений Azure
- Создание определения образа
- Создание версии образа
- Создание виртуальной машины из образа
- Общий доступ к коллекции
Подготовка к работе
Ниже подробно описано, как преобразовать существующую виртуальную машину в многократно используемый пользовательский образ, на основе которого можно создавать виртуальные машины.
Для выполнения примера в этом руководстве требуется виртуальная машина. При необходимости просмотрите краткое руководство по PowerShell, чтобы создать виртуальную машину для работы с этим учебником. При работе с учебником заменяйте имена ресурсов по мере необходимости.
Обзор
Коллекция вычислений Azure упрощает обмен пользовательскими образами в вашей организации. Пользовательские образы похожи на образы магазина, однако их можно создавать самостоятельно. Пользовательские образы можно использовать для начальной загрузки конфигураций, например при предварительной загрузке приложений, конфигураций приложений и других конфигураций операционной системы.
Коллекция вычислений Azure позволяет предоставить другим пользователям общий доступ к пользовательским образам виртуальной машины. Выберите образы, к которым нужно предоставить общий доступ, регионы, где они будут доступны, и пользователей, которым будет доступно совместное использование.
Возможность "Коллекция вычислений Azure" имеет несколько типов ресурсов.
Ресурс | Description |
---|---|
Источник образа | Это ресурс, который можно использовать для создания версии образа в коллекции. Источником образа может быть существующая виртуальная машина Azure (универсальная или специализированная), управляемый образ, моментальный снимок или версия образа в другой коллекции. |
Галерея | Как и Azure Marketplace, коллекция — это репозиторий для администрирования и совместного использования образов и приложений VM, но здесь, в отличие от Azure Marketplace, доступ к коллекции контролируете вы. |
Определение образа | Определения образов создаются в коллекции и содержат сведения об образе и требованиях для их внутреннего использования. Эти сведения включают в себя: определение, относится ли этот образ к Windows или к Linux, заметки о выпуске, а также минимальные и максимальные требования к памяти. Это определение типа образа. |
Версия образа | Версия образа используется для создания виртуальной машины с помощью коллекции. В зависимости от требований для вашей среды, у вас может быть несколько версий образа. Так же как и управляемый образ при использовании версии образа для создания виртуальной машины, версия образа используется для создания новых дисков для виртуальной машины. Версии образов можно использовать несколько раз. |
Запуск Azure Cloud Shell
Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.
Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода. Cloud Shell можно также запустить в отдельной вкладке браузера, перейдя на страницу https://shell.azure.com/powershell. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу "ВВОД", чтобы выполнить его.
Получение виртуальной машины
Список виртуальных машин, доступных в группе ресурсов, можно просмотреть с помощью командлета Get-AzVM. Зная имя виртуальной машины и группу ресурсов, в которой она находится, можно снова выполнить командлет Get-AzVM
, чтобы получить объект виртуальной машины и сохранить его в переменной для последующего использования. Этот пример получает виртуальную машину с именем sourceVM из группы ресурсов myResourceGroup и назначает ее переменной $sourceVM.
$sourceVM = Get-AzVM `
-Name sourceVM `
-ResourceGroupName myResourceGroup
Создание или изменение группы ресурсов
Создайте группу ресурсов с помощью команды New-AzResourceGroup.
Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими. В следующем примере создается группа ресурсов с именем myGalleryRG в регионе EastUS.
$resourceGroup = New-AzResourceGroup `
-Name 'myGalleryRG' `
-Location 'EastUS'
Создать коллекцию
Коллекция является основным ресурсом, который позволяет обмен изображениями. Имя коллекции может содержать прописные и строчные буквы, а также цифры и точки, но не дефисы. Имена коллекций должны быть уникальным в пределах вашей подписки.
Создайте коллекцию, используя команду New-AzGallery. В следующем примере показано, как создать коллекцию с именем myGallery в группе ресурсов myGalleryRG.
$gallery = New-AzGallery `
-GalleryName 'myGallery' `
-ResourceGroupName $resourceGroup.ResourceGroupName `
-Location $resourceGroup.Location `
-Description 'Azure Compute Gallery for my organization'
Создание определения образа
Образы можно объединять в логические группы с помощью определений образов. Определения образов используются для управления сведениями о версиях созданных в них образов. В имени определения образа можно использовать прописные и строчные буквы, цифры, точки и дефисы. Дополнительные сведения о значениях, которые можно указать для определения образа, см. в разделе Определения образов.
Создайте определение образа с помощью командлета New-AzGalleryImageDefinition. В этом примере образ коллекции называется myGalleryImage и создается для специализированного образа.
$galleryImage = New-AzGalleryImageDefinition `
-GalleryName $gallery.Name `
-ResourceGroupName $resourceGroup.ResourceGroupName `
-Location $gallery.Location `
-Name 'myImageDefinition' `
-OsState specialized `
-OsType Windows `
-Publisher 'myPublisher' `
-Offer 'myOffer' `
-Sku 'mySKU'
Создание версии образа
Создайте версию образа из виртуальной машины с помощью командлета New-AzGalleryImageVersion.
Допустимыми знаками для имени версии образа являются цифры и точки. Числа должны быть в диапазоне 32-битного целого числа. Формат: основной номер версии.дополнительный номер версии.исправление.
В этом примере используется версия образа 1.0.0, которая реплицируется в центры обработки данных в регионах Восточная часть США и Центрально-южная часть США. При выборе целевых регионов для репликации необходимо включить исходный регион в качестве целевого для репликации.
Чтобы создать версию образа на основе виртуальной машины, используйте для параметра -Source
значение $vm.Id.ToString()
.
$region1 = @{Name='South Central US';ReplicaCount=1}
$region2 = @{Name='East US';ReplicaCount=2}
$targetRegions = @($region1,$region2)
New-AzGalleryImageVersion `
-GalleryImageDefinitionName $galleryImage.Name`
-GalleryImageVersionName '1.0.0' `
-GalleryName $gallery.Name `
-ResourceGroupName $resourceGroup.ResourceGroupName `
-Location $resourceGroup.Location `
-TargetRegion $targetRegions `
-Source $sourceVM.Id.ToString() `
-PublishingProfileEndOfLifeDate '2030-12-01'
Репликация образа во все целевые регионы может занять некоторое время.
создание виртуальной машины;
Получив специализированный образ, вы можете создать одну или несколько виртуальных машин. Используйте командлет New-AzVM. Чтобы использовать образ, используйте Set-AzVMSourceImage
, указав -Id
в качестве идентификатора определения образа (в нашем примере — $galleryImage.Id). Тогда будет использоваться самая новая версия образа.
При необходимости замените имена ресурсов в этом примере.
# Create some variables for the new VM.
$resourceGroup = "myResourceGroup"
$location = "South Central US"
$vmName = "mySpecializedVM"
# Create a resource group
New-AzResourceGroup -Name $resourceGroup -Location $location
# Create the network resources.
$subnetConfig = New-AzVirtualNetworkSubnetConfig -Name mySubnet -AddressPrefix 192.168.1.0/24
$vnet = New-AzVirtualNetwork -ResourceGroupName $resourceGroup -Location $location `
-Name MYvNET -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig
$pip = New-AzPublicIpAddress -ResourceGroupName $resourceGroup -Location $location `
-Name "mypublicdns$(Get-Random)" -AllocationMethod Static -IdleTimeoutInMinutes 4
$nsgRuleRDP = New-AzNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleRDP -Protocol Tcp `
-Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 3389 -Access Deny
$nsg = New-AzNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
-Name myNetworkSecurityGroup -SecurityRules $nsgRuleRDP
$nic = New-AzNetworkInterface -Name $vmName -ResourceGroupName $resourceGroup -Location $location `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
# Create a virtual machine configuration using $imageVersion.Id to specify the image version.
$vmConfig = New-AzVMConfig -VMName $vmName -VMSize Standard_D1_v2 | `
Set-AzVMSourceImage -Id $galleryImage.Id | `
Add-AzVMNetworkInterface -Id $nic.Id
# Create a virtual machine
New-AzVM -ResourceGroupName $resourceGroup -Location $location -VM $vmConfig
Предоставление общего доступа к коллекции
Мы рекомендуем предоставлять общий доступ на уровне коллекции. Используйте адрес электронной почты и командлет Get-AzADUser, чтобы получить идентификатор объекта для пользователя, а затем используйте командлет New-AzRoleAssignment, чтобы предоставить этому пользователю доступ к коллекции. Замените пример адреса электронной почты alinne_montes@contoso.com в этом примере своим значением адреса.
# Get the object ID for the user
$user = Get-AzADUser -StartsWith alinne_montes@contoso.com
# Grant access to the user for our gallery
New-AzRoleAssignment `
-ObjectId $user.Id `
-RoleDefinitionName Reader `
-ResourceName $gallery.Name `
-ResourceType Microsoft.Compute/galleries `
-ResourceGroupName $resourceGroup.ResourceGroupName
Очистка ресурсов
Вы можете удалить ненужную группу ресурсов и все связанные с ней ресурсы, выполнив командлет Remove-AzResourceGroup.
# Delete the gallery
Remove-AzResourceGroup -Name myGalleryRG
# Delete the VM
Remove-AzResourceGroup -Name myResoureceGroup
Средство создания образов Azure
Azure также предлагает службу на основе Packer — Конструктор образов виртуальных машин Azure. Просто опишите настройки в шаблоне, и эта служба автоматически создаст образ.
Следующие шаги
С помощью этого руководства вы создали специализированный образ виртуальной машины. Вы научились выполнять следующие задачи:
- Создание Коллекции вычислений Azure
- Создание определения образа
- Создание версии образа
- Создание виртуальной машины из образа
- Общий доступ к коллекции
Перейдите к следующему руководству, чтобы узнать о Масштабируемые наборы виртуальных машин.