Краткое руководство. Создание виртуальной сети с помощью Azure PowerShell
В этом кратком руководстве показано, как создать виртуальную сеть с помощью Azure PowerShell. Затем вы создадите две виртуальные машины в сети, безопасно подключитесь к виртуальным машинам из Интернета и запустите частный обмен данными между виртуальными машинами.
Виртуальная сеть — это базовый стандартный блок для частных сетей в Azure. Azure виртуальная сеть позволяет ресурсам Azure, таким как виртуальные машины, безопасно взаимодействовать друг с другом и Интернетом.
Необходимые компоненты
Учетная запись Azure с активной подпиской. Вы можете создать учетную запись бесплатно.
Azure Cloud Shell или Azure PowerShell.
Действия, описанные в этом кратком руководстве, запускают командлеты Azure PowerShell в интерактивном режиме в Azure Cloud Shell. Чтобы выполнить команды в Cloud Shell, выберите Open Cloudshell в правом верхнем углу блока кода. Выберите "Копировать ", чтобы скопировать код, а затем вставьте его в Cloud Shell, чтобы запустить его. Вы также можете запустить Cloud Shell из портал Azure.
Вы также можете установить Azure PowerShell локально для выполнения командлетов. Для действий, описанных в этой статье, требуется модуль Azure PowerShell версии 5.4.1 или более поздней. Выполните
Get-Module -ListAvailable Az
, чтобы узнать установленную версию. Если вам нужно обновить модуль Azure PowerShell, см . статью об обновлении модуля Azure PowerShell.Если вы запускаете PowerShell локально, выполните команду
Connect-AzAccount
для подключения к Azure.
Создание или изменение группы ресурсов
Используйте New-AzResourceGroup , чтобы создать группу ресурсов для размещения виртуальной сети. Выполните следующий код, чтобы создать группу ресурсов с именем test-rg в регионе Azure eastus2 :
$rg = @{
Name = 'test-rg'
Location = 'eastus2'
}
New-AzResourceGroup @rg
Создание виртуальной сети
Используйте New-AzVirtualNetwork , чтобы создать виртуальную сеть с именем vnet-1 с префиксом IP-адреса 10.0.0.0.0/16 в группе ресурсов test-rg и расположении eastus2 :
$vnet = @{ Name = 'vnet-1' ResourceGroupName = 'test-rg' Location = 'eastus2' AddressPrefix = '10.0.0.0/16' } $virtualNetwork = New-AzVirtualNetwork @vnet
Azure развертывает ресурсы в подсети в виртуальной сети. Используйте Add-AzVirtualNetworkSubnetConfig, чтобы создать конфигурацию подсети с именем subnet-1 с префиксом адреса 10.0.0.0/24:
$subnet = @{ Name = 'subnet-1' VirtualNetwork = $virtualNetwork AddressPrefix = '10.0.0.0/24' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Свяжите конфигурацию подсети с виртуальной сетью с помощью Set-AzVirtualNetwork:
$virtualNetwork | Set-AzVirtualNetwork
Развертывание Бастиона Azure
Бастион Azure использует браузер для подключения к виртуальным машинам в виртуальной сети через Secure Shell (SSH) или протокол удаленного рабочего стола (RDP) с помощью частных IP-адресов. Виртуальные машины не нуждаются в общедоступных IP-адресах, клиентском программном обеспечении или специальной конфигурации. Дополнительные сведения о Бастионе см. в статье "Что такое Бастион Azure?".
Почасовая цена начинается с момента развертывания Бастиона независимо от использования исходящих данных. Дополнительные сведения см. в разделе "Цены и номера SKU". Если вы развертываете Бастион в рамках руководства или теста, рекомендуется удалить этот ресурс после завершения работы с ним.
Настройте подсеть Бастиона для виртуальной сети. Эта подсеть зарезервирована исключительно для ресурсов Бастиона и должна называться AzureBastionSubnet.
$subnet = @{ Name = 'AzureBastionSubnet' VirtualNetwork = $virtualNetwork AddressPrefix = '10.0.1.0/26' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
Задайте конфигурацию:
$virtualNetwork | Set-AzVirtualNetwork
Создайте общедоступный IP-адрес бастиона. Узел Бастиона использует общедоступный IP-адрес для доступа к SSH и RDP через порт 443.
$ip = @{ ResourceGroupName = 'test-rg' Name = 'public-ip' Location = 'eastus2' AllocationMethod = 'Static' Sku = 'Standard' Zone = 1,2,3 } New-AzPublicIpAddress @ip
-
$bastion = @{ Name = 'bastion' ResourceGroupName = 'test-rg' PublicIpAddressRgName = 'test-rg' PublicIpAddressName = 'public-ip' VirtualNetworkRgName = 'test-rg' VirtualNetworkName = 'vnet-1' Sku = 'Basic' } New-AzBastion @bastion
Развертывание ресурсов Бастиона занимает около 10 минут. Виртуальные машины можно создать в следующем разделе, пока бастион развертывается в виртуальной сети.
Создание виртуальных машин
Используйте New-AzVM для создания двух виртуальных машин с именем vm-1 и vm-2 в подсети подсети 1 виртуальной сети. При появлении запроса на ввод учетных данных введите имена пользователей и пароли для виртуальных машин.
Чтобы создать первую виртуальную машину, используйте следующий код:
# Set the administrator and password for the VM. ## $cred = Get-Credential ## Place the virtual network into a variable. ## $vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg' ## Create a network interface for the VM. ## $nic = @{ Name = "nic-1" ResourceGroupName = 'test-rg' Location = 'eastus2' Subnet = $vnet.Subnets[0] } $nicVM = New-AzNetworkInterface @nic ## Create a virtual machine configuration. ## $vmsz = @{ VMName = "vm-1" VMSize = 'Standard_DS1_v2' } $vmos = @{ ComputerName = "vm-1" Credential = $cred } $vmimage = @{ PublisherName = 'Canonical' Offer = '0001-com-ubuntu-server-jammy' Skus = '22_04-lts-gen2' Version = 'latest' } $vmConfig = New-AzVMConfig @vmsz ` | Set-AzVMOperatingSystem @vmos -Linux ` | Set-AzVMSourceImage @vmimage ` | Add-AzVMNetworkInterface -Id $nicVM.Id ## Create the VM. ## $vm = @{ ResourceGroupName = 'test-rg' Location = 'eastus2' VM = $vmConfig } New-AzVM @vm
Чтобы создать вторую виртуальную машину, используйте следующий код:
# Set the administrator and password for the VM. ## $cred = Get-Credential ## Place the virtual network into a variable. ## $vnet = Get-AzVirtualNetwork -Name 'vnet-1' -ResourceGroupName 'test-rg' ## Create a network interface for the VM. ## $nic = @{ Name = "nic-2" ResourceGroupName = 'test-rg' Location = 'eastus2' Subnet = $vnet.Subnets[0] } $nicVM = New-AzNetworkInterface @nic ## Create a virtual machine configuration. ## $vmsz = @{ VMName = "vm-2" VMSize = 'Standard_DS1_v2' } $vmos = @{ ComputerName = "vm-2" Credential = $cred } $vmimage = @{ PublisherName = 'Canonical' Offer = '0001-com-ubuntu-server-jammy' Skus = '22_04-lts-gen2' Version = 'latest' } $vmConfig = New-AzVMConfig @vmsz ` | Set-AzVMOperatingSystem @vmos -Linux ` | Set-AzVMSourceImage @vmimage ` | Add-AzVMNetworkInterface -Id $nicVM.Id ## Create the VM. ## $vm = @{ ResourceGroupName = 'test-rg' Location = 'eastus2' VM = $vmConfig } New-AzVM @vm
Совет
Вы можете использовать -AsJob
этот параметр, чтобы создать виртуальную машину в фоновом режиме при продолжении других задач. Например, выполните команду New-AzVM @vm1 -AsJob
. При запуске Azure создания виртуальной машины в фоновом режиме вы получите примерно следующее:
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Long Running... AzureLongRun... Running True localhost New-AzVM
Azure занимает несколько минут, чтобы создать виртуальные машины. Когда Azure завершит создание виртуальных машин, он возвращает выходные данные в PowerShell.
Примечание.
Виртуальные машины в виртуальной сети с узлом Бастиона не требуют общедоступных IP-адресов. Бастион предоставляет общедоступный IP-адрес, а виртуальные машины используют частные IP-адреса для обмена данными в сети. Вы можете удалить общедоступные IP-адреса из любых виртуальных машин в размещенных в бастионах виртуальных сетей. Дополнительные сведения см. в разделе "Отсообщение общедоступного IP-адреса" с виртуальной машины Azure.
Примечание.
Azure предоставляет IP-адрес исходящего доступа по умолчанию для виртуальных машин, которые либо не назначены общедоступным IP-адресом, либо находятся в серверном пуле внутренней подсистемы балансировки нагрузки Azure. Механизм IP-адреса исходящего трафика по умолчанию предоставляет исходящий IP-адрес, который нельзя настроить.
IP-адрес исходящего доступа по умолчанию отключен при возникновении одного из следующих событий:
- Общедоступный IP-адрес назначается виртуальной машине.
- Виртуальная машина размещается в серверном пуле стандартной подсистемы балансировки нагрузки с правилами исходящего трафика или без нее.
- Ресурс шлюза NAT Azure назначается подсети виртуальной машины.
Виртуальные машины, созданные с помощью масштабируемых наборов виртуальных машин в гибком режиме оркестрации, не имеют исходящего доступа по умолчанию.
Дополнительные сведения об исходящих подключениях в Azure см. в статье об исходящем доступе по умолчанию в Azure и использовании преобразования исходящих сетевых адресов (SNAT) для исходящих подключений.
Подключение к виртуальной машине
На портале найдите и выберите "Виртуальные машины".
На странице "Виртуальные машины" выберите vm-1.
В разделе "Обзор " для vm-1 выберите "Подключиться".
На странице "Подключение к виртуальной машине" выберите вкладку Бастион.
Выберите Использовать бастион.
Введите имя пользователя и пароль, созданные при создании виртуальной машины, и нажмите кнопку "Подключить".
Запуск обмена данными между виртуальными машинами
В командной строке bash для vm-1 введите
ping -c 4 vm-2
.Вы получите ответ, аналогичный следующему сообщению:
azureuser@vm-1:~$ ping -c 4 vm-2 PING vm-2.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.5) 56(84) bytes of data. 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=1 ttl=64 time=1.83 ms 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=2 ttl=64 time=0.987 ms 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=3 ttl=64 time=0.864 ms 64 bytes from vm-2.internal.cloudapp.net (10.0.0.5): icmp_seq=4 ttl=64 time=0.890 ms
Закройте подключение Бастиона к vm-1.
Повторите действия, описанные в разделе "Подключение к виртуальной машине ", чтобы подключиться к vm-2.
В командной строке bash для vm-2 введите
ping -c 4 vm-1
.Вы получите ответ, аналогичный следующему сообщению:
azureuser@vm-2:~$ ping -c 4 vm-1 PING vm-1.3bnkevn3313ujpr5l1kqop4n4d.cx.internal.cloudapp.net (10.0.0.4) 56(84) bytes of data. 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=1 ttl=64 time=0.695 ms 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=2 ttl=64 time=0.896 ms 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=3 ttl=64 time=3.43 ms 64 bytes from vm-1.internal.cloudapp.net (10.0.0.4): icmp_seq=4 ttl=64 time=0.780 ms
Закройте подключение Бастиона к vm-2.
Очистка ресурсов
Завершив работу с виртуальной сетью и виртуальными машинами, используйте Remove-AzResourceGroup , чтобы удалить группу ресурсов и все ее ресурсы:
Remove-AzResourceGroup -Name 'test-rg' -Force
Следующие шаги
В этом кратком руководстве вы создали виртуальную сеть с подсетью по умолчанию, содержащей две виртуальные машины. Вы развернули Бастион Azure и использовали его для подключения к виртуальным машинам и безопасно взаимодействовали между виртуальными машинами. Дополнительные сведения о параметрах виртуальной сети см. в статье Создание, изменение или удаление виртуальной сети.