Общие команды PowerShell для виртуальных сетей Azure

Область применения: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows

Если вы хотите создать виртуальную машину, необходимо создать виртуальную сеть или иметь данные существующей виртуальной сети, в которую можно добавить виртуальную машину. Обычно при создании виртуальной машины требуется также рассмотреть возможность создания ресурсов, приведенных в этой статье.

Сведения об установке последней версии Azure PowerShell, а также о выборе нужной подписки и входе в учетную запись Azure см. в статье Как установить и настроить службы Azure PowerShell.

При выполнении нескольких команд, описываемых в этой статье, могут пригодиться некоторые переменные.

  • $location — расположение сетевых ресурсов. Вы можете использовать командлет Get-AzLocation, чтобы найти используемый географический регион.
  • $myResourceGroup — имя группы ресурсов, в которой находятся сетевые ресурсы.

Создание сетевых ресурсов

Задача Get-Help
Создание конфигураций подсети $subnet1 = New-AzVirtualNetworkSubnetConfig -Name "mySubnet1" -AddressPrefix XX.X.X.X/XX
$subnet2 = New-AzVirtualNetworkSubnetConfig -Name "mySubnet2" -AddressPrefix XX.X.X.X/XX

В обычной сети может быть подсеть для балансировщика нагрузки с выходом в Интернет и отдельная подсеть для внутреннего балансировщика нагрузки.
Создание виртуальной сети $vnet = New-AzureRmVirtualNetwork -Name "myVNet" -ResourceGroupName $myResourceGroup -Location $location -AddressPrefix XX.X.X.X/XX -Subnet $subnet1, $subnet2
Проверка доменного имени на уникальность Test-AzDnsAvailability -DomainNameLabel "myDNS" -Location $location

Вы можете указать DNS-имя домена для ресурса с общедоступным IP-адресом. В результате этого будут сопоставлены адрес доменное_имя.расположение.cloudapp.azure.com и общедоступный IP-адрес на DNS-серверах под управлением Azure. Имя может содержать только буквы, цифры и дефисы. Первым и последним знаком должна быть буква или цифра, а доменное имя должно быть уникальным в пределах его расположения Azure. Если возвращается значение True, то предложенное имя является глобально уникальным.
Создание общедоступного IP-адреса $pip = New-AzPublicIpAddress -Name "myPublicIp" -ResourceGroupName $myResourceGroup -DomainNameLabel "myDNS" -Location $location -AllocationMethod Dynamic

В общедоступном IP-адресе используется доменное имя, которое вы ранее проверили и которое используется интерфейсной конфигурацией балансировщика нагрузки.
Создание интерфейсной IP-конфигурации $frontendIP = New-AzLoadBalancerFrontendIpConfig -Name "myFrontendIP" -PublicIpAddress $pip

Конфигурация внешнего интерфейса содержит общедоступный IP-адрес, созданный ранее для входящего сетевого трафика.
Создание внутреннего пула адресов $beAddressPool = New-AzLoadBalancerBackendAddressPoolConfig -Name "myBackendAddressPool"

Предоставляет внутренние адреса для серверной части балансировщика нагрузки, доступной через сетевой интерфейс.
Создание пробы $healthProbe = New-AzLoadBalancerProbeConfig -Name "myProbe" -RequestPath 'HealthProbe.aspx' -Protocol http -Port 80 -IntervalInSeconds 15 -ProbeCount 2

Содержит пробы работоспособности, используемые для проверки доступности экземпляров виртуальных машин в пуле внутренних адресов.
Создание правила балансировки нагрузки $lbRule = New-AzLoadBalancerRuleConfig -Name HTTP -FrontendIpConfiguration $frontendIP -BackendAddressPool $beAddressPool -Probe $healthProbe -Protocol Tcp -FrontendPort 80 -BackendPort 80

Содержит правила, которые назначают общедоступный порт в балансировщике нагрузки порту во внутреннем пуле адресов.
Создание правила NAT для входящего трафика $inboundNATRule = New-AzLoadBalancerInboundNatRuleConfig -Name "myInboundRule1" -FrontendIpConfiguration $frontendIP -Protocol TCP -FrontendPort 3441 -BackendPort 3389

Содержит правила сопоставления общедоступного порта в балансировщике нагрузки с портом конкретной виртуальной машины в пуле внутренних адресов.
Создание балансировщика нагрузки $loadBalancer = New-AzLoadBalancer -ResourceGroupName $myResourceGroup -Name "myLoadBalancer" -Location $location -FrontendIpConfiguration $frontendIP -InboundNatRule $inboundNATRule -LoadBalancingRule $lbRule -BackendAddressPool $beAddressPool -Probe $healthProbe
Создание сетевого интерфейса $nic1= New-AzNetworkInterface -ResourceGroupName $myResourceGroup -Name "myNIC" -Location $location -PrivateIpAddress XX.X.X.X -Subnet $subnet2 -LoadBalancerBackendAddressPool $loadBalancer.BackendAddressPools[0] -LoadBalancerInboundNatRule $loadBalancer.InboundNatRules[0]

Создает сетевой интерфейс с использованием общедоступного IP-адреса и подсети виртуальной сети, созданной ранее.

Получение сведений о сетевых ресурсах

Задача Get-Help
Получение списка виртуальных сетей Get-AzVirtualNetwork -ResourceGroupName $myResourceGroup

Выводит список всех виртуальных сетей в группе ресурсов.
Получение сведений о виртуальной сети Get-AzVirtualNetwork -Name "myVNet" -ResourceGroupName $myResourceGroup
Получение списка подсетей в виртуальной сети Get-AzVirtualNetwork -Name "myVNet" -ResourceGroupName $myResourceGroup | Выбор подсетей
Получение сведений о подсети Get-AzVirtualNetworkSubnetConfig -Name "mySubnet1" -VirtualNetwork $vnet

Возвращает сведения о подсети в указанной виртуальной сети. Значение $vnet представляет собой объект, возвращаемый командлетом Get-AzVirtualNetwork.
Получение списка IP-адресов Get-AzPublicIpAddress -ResourceGroupName $myResourceGroup

Выводит список общедоступных IP-адресов в группе ресурсов.
Получение списка балансировщиков нагрузки Get-AzLoadBalancer -ResourceGroupName $myResourceGroup

Выводит список всех балансировщиков нагрузки в группе ресурсов.
Получение списка сетевых интерфейсов Get-AzNetworkInterface -ResourceGroupName $myResourceGroup

Выводит список всех виртуальных интерфейсов в группе ресурсов.
Получение сведений о виртуальном интерфейсе Get-AzNetworkInterface -Name "myNIC" -ResourceGroupName $myResourceGroup

Получение сведений об определенном сетевом интерфейсе.
Получение IP-конфигурации сетевого интерфейса Get-AzNetworkInterfaceIPConfig -Name "myNICIP" -NetworkInterface $nic

Возвращает сведения об IP-конфигурации указанного сетевого интерфейса. Значение $nic представляет собой объект, возвращаемый командлетом Get-AzNetworkInterface.

Управление сетевыми ресурсами

Задача Get-Help
Добавление подсети в виртуальную сеть Add-AzVirtualNetworkSubnetConfig -AddressPrefix XX.X.X.X/XX -Name "mySubnet1" -VirtualNetwork $vnet

Добавляет подсеть в существующую виртуальную сеть. Значение $vnet представляет собой объект, возвращаемый командлетом Get-AzVirtualNetwork.
Удаление виртуальной сети Remove-AzVirtualNetwork -Name "myVNet" -ResourceGroupName $myResourceGroup

Удаляет указанную виртуальную сеть из группы ресурсов.
Удаление сетевого интерфейса Remove-AzNetworkInterface -Name "myNIC" -ResourceGroupName $myResourceGroup

Удаляет указанный сетевой интерфейс из группы ресурсов.
Удаление балансировщика нагрузки Remove-AzLoadBalancer -Name "myLoadBalancer" -ResourceGroupName $myResourceGroup

Удаляет указанный балансировщик нагрузки из группы ресурсов.
Удаление общедоступного IP-адреса Remove-AzPublicIpAddress-Name "myIPAddress" -ResourceGroupName $myResourceGroup

Удаляет указанный общедоступный IP-адрес из группы ресурсов.

Next Steps

Использование созданного сетевого интерфейса при создании виртуальной машины.