Поделиться через


Краткое руководство. Создание виртуальной сети с помощью 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

Создание виртуальной сети

  1. Используйте 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
    
  2. 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
    
  3. Свяжите конфигурацию подсети с виртуальной сетью с помощью Set-AzVirtualNetwork:

    $virtualNetwork | Set-AzVirtualNetwork
    

Развертывание Бастиона Azure

Бастион Azure использует браузер для подключения к виртуальным машинам в виртуальной сети через Secure Shell (SSH) или протокол удаленного рабочего стола (RDP) с помощью частных IP-адресов. Виртуальные машины не нуждаются в общедоступных IP-адресах, клиентском программном обеспечении или специальной конфигурации. Дополнительные сведения о Бастионе см. в статье "Что такое Бастион Azure?".

Почасовая цена начинается с момента развертывания Бастиона независимо от использования исходящих данных. Дополнительные сведения см. в разделе "Цены и номера SKU". Если вы развертываете Бастион в рамках руководства или теста, рекомендуется удалить этот ресурс после завершения работы с ним.

  1. Настройте подсеть Бастиона для виртуальной сети. Эта подсеть зарезервирована исключительно для ресурсов Бастиона и должна называться AzureBastionSubnet.

    $subnet = @{
        Name = 'AzureBastionSubnet'
        VirtualNetwork = $virtualNetwork
        AddressPrefix = '10.0.1.0/26'
    }
    $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
    
  2. Задайте конфигурацию:

    $virtualNetwork | Set-AzVirtualNetwork
    
  3. Создайте общедоступный 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
    
  4. Используйте команду New-AzBastion для создания нового узла бастиона SKU уровня "Стандартный" в AzureBastionSubnet:

    $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 виртуальной сети. При появлении запроса на ввод учетных данных введите имена пользователей и пароли для виртуальных машин.

  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
    
  2. Чтобы создать вторую виртуальную машину, используйте следующий код:

    # 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) для исходящих подключений.

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

  1. На портале найдите и выберите "Виртуальные машины".

  2. На странице "Виртуальные машины" выберите vm-1.

  3. В разделе "Обзор " для vm-1 выберите "Подключиться".

  4. На странице "Подключение к виртуальной машине" выберите вкладку Бастион.

  5. Выберите Использовать бастион.

  6. Введите имя пользователя и пароль, созданные при создании виртуальной машины, и нажмите кнопку "Подключить".

Запуск обмена данными между виртуальными машинами

  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
    
  2. Закройте подключение Бастиона к vm-1.

  3. Повторите действия, описанные в разделе "Подключение к виртуальной машине ", чтобы подключиться к vm-2.

  4. В командной строке 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
    
  5. Закройте подключение Бастиона к vm-2.

Очистка ресурсов

Завершив работу с виртуальной сетью и виртуальными машинами, используйте Remove-AzResourceGroup , чтобы удалить группу ресурсов и все ее ресурсы:

Remove-AzResourceGroup -Name 'test-rg' -Force

Следующие шаги

В этом кратком руководстве вы создали виртуальную сеть с подсетью по умолчанию, содержащей две виртуальные машины. Вы развернули Бастион Azure и использовали его для подключения к виртуальным машинам и безопасно взаимодействовали между виртуальными машинами. Дополнительные сведения о параметрах виртуальной сети см. в статье Создание, изменение или удаление виртуальной сети.