Руководство по Создание виртуальных машин Windows и управление ими с помощью Azure PowerShellTutorial: Create and Manage Windows VMs with Azure PowerShell

Виртуальные машины Azure предоставляют полностью настраиваемую и гибкую вычислительную среду.Azure virtual machines provide a fully configurable and flexible computing environment. В этом руководстве рассматриваются основные элементы развертывания виртуальной машины Azure, например выбор ее размера, образа и ее развертывание.This tutorial covers basic Azure virtual machine (VM) deployment tasks like selecting a VM size, selecting a VM image, and deploying a VM. Вы узнаете, как выполнять следующие задачи:You learn how to:

  • Создание виртуальной машины и подключение к нейCreate and connect to a VM
  • Выбор и использование образов виртуальных машинSelect and use VM images
  • Просмотр и использование определенных размеров виртуальных машинView and use specific VM sizes
  • Изменение размера виртуальной машиныResize a VM
  • Просмотр виртуальной машины и оценка ее состоянияView and understand VM state

Запуск Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell — это бесплатная интерактивная оболочка, с помощью которой можно выполнять действия, описанные в этой статье.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Она включает предварительно установленные общие инструменты Azure и настроена для использования с вашей учетной записью.It has common Azure tools preinstalled and configured to use with your account.

Чтобы открыть Cloud Shell, просто выберите Попробовать в правом верхнем углу блока кода.To open the Cloud Shell, just select Try it from the upper right corner of a code block. Cloud Shell можно также запустить в отдельной вкладке браузера, перейдя на страницу https://shell.azure.com/powershell.You can also launch Cloud Shell in a separate browser tab by going to https://shell.azure.com/powershell. Нажмите кнопку Копировать, чтобы скопировать блоки кода. Вставьте код в Cloud Shell и нажмите клавишу "ВВОД", чтобы выполнить его.Select Copy to copy the blocks of code, paste it into the Cloud Shell, and press enter to run it.

Создать группу ресурсовCreate resource group

Создайте группу ресурсов с помощью команды New-AzResourceGroup.Create a resource group with the New-AzResourceGroup command.

Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.An Azure resource group is a logical container into which Azure resources are deployed and managed. Группу ресурсов следует создавать до виртуальной машины.A resource group must be created before a virtual machine. В следующем примере создается группа ресурсов с именем myResourceGroupVM в регионе EastUS:In the following example, a resource group named myResourceGroupVM is created in the EastUS region:

New-AzResourceGroup `
   -ResourceGroupName "myResourceGroupVM" `
   -Location "EastUS"

Группа ресурсов указывается при создании или изменении виртуальной машины, что показывается в этом руководстве.The resource group is specified when creating or modifying a VM, which can be seen throughout this tutorial.

Создание виртуальной машиныCreate a VM

При создании виртуальной машины можно настроить несколько параметров, включая образ операционной системы, конфигурацию сети и учетные данные администратора.When creating a VM, several options are available like operating system image, network configuration, and administrative credentials. В этом примере создается виртуальная машина myVM, на которой выполняется последняя стандартная версия Windows Server 2016 Datacenter.This example creates a VM named myVM, running the default version of Windows Server 2016 Datacenter.

Настройте на виртуальной машине имя пользователя и пароль для учетной записи администратора с помощью командлета Get-Credential:Set the username and password needed for the administrator account on the VM with Get-Credential:

$cred = Get-Credential

Создайте виртуальную машину с помощью команды New-AzVM.Create the VM with New-AzVM.

New-AzVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress" `
    -Credential $cred

Подключение к виртуальной машинеConnect to VM

После завершения развертывания создайте подключение к удаленному рабочему столу виртуальной машины.After the deployment has completed, create a remote desktop connection with the VM.

Выполните приведенные ниже команды, чтобы получить общедоступный IP-адрес виртуальной машины.Run the following commands to return the public IP address of the VM. Запишите этот IP-адрес. Он потребуется, чтобы подключиться к виртуальной машине в браузере и проверить возможность подключения к Интернету на следующем этапе.Take note of this IP Address so you can connect to it with your browser to test web connectivity in a future step.

Get-AzPublicIpAddress `
   -ResourceGroupName "myResourceGroupVM"  | Select IpAddress

Для создания сеанса удаленного рабочего стола с виртуальной машиной выполните команду ниже на своем локальном компьютере.Use the following command, on your local machine, to create a remote desktop session with the VM. Замените указанный IP-адрес общедоступным IP-адресом своей виртуальной машины.Replace the IP address with the publicIPAddress of your VM. При появлении запроса введите учетные данные, использованные при создании виртуальной машины.When prompted, enter the credentials used when creating the VM.

mstsc /v:<publicIpAddress>

В окне Безопасность Windows выберите Варианты выбора и нажмите Использовать другую учетную запись.In the Windows Security window, select More choices and then Use a different account. Введите имя пользователя и пароль, созданные для виртуальной машины, и нажмите кнопку ОК.Type the username and password you created for the VM and then click OK.

Основные сведения о платежах в MarketplaceUnderstand marketplace images

Azure Marketplace содержит множество образов, которые можно использовать для создания виртуальных машин.The Azure marketplace includes many images that can be used to create a new VM. На предыдущих шагах виртуальная машина создавалась с помощью образа Windows Server 2016 Datacenter.In the previous steps, a VM was created using the Windows Server 2016 Datacenter image. На этом шаге модуль PowerShell используется для поиска других образов Windows на сайте Marketplace, которые можно также использовать для создания виртуальных машин.In this step, the PowerShell module is used to search the marketplace for other Windows images, which can also be used as a base for new VMs. Этот процесс заключается в поиске сведений об издателе, предложении, номера SKU и (необязательно) номера версии для идентификации образа.This process consists of finding the publisher, offer, SKU, and optionally a version number to identify the image.

Получите список издателей образов, используя команду Get-AzVMImagePublisher:Use the Get-AzVMImagePublisher command to return a list of image publishers:

Get-AzVMImagePublisher -Location "EastUS"

Получите список предложений образов, используя команду Get-AzVMImageOffer.Use the Get-AzVMImageOffer to return a list of image offers. Эта команда возвращает список, отфильтрованный по указанному издателю MicrosoftWindowsServer:With this command, the returned list is filtered on the specified publisher named MicrosoftWindowsServer:

Get-AzVMImageOffer `
   -Location "EastUS" `
   -PublisherName "MicrosoftWindowsServer"

Должно отобразиться примерно следующее:The results will look something like this example:

Offer             PublisherName          Location
-----             -------------          --------
Windows-HUB       MicrosoftWindowsServer EastUS
WindowsServer     MicrosoftWindowsServer EastUS
WindowsServer-HUB MicrosoftWindowsServer EastUS

Команда Get-AzVMImageSku отфильтрует список по имени издателя и названию предложения, отобразив список имен образов.The Get-AzVMImageSku command will then filter on the publisher and offer name to return a list of image names.

Get-AzVMImageSku `
   -Location "EastUS" `
   -PublisherName "MicrosoftWindowsServer" `
   -Offer "WindowsServer"

Должно отобразиться примерно следующее:The results will look something like this example:

Skus                                      Offer         PublisherName          Location
----                                      -----         -------------          --------
2008-R2-SP1                               WindowsServer MicrosoftWindowsServer EastUS  
2008-R2-SP1-smalldisk                     WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2012-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter                        WindowsServer MicrosoftWindowsServer EastUS  
2012-R2-Datacenter-smalldisk              WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter                           WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core               WindowsServer MicrosoftWindowsServer EastUS  
2016-Datacenter-Server-Core-smalldisk     WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-smalldisk                 WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers           WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-Containers-smalldisk WindowsServer MicrosoftWindowsServer EastUS
2016-Datacenter-with-RDSH                 WindowsServer MicrosoftWindowsServer EastUS
2016-Nano-Server                          WindowsServer MicrosoftWindowsServer EastUS

Эти сведения можно использовать для развертывания виртуальной машины на основе конкретного образа.This information can be used to deploy a VM with a specific image. В этом примере развертывается виртуальная машина с помощью последней версии Windows Server 2016 и образа контейнеров.This example deploys a VM using the latest version of a Windows Server 2016 with Containers image.

New-AzVm `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM2" `
    -Location "EastUS" `
    -VirtualNetworkName "myVnet" `
    -SubnetName "mySubnet" `
    -SecurityGroupName "myNetworkSecurityGroup" `
    -PublicIpAddressName "myPublicIpAddress2" `
    -ImageName "MicrosoftWindowsServer:WindowsServer:2016-Datacenter-with-Containers:latest" `
    -Credential $cred `
    -AsJob

Параметр -AsJob создает виртуальную машину как фоновую задачу, поэтому PowerShell отображает запрос о возврате.The -AsJob parameter creates the VM as a background task, so the PowerShell prompts return to you. Подробные сведения о фоновых заданиях можно просмотреть с помощью командлета Get-Job.You can view details of background jobs with the Get-Job cmdlet.

Описание размеров виртуальных машинUnderstand VM sizes

Размер виртуальной машины определяет количество выделяемых ей вычислительных ресурсов, таких как ЦП, GPU и память.The VM size determines the amount of compute resources like CPU, GPU, and memory that are made available to the VM. Размер создаваемых виртуальных машин должен соответствовать ожидаемой рабочей нагрузке.Virtual machines should be created using a VM size appropriate for the workload. При увеличении рабочей нагрузки размер существующей виртуальной машины может быть изменен.If a workload increases, an existing virtual machine can also be resized.

Размеры виртуальных машинVM Sizes

В приведенной ниже таблицы указаны категории размеров и примеры использования.The following table categorizes sizes into use cases.

ТипType Распространенные размерыCommon sizes ОписаниеDescription
УниверсальныеGeneral purpose B, Dsv3, Dv3, DSv2, Dv2, Av2, DCB, Dsv3, Dv3, DSv2, Dv2, Av2, DC Сбалансированное соотношение ресурсов ЦП и памяти.Balanced CPU-to-memory. Идеально подходят для разработки и тестирования малых и средних приложений и решений для обработки данных.Ideal for dev / test and small to medium applications and data solutions.
Оптимизированные для вычисленийCompute optimized Fsv2Fsv2 Высокое соотношение ресурсов ЦП и памяти.High CPU-to-memory. Подходят для приложений со средним объемом трафика, сетевых устройств и пакетных процессов.Good for medium traffic applications, network appliances, and batch processes.
Оптимизированные для памятиMemory optimized Esv3, Ev3, M, DSv2, Dv2Esv3, Ev3, M, DSv2, Dv2 Высокое соотношение ресурсов памяти и числа ядер.High memory-to-core. Отлично подходят для реляционных баз данных, кэша среднего и большого объема, а также выполняющейся в памяти аналитики.Great for relational databases, medium to large caches, and in-memory analytics.
Оптимизированные для хранилищаStorage optimized Lsv2, LsLsv2, Ls Высокая пропускная способность дисков и количество операций ввода-вывода.High disk throughput and IO. Идеальный вариант для работы с большими данными, а также с базами данных SQL и NoSQL.Ideal for Big Data, SQL, and NoSQL databases.
GPUGPU NV, NVv2, NC, NCv2, NCv3, NDNV, NVv2, NC, NCv2, NCv3, ND Специализированные виртуальные машины, предназначенные для ресурсоемкой отрисовки изображений и редактирования видео.Specialized VMs targeted for heavy graphic rendering and video editing.
ВысокопроизводительныеHigh performance HH Виртуальные машины с самыми мощными ЦП, для которых можно настроить сетевые интерфейсы с высокой пропускной способностью (RDMA).Our most powerful CPU VMs with optional high-throughput network interfaces (RDMA).

Поиск всех доступных размеров виртуальных машинFind available VM sizes

Чтобы просмотреть список доступных размеров виртуальных машин в определенном регионе, используйте команду Get-AzVMSize.To see a list of VM sizes available in a particular region, use the Get-AzVMSize command.

Get-AzVMSize -Location "EastUS"

Изменение размера виртуальной машиныResize a VM

После развертывания виртуальной машины ее размер можно изменить, чтобы увеличить или уменьшить выделенные ей ресурсы.After a VM has been deployed, it can be resized to increase or decrease resource allocation.

Перед изменением размера виртуальной машины проверьте, доступен ли нужный размер в текущем кластере виртуальных машин.Before resizing a VM, check if the size you want is available on the current VM cluster. Команда Get-AzVMSize возвращает список размеров.The Get-AzVMSize command returns a list of sizes.

Get-AzVMSize -ResourceGroupName "myResourceGroupVM" -VMName "myVM"

Если нужный размер доступен, то размер виртуальной машины можно изменить во включенном состоянии, однако виртуальную машину нужно будет перезагрузить.If the size is available, the VM can be resized from a powered-on state, however it is rebooted during the operation.

$vm = Get-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_DS3_v2"
Update-AzVM `
   -VM $vm `
   -ResourceGroupName "myResourceGroupVM"

Если желаемый размер в текущем кластере недоступен, то перед изменением размера виртуальную машину нужно освободить.If the size you want isn't available on the current cluster, the VM needs to be deallocated before the resize operation can occur. Обратите внимание на то, что после повторного включения виртуальной машины все данные на временном диске будут удалены, а общедоступный IP-адрес изменится, если только не используется статический IP-адрес.Deallocating a VM will remove any data on the temp disk, and the public IP address will change unless a static IP address is being used.

Stop-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM" -Force
$vm = Get-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -VMName "myVM"
$vm.HardwareProfile.VmSize = "Standard_E2s_v3"
Update-AzVM -VM $vm `
   -ResourceGroupName "myResourceGroupVM"
Start-AzVM `
   -ResourceGroupName "myResourceGroupVM"  `
   -Name $vm.name

Состояния включенной виртуальной машиныVM power states

Включенная виртуальная машина Azure может находиться в одном из многих состояний.An Azure VM can have one of many power states.

Состояние включенияPower State ОписаниеDescription
ЗапускStarting Виртуальная машина запускается.The virtual machine is being started.
ЗапущенRunning Виртуальная машина запущена.The virtual machine is running.
ОстановкаStopping Виртуальная машина останавливается.The virtual machine is being stopped.
ОстановленаStopped Виртуальная машина остановилась.The VM is stopped. За виртуальные машины в остановленном состоянии по-прежнему взимается плата за вычислительные операции.Virtual machines in the stopped state still incur compute charges.
Отмена выделенияDeallocating Виртуальная машина освобождается.The VM is being deallocated.
ОсвобожденоDeallocated Указывает, что виртуальная машина удалена из гипервизора, но по-прежнему доступна в плоскости управления.Indicates that the VM is removed from the hypervisor but is still available in the control plane. За виртуальные машины в состоянии Deallocated не взимается плата за вычислительные операции.Virtual machines in the Deallocated state do not incur compute charges.
- Состояние включенной виртуальной машины неизвестно.The power state of the VM is unknown.

Чтобы получить состояние конкретной виртуальной машины, используйте команду Get-AzVM.To get the state of a particular VM, use the Get-AzVM command. Необходимо указать допустимое имя виртуальной машины и группы ресурсов.Be sure to specify a valid name for a VM and resource group.

Get-AzVM `
    -ResourceGroupName "myResourceGroupVM" `
    -Name "myVM" `
    -Status | Select @{n="Status"; e={$_.Statuses[1].Code}}

Результат должен выглядеть следующим образом.The output will look something like this example:

Status
------
PowerState/running

Задачи управленияManagement tasks

В течение жизненного цикла виртуальной машины можно выполнять задачи управления, такие как запуск, остановка или удаление виртуальной машины.During the lifecycle of a VM, you may want to run management tasks like starting, stopping, or deleting a VM. Кроме того, можно создавать скрипты для автоматизации повторяющихся или сложных задач.Additionally, you may want to create scripts to automate repetitive or complex tasks. С помощью Azure PowerShell можно выполнять множество распространенных задач управления в командной строке или в скриптах.Using Azure PowerShell, many common management tasks can be run from the command line or in scripts.

Остановка виртуальной машиныStop a VM

Остановите и освободите виртуальную машину с помощью команды Stop-AzVM:Stop and deallocate a VM with Stop-AzVM:

Stop-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM" -Force

Если вы хотите сохранить виртуальную машину в подготовленном состоянии, задайте параметр -StayProvisioned.If you want to keep the VM in a provisioned state, use the -StayProvisioned parameter.

Запуск виртуальной машиныStart a VM

Start-AzVM `
   -ResourceGroupName "myResourceGroupVM" `
   -Name "myVM"

Удалить группу ресурсовDelete resource group

При удалении группы ресурсов удаляются и все содержащиеся в ней элементы.Everything inside of a resource group is deleted when you delete the resource group.

Remove-AzResourceGroup `
   -Name "myResourceGroupVM" `
   -Force

Дальнейшие действияNext steps

В рамках этого руководства вы изучили основы создания виртуальной машины и управления ею. Вы узнали, как выполнять следующие задачи:In this tutorial, you learned about basic VM creation and management such as how to:

  • Создание виртуальной машины и подключение к нейCreate and connect to a VM
  • Выбор и использование образов виртуальных машинSelect and use VM images
  • Просмотр и использование определенных размеров виртуальных машинView and use specific VM sizes
  • Изменение размера виртуальной машиныResize a VM
  • Просмотр виртуальной машины и оценка ее состоянияView and understand VM state

Перейдите к следующему руководству, чтобы узнать о дисках виртуальных машин.Advance to the next tutorial to learn about VM disks.