Начало работы с Azure PowerShell
Предупреждение
Модуль AzureRM PowerShell официально устарел с 29 февраля 2024 г. Пользователям рекомендуется выполнить миграцию из AzureRM в модуль Az PowerShell, чтобы обеспечить постоянную поддержку и обновления.
Хотя модуль AzureRM по-прежнему может функционировать, он больше не поддерживается или не поддерживается, размещая любое постоянное использование на усмотрение и риск пользователя. Ознакомьтесь с нашими ресурсами миграции, чтобы получить рекомендации по переходу в модуль Az.
Модуль Azure PowerShell предназначен для администрирования ресурсов Azure из командной строки, а также для создания скриптов автоматизации, которые работают с Azure Resource Manager. Его можно использовать в браузере с Azure Cloud Shell, а также установить на локальном компьютере. В этой статье содержатся инструкции по началу работы с Azure PowerShell и объясняются основные принципы работы этого модуля.
Чтобы установить Azure PowerShell, выполните следующие действия
Сначала установите последнюю версию модуля Azure PowerShell. Сведения о последнем выпуске см. в заметках о выпуске.
Чтобы проверить установку, выполните
Get-InstalledModule -Name AzureRM -AllVersions
в PowerShell.
Azure Cloud Shell
Самый простой способ начать работу — запустить службу Cloud Shell.
Запустите Cloud Shell с верхней панели навигации портала Azure.
Выберите нужную подписку и создайте учетную запись хранения.
Когда хранилище будет создано, Cloud Shell откроет сеанс PowerShell в браузере.
Вы также можете установить Azure PowerShell для локального использования в сеансе PowerShell.
Вход в Azure
Войдите в интерактивном режиме:
Введите
Connect-AzureRmAccount
. Появится диалоговое окно с запросом на ввод учетных данных Azure. С помощью параметра -Environment можно пройти проверку подлинности в Azure для Китая или Azure для Германии.Пример: Connect-AzureRmAccount -Environment AzureChinaCloud
Введите электронный адрес и пароль, связанные с вашей учетной записью. Azure выполняет проверку подлинности и сохраняет учетные данные, а затем закрывает окно.
После входа в учетную запись Azure вы можете использовать командлеты Azure PowerShell для работы с ресурсами в подписке и управления ими.
Создание виртуальной машины Windows с помощью простых значений по умолчанию
У командлета New-AzureRmVM
упрощенный синтаксис, что облегчает создание виртуальной машины. Вам нужно указать только два значения параметров: имя виртуальной машины и учетные данные локального администратора виртуальной машины.
Сначала мы создадим объект учетных данных.
$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: localAdmin
Password for user localAdmin: *********
Затем — виртуальную машину.
New-AzureRmVM -Name SampleVM -Credential $cred
ResourceGroupName : SampleVM
Id : /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/SampleVM/providers/Microsoft.Compute/virtualMachines/SampleVM
VmId : 43f6275d-ce50-49c8-a831-5d5974006e63
Name : SampleVM
Type : Microsoft.Compute/virtualMachines
Location : eastus
Tags : {}
HardwareProfile : {VmSize}
NetworkProfile : {NetworkInterfaces}
OSProfile : {ComputerName, AdminUsername, WindowsConfiguration, Secrets}
ProvisioningState : Succeeded
StorageProfile : {ImageReference, OsDisk, DataDisks}
FullyQualifiedDomainName : samplevm-2c0867.eastus.cloudapp.azure.com
Может возникнуть вопрос, что при этом еще создается, а также как настроена виртуальная машина. Сначала посмотрим на наши группы ресурсов.
Get-AzureRmResourceGroup |
Select-Object -Property ResourceGroupName, Location
ResourceGroupName Location
----------------- --------
cloud-shell-storage-westus westus
SampleVM eastus
Группа ресурсов cloud-shell-storage-westus создается при первом использовании Cloud Shell. Группа ресурсов SampleVM создается командлетом New-AzureRmVM
.
Но какие же ресурсы созданы в этой новой группе ресурсов?
Get-AzureRmResource |
Where ResourceGroupName -eq SampleVM |
Select-Object -Property ResourceGroupName, Location, ResourceType, Name
ResourceGroupName Location ResourceType Name
----------------- -------- ------------ ----
SAMPLEVM eastus Microsoft.Compute/disks SampleVM_OsDisk_1_9b286c54b168457fa1f8c47...
SampleVM eastus Microsoft.Compute/virtualMachines SampleVM
SampleVM eastus Microsoft.Network/networkInterfaces SampleVM
SampleVM eastus Microsoft.Network/networkSecurityGroups SampleVM
SampleVM eastus Microsoft.Network/publicIPAddresses SampleVM
SampleVM eastus Microsoft.Network/virtualNetworks SampleVM
Давайте получим дополнительные сведения о виртуальной машине. В этом примере показано, как получить сведения об образе операционной системы, который используется для создания виртуальной машины.
Get-AzureRmVM -Name SampleVM -ResourceGroupName SampleVM |
Select-Object -ExpandProperty StorageProfile |
Select-Object -ExpandProperty ImageReference
Publisher : MicrosoftWindowsServer
Offer : WindowsServer
Sku : 2016-Datacenter
Version : latest
Id :
Создание полностью настроенной виртуальной машины Linux
В предыдущем примере для создания виртуальной машины Windows используется упрощенный синтаксис и значения параметров по умолчанию. В этом примере мы предоставляем значения для всех параметров виртуальной машины.
Создание или изменение группы ресурсов
В этом примере показано, как создать группу ресурсов. Группы ресурсов в Azure позволяют управлять разными ресурсами, которые вы хотите логически сгруппировать. Например, вы можете создать группу ресурсов для приложения или проекта, а затем добавить в эту группу виртуальную машину, базу данных и службу CDN.
Создайте группу ресурсов с именем MyResourceGroup в регионе Azure "Западная Европа". Используйте для этого следующую команду:
New-AzureRmResourceGroup -Name 'myResourceGroup' -Location 'westeurope'
ResourceGroupName : myResourceGroup
Location : westeurope
ProvisioningState : Succeeded
Tags :
ResourceId : /subscriptions/XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/resourceGroups/myResourceGroup
Эта новая группа ресурсов будет использоваться для размещения всех ресурсов, необходимых для создаваемой виртуальной машины. Чтобы создать виртуальную машину Linux, сначала нужно создать необходимые ресурсы и включить их в конфигурацию. Затем эту конфигурацию можно использовать для создания виртуальной машины. Кроме того, вам потребуется открытый ключ SSH id_rsa.pub
в каталоге формата SSH вашего профиля пользователя.
Создание необходимых сетевых ресурсов
Сначала создайте конфигурацию подсети, которая будет использоваться для создания виртуальной сети. Также нужно создать общедоступный IP-адрес, чтобы можно было подключаться к этой виртуальной машине. Создайте группу безопасности сети для защиты доступа к общедоступному адресу. Наконец, создайте виртуальный сетевой адаптер, используя все предыдущие ресурсы.
# Variables for common values
$resourceGroup = 'myResourceGroup'
$location = 'westeurope'
$vmName = 'myLinuxVM'
# Definer user name and blank password
$securePassword = ConvertTo-SecureString 'azurepassword' -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential ('azureuser', $securePassword)
# Create a subnet configuration
$subnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name mySubnet2 -AddressPrefix 192.168.2.0/24
# Create a virtual network
$vnet = New-AzureRmVirtualNetwork -ResourceGroupName $resourceGroup -Location $location `
-Name MYvNET2 -AddressPrefix 192.168.0.0/16 -Subnet $subnetConfig
# Create a public IP address and specify a DNS name
$publicIp = New-AzureRmPublicIpAddress -ResourceGroupName $resourceGroup -Location $location `
-Name "mypublicdns$(Get-Random)" -AllocationMethod Static -IdleTimeoutInMinutes 4
$publicIp | Select-Object Name,IpAddress
# Create an inbound network security group rule for port 22
$nsgRuleSSH = New-AzureRmNetworkSecurityRuleConfig -Name myNetworkSecurityGroupRuleSSH -Protocol Tcp `
-Direction Inbound -Priority 1000 -SourceAddressPrefix * -SourcePortRange * -DestinationAddressPrefix * `
-DestinationPortRange 22 -Access Allow
# Create a network security group
$nsg = New-AzureRmNetworkSecurityGroup -ResourceGroupName $resourceGroup -Location $location `
-Name myNetworkSecurityGroup2 -SecurityRules $nsgRuleSSH
# Create a virtual network card and associate with public IP address and NSG
$nic = New-AzureRmNetworkInterface -Name myNic2 -ResourceGroupName $resourceGroup -Location $location `
-SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $publicIp.Id -NetworkSecurityGroupId $nsg.Id
Создание конфигурации виртуальной машины
Теперь, когда у вас есть необходимые ресурсы, можно создать объект конфигурации виртуальной машины.
# Create a virtual machine configuration
$vmConfig = New-AzureRmVMConfig -VMName $vmName -VMSize Standard_D1 |
Set-AzureRmVMOperatingSystem -Linux -ComputerName $vmName -Credential $cred -DisablePasswordAuthentication |
Set-AzureRmVMSourceImage -PublisherName Canonical -Offer UbuntuServer -Skus 14.04.2-LTS -Version latest |
Add-AzureRmVMNetworkInterface -Id $nic.Id
# Configure SSH Keys
$sshPublicKey = Get-Content -Raw "$env:USERPROFILE\.ssh\id_rsa.pub"
Add-AzureRmVMSshPublicKey -VM $vmConfig -KeyData $sshPublicKey -Path '/home/azureuser/.ssh/authorized_keys'
Создание виртуальной машины
Теперь мы можем создать виртуальную машину, используя объект конфигурации.
New-AzureRmVM -ResourceGroupName $resourceGroup -Location $location -VM $vmConfig
Вы можете войти в созданную виртуальную машину Linux, используя SSH и общедоступный IP-адрес этой виртуальной машины:
ssh xx.xxx.xxx.xxx
Welcome to Ubuntu 14.04.4 LTS (GNU/Linux 3.19.0-65-generic x86_64)
* Documentation: https://help.ubuntu.com/
System information as of Sun Feb 19 00:32:28 UTC 2017
System load: 0.31 Memory usage: 3% Processes: 89
Usage of /: 39.6% of 1.94GB Swap usage: 0% Users logged in: 0
Graph this data and manage this system at:
https://landscape.canonical.com/
Get cloud support with Ubuntu Advantage Cloud Guest:
http://www.ubuntu.com/business/services/cloud
0 packages can be updated.
0 updates are security updates.
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
my-login@MyLinuxVM:../../..$
Создание других ресурсов в Azure
Вы узнали, как создавать группы ресурсов, а также виртуальные машины Linux и Windows Server. Но вы также можете создать в Azure много других ресурсов.
Например, чтобы создать подсистему балансировки нагрузки Azure, которую можно затем связать с новой виртуальной машиной, выполните следующую команду:
New-AzureRmLoadBalancer -Name MyLoadBalancer -ResourceGroupName myResourceGroup -Location westeurope
Также для своей инфраструктуры вы можете создать новую частную виртуальную сеть, используя следующую команду:
$subnetConfig = New-AzureRmVirtualNetworkSubnetConfig -Name mySubnet2 -AddressPrefix 10.0.0.0/16
$vnet = New-AzureRmVirtualNetwork -ResourceGroupName myResourceGroup -Location westeurope `
-Name MYvNET3 -AddressPrefix 10.0.0.0/16 -Subnet $subnetConfig
Преимущество Azure и Azure PowerShell заключается в том, что их можно использовать для создания как облачной инфраструктуры, так и управляемых служб платформы. Управляемые службы платформы также можно объединять с инфраструктурой, создавая еще более мощные решения.
Например, используя Azure PowerShell, вы можете создать службу приложений Azure. Служба приложений Azure — это управляемая служба платформы, на которой можно размещать веб-приложения, не беспокоясь об инфраструктуре. Создав службу приложений Azure, вы можете создать два новых веб-приложения Azure с помощью следующих команд:
# Create an Azure AppService that we can host any number of web apps within
New-AzureRmAppServicePlan -Name MyAppServicePlan -Tier Basic -NumberofWorkers 2 -WorkerSize Small -ResourceGroupName myResourceGroup -Location westeurope
# Create Two Web Apps within the AppService (note: name param must be a unique DNS entry)
New-AzureRmWebApp -Name MyWebApp43432 -AppServicePlan MyAppServicePlan -ResourceGroupName myResourceGroup -Location westeurope
New-AzureRmWebApp -Name MyWebApp43433 -AppServicePlan MyAppServicePlan -ResourceGroupName myResourceGroup -Location westeurope
Отображение списка развернутых ресурсов
Чтобы вывести список ресурсов, работающих в Azure, используйте командлет Get-AzureRmResource
. В следующем примере показаны созданные ресурсы в новой группе ресурсов.
Get-AzureRmResource |
Where-Object ResourceGroupName -eq myResourceGroup |
Select-Object Name,Location,ResourceType
Name Location ResourceType
---- -------- ------------
myLinuxVM_OsDisk_1_36ca038791f642ba91270879088c249a westeurope Microsoft.Compute/disks
myWindowsVM_OsDisk_1_f627e6e2bb454c72897d72e9632adf9a westeurope Microsoft.Compute/disks
myLinuxVM westeurope Microsoft.Compute/virtualMachines
myWindowsVM westeurope Microsoft.Compute/virtualMachines
myWindowsVM/BGInfo westeurope Microsoft.Compute/virtualMachines/extensions
myNic1 westeurope Microsoft.Network/networkInterfaces
myNic2 westeurope Microsoft.Network/networkInterfaces
myNetworkSecurityGroup1 westeurope Microsoft.Network/networkSecurityGroups
myNetworkSecurityGroup2 westeurope Microsoft.Network/networkSecurityGroups
mypublicdns245369171 westeurope Microsoft.Network/publicIPAddresses
mypublicdns779537141 westeurope Microsoft.Network/publicIPAddresses
MYvNET1 westeurope Microsoft.Network/virtualNetworks
MYvNET2 westeurope Microsoft.Network/virtualNetworks
micromyresomywi032907510 westeurope Microsoft.Storage/storageAccounts
Удаление ресурсов
Чтобы очистить учетную запись Azure, необходимо удалить ресурсы, созданные в этом примере. Используйте командлеты Remove-AzureRm*
для удаления ресурсов, которые больше не нужны. Чтобы удалить виртуальную машину Windows, выполните следующую команду:
Remove-AzureRmVM -Name myWindowsVM -ResourceGroupName myResourceGroup
Вам будет предложено подтвердить удаление указанного ресурса.
Confirm
Are you sure you want to remove resource group 'myResourceGroup'
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
Также за один раз можно удалить несколько ресурсов. Например, следующая команда удаляет группу ресурсов MyResourceGroup, которую мы использовали во всех предыдущих примерах. Все ресурсы в группе также будут удалены.
Remove-AzureRmResourceGroup -Name myResourceGroup
Confirm
Are you sure you want to remove resource group 'myResourceGroup'
[Y] Yes [N] No [S] Suspend [?] Help (default is "Y"): Y
Задача может занять несколько минут, в зависимости от количества и типа ресурсов.
Получить примеры
Дополнительные сведения о способах использования Azure PowerShell см. в примерах популярных сценариев для виртуальных машин Linux, виртуальных машин Windows, веб-приложений и баз данных SQL.
Следующие шаги
- Sign in with Azure PowerShell (Вход в Azure PowerShell)
- Управление подписками Azure с помощью Azure PowerShell
- Создание субъектов-служб в Azure с помощью Azure PowerShell
- Ознакомьтесь с заметками о выпуске, касающимися миграции с более раннего выпуска.
- Получите помощь от сообщества: