Создание виртуальных машин с помощью Azure PowerShell
В этом руководстве описано, как настроить виртуальную машину с помощью Azure PowerShell. Вы также узнаете, как создавать запросы выходных данных, повторно использовать ресурсы Azure и очищать ресурсы.
Для работы с этим руководством вам понадобится интерактивная служба Azure Cloud Shell или вы можете установить Azure PowerShell локально.
Используйте клавиши CTRL+SHIFT+V (CMD+SHIFT+V в macOS), чтобы вставить текст руководства в Azure Cloud Shell.
Вход
Если вы используете локальную установку Azure PowerShell, вам нужно войти, прежде чем выполнять какие-либо действия.
Connect-AzAccount
Выполните вход, следуя инструкциям в окне терминала.
Создание или изменение группы ресурсов
В Azure все ресурсы включаются в одну группу управления ресурсами. Эти группы обеспечивают логическое объединение ресурсов, позволяя работать с ними как с коллекцией.
В этом руководстве все созданные ресурсы помещаются в одну группу с именем TutorialResources
.
New-AzResourceGroup -Name TutorialResources -Location eastus
ResourceGroupName : TutorialResources
Location : eastus
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources
Создание учетных данных администратора для виртуальной машины
Перед созданием виртуальной машины необходимо создать объект учетных данных, содержащий имя пользователя и пароль учетной записи администратора виртуальной машины Windows.
$cred = Get-Credential -Message "Enter a username and password for the virtual machine."
Когда отобразится запрос, введите имя пользователя и пароль. Полученный объект учетных данных передается как параметр в следующем шаге.
Windows PowerShell credential request.
Enter a username and password for the virtual machine.
User: tutorAdmin
Password for user tutorAdmin: *********
Создание виртуальной машины
Виртуальные машины в Azure имеют большое число зависимостей. Azure PowerShell создает эти ресурсы на основе указанных аргументов командной строки. Для удобства чтения мы используем сплаттинг PowerShell, чтобы передать параметры в командлеты Azure PowerShell.
Создайте виртуальную машину под управлением Windows.
$vmParams = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM1'
Location = 'eastus'
ImageName = 'Win2016Datacenter'
PublicIpAddressName = 'tutorialPublicIp'
Credential = $cred
OpenPorts = 3389
Size = 'Standard_D2s_v3'
}
$newVM1 = New-AzVM @vmParams
При создании виртуальной машины отображаются используемые значения параметров и создаваемые ресурсы Azure. В PowerShell отобразится индикатор хода выполнения, как показано ниже.
Creating Azure resources
39% \
[ooooooooooooooooooooooooooooooooooo ]
Creating TutorialVM1 virtual machine.
Когда виртуальная машина будет создана, мы сможем просмотреть результаты на портале Azure или проверить переменную $newVM1
.
$newVM1
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM1
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM1
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
Значения свойств, перечисленные внутри фигурных скобок, — это вложенные объекты. В следующем шаге мы просмотрим конкретные значения этих вложенных объектов.
Получение сведений о виртуальной машине с помощью запросов
Давайте получим более подробные сведения о созданной виртуальной машине. В этом примере мы проверим имя виртуальной машины и созданную учетную запись администратора.
$newVM1.OSProfile | Select-Object -Property ComputerName, AdminUserName
ComputerName AdminUsername
------------ -------------
TutorialVM1 tutorialAdmin
Мы можем использовать и другие команды Azure PowerShell, чтобы получить конкретные сведения о конфигурации сети.
$newVM1 | Get-AzNetworkInterface |
Select-Object -ExpandProperty IpConfigurations |
Select-Object -Property Name, PrivateIpAddress
В этом примере мы используем конвейер PowerShell, чтобы отправить объект $newVM1 в командлет Get-AzNetworkInterface
. Из результирующего объекта сетевого интерфейса мы выбираем вложенный объект IpConfigurations. Из объекта IpConfigurations мы выбираем свойства Name и PrivateIpAddress.
Name PrivateIpAddress
---- ----------------
TutorialVM1 192.168.1.4
Чтобы убедиться, что виртуальная машина запущена, необходимо подключиться через удаленный рабочий стол. Для этого необходимо знать общедоступный IP-адрес.
$publicIp = Get-AzPublicIpAddress -Name tutorialPublicIp -ResourceGroupName TutorialResources
$publicIp |
Select-Object -Property Name, IpAddress, @{label='FQDN';expression={$_.DnsSettings.Fqdn}}
В этом примере мы используем Get-AzPublicIpAddress
и помещаем результаты в переменную $publicIp
. Из этой переменной мы выбираем свойства и используем выражение, чтобы получить вложенное свойство Fqdn.
Name IpAddress FQDN
---- --------- ----
tutorialPublicIp <PUBLIC_IP_ADDRESS> tutorialvm1-8a0999.eastus.cloudapp.azure.com
С локального компьютера можно выполнить следующую команду для подключения к виртуальной машине через удаленный рабочий стол.
mstsc.exe /v $publicIp.IpAddress
См. дополнительные сведения о запрашивании свойств объектов Azure.
Создание виртуальной машины в существующей подсети
Вторая виртуальная машина использует существующую подсеть.
$vm2Params = @{
ResourceGroupName = 'TutorialResources'
Name = 'TutorialVM2'
ImageName = 'Win2016Datacenter'
VirtualNetworkName = 'TutorialVM1'
SubnetName = 'TutorialVM1'
PublicIpAddressName = 'tutorialPublicIp2'
Credential = $cred
OpenPorts = 3389
}
$newVM2 = New-AzVM @vm2Params
$newVM2
ResourceGroupName : TutorialResources
Id : /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/TutorialResources/providers/Microsoft.Compute/virtualMachines/TutorialVM2
VmId : 00000000-0000-0000-0000-000000000000
Name : TutorialVM2
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : tutorialvm2-dfa5af.eastus.cloudapp.azure.com
Вы можете пропустить несколько шагов, чтобы получить общедоступный IP-адрес новой виртуальной машины, так как он возвращается в свойстве FullyQualifiedDomainName объекта $newVM2
. Используйте следующую команду для подключения с помощью удаленного рабочего стола.
mstsc.exe /v $newVM2.FullyQualifiedDomainName
Очистка
Теперь, когда вы завершили работу с этим руководством, можно очистить созданные ресурсы. Вы можете удалить отдельные ресурсы с помощью команды Remove-AzResource
. Но безопаснее будет удалить все ресурсы в группе ресурсов, удалив саму группу с помощью команды Remove-AzResourceGroup
.
$job = Remove-AzResourceGroup -Name TutorialResources -Force -AsJob
$job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost Remove-AzResource...
Эта команда удаляет ресурсы, созданные при работе с руководством, и гарантированно удаляет их в правильном порядке. Параметр AsJob
предотвращает блокировку PowerShell в ходе удаления. Чтобы дождаться завершения удаления, используйте следующую команду:
Wait-Job -Id $job.Id
Очистка ресурсов — это последнее действие в рамках этого руководства. Теперь еще раз вкратце повторите все, о чем вы узнали. Также вы можете воспользоваться ссылками на ресурсы, которые помогут вам перейти к дальнейшим действиям.
Итоги
Поздравляем! Вы узнали, как создавать виртуальные машины с новыми или существующими ресурсами, использовать выражения и другие команды Azure PowerShell для записи данных в переменные оболочки, а также выполнять поиск некоторых ресурсов, которые создаются для виртуальных машин Azure.
Ваши дальнейшие действия будут зависеть от того, для чего вы планируете использовать Azure PowerShell. Доступно множество материалов, которые подробно описывают использование компонентов, рассматриваемых в этом руководстве.
Подробная документация по Azure PowerShell
Изучение полной документации по Azure PowerShell может занять какое-то время.
Дополнительные сведения о командах, используемых в этом руководстве, см. в следующих ресурсах.
- New-AzResourceGroup
- Get-Credential
- New-AzVM
- Select-Object
- Get-AzPublicIpAddress
- Remove-AzResourceGroup
- Wait-Job
Ниже также приведены ресурсы с подробным описание функций, рассматриваемых в этом руководстве.
Примеры сценариев
Если вы хотите начать работу с определенными задачами прямо сейчас, изучите некоторые примеры скриптов.
Feedback
Чтобы оставить отзыв, поделиться предложениями или задать вопросы, вы можете связаться с нами разными способами.
Send-Feedback
— это встроенная команда Azure PowerShell, которая позволяет отправить отзыв команде в свободной форме.- Можно оставить запрос функции или сообщение об ошибке в хранилище Azure PowerShell.
- Кроме того, задать вопрос или получить разъяснение можно в репозитории с документацией Azure PowerShell.
Мы надеемся, что вам понравится работать с Azure PowerShell!
Возникла проблема с этим разделом? Если это так, отправьте нам отзыв, чтобы мы исправили этот раздел.