Compartilhar via


Criar uma VM (Clássica) com várias NICs usando o PowerShell

Você pode criar máquinas virtuais (VMs) no Azure e anexar várias NICs (interfaces de rede) a cada uma de suas VMs. Várias NICs permitem a separação de tipos de tráfego entre NICs. Por exemplo, uma NIC pode se comunicar com a Internet, enquanto outra se comunica apenas com recursos internos não conectados à Internet. A capacidade de separar o tráfego de rede em várias NICs é necessária para muitos dispositivos virtuais de rede, como entrega de aplicativos e soluções de otimização wan.

Importante

O Azure tem dois modelos de implantação diferentes para criar e trabalhar com recursos: Resource Manager e clássico. Este artigo aborda o uso do modelo de implantação clássica. A Microsoft recomenda que a maioria das implantações novas use o modelo do Gerenciador de Recursos. Saiba como executar essas etapas usando o modelo de implantação do Resource Manager.

Cenário

Este documento percorre uma implantação que usa várias NICs em VMs em um cenário específico. Nesse cenário, você tem uma carga de trabalho IaaS em duas camadas hospedada no Azure. Cada camada é implantada em sua própria sub-rede em uma rede virtual (VNet). A camada front-end é composta por vários servidores Web, agrupados em um conjunto de balanceadores de carga para alta disponibilidade. A camada de back-end é composta por vários servidores de banco de dados. Os servidores de banco de dados são implantados com duas NICs cada, uma para acesso ao banco de dados, a outra para gerenciamento. O cenário também inclui NSGs (Grupos de Segurança de Rede) para controlar qual tráfego é permitido para cada sub-rede e NIC na implantação. A imagem a seguir mostra a arquitetura básica deste cenário:

Cenário MultiNIC

As etapas a seguir usam um grupo de recursos chamado IaaSStory para os servidores WEB e um grupo de recursos chamado IaaSStory-BackEnd para os servidores DB.

Pré-requisitos

Antes de criar os servidores DB, você precisa criar o grupo de recursos IaaSStory com todos os recursos necessários para esse cenário. Para criar esses recursos, conclua as etapas a seguir. Crie uma rede virtual seguindo as etapas no artigo Criar uma rede virtual .

Pré-requisito: instalar o módulo do Azure PowerShell

Para seguir as etapas deste artigo, será necessário instalar e configurar o módulo do Azure PowerShell. Certifique-se de concluir todas as instruções. Depois que a instalação for concluída, entre no Azure e selecione sua assinatura.

Observação

É necessária uma conta do Azure para concluir essas etapas. Se você não tiver uma conta do Azure, poderá se inscrever para uma avaliação gratuita .

Criar as VMs do servidor de dados

As VMs de back-end dependem da criação dos seguintes recursos:

  • Sub-rede de back-end. Os servidores de banco de dados farão parte de uma sub-rede separada para separar o tráfego. O script a seguir espera que essa sub-rede exista em uma vnet chamada WTestVnet.
  • Conta de armazenamento para discos de dados. Para melhorar o desempenho, os discos de dados nos servidores de banco de dados usarão a tecnologia SSD (unidade de estado sólido), que requer uma conta de armazenamento premium. Verifique se o local do Azure em que você realiza a implantação oferece suporte ao armazenamento premium.
  • Conjunto de disponibilidade. Todos os servidores de banco de dados serão adicionados a um único conjunto de disponibilidade, para garantir que pelo menos uma das VMs esteja em execução durante a manutenção.

Etapa 1 – Iniciar o script

Você pode baixar o script completo do PowerShell usado aqui. Siga as etapas abaixo para alterar o script para funcionar em seu ambiente.

  1. Altere os valores das variáveis abaixo com base no grupo de recursos existente implantado acima em Pré-requisitos.

     $location              = "West US"
     $vnetName              = "WTestVNet"
     $backendSubnetName     = "BackEnd"
    
  2. Altere os valores das variáveis abaixo com base nos valores que você deseja usar para sua implantação de back-end.

     $backendCSName         = "IaaSStory-Backend"
     $prmStorageAccountName = "iaasstoryprmstorage"
     $avSetName             = "ASDB"
     $vmSize                = "Standard_DS3"
     $diskSize              = 127
     $vmNamePrefix          = "DB"
     $dataDiskSuffix        = "datadisk"
     $ipAddressPrefix       = "192.168.2."
     $numberOfVMs           = 2
    

Etapa 2 – Criar recursos necessários para suas VMs

Você precisa criar um novo serviço de nuvem e uma conta de armazenamento para os discos de dados para todas as VMs. Você também precisa especificar uma imagem e uma conta de administrador local para as VMs. Para criar esses recursos, conclua as seguintes etapas:

  1. Crie um novo serviço de nuvem.

     New-AzureService -ServiceName $backendCSName -Location $location
    
  2. Crie uma nova conta de armazenamento premium.

     New-AzureStorageAccount -StorageAccountName $prmStorageAccountName `
     -Location $location -Type Premium_LRS
    
  3. Defina a conta de armazenamento criada acima como a conta de armazenamento atual para sua assinatura.

     $subscription = Get-AzureSubscription | where {$_.IsCurrent -eq $true}  
     Set-AzureSubscription -SubscriptionName $subscription.SubscriptionName `
     -CurrentStorageAccountName $prmStorageAccountName
    
  4. Selecione uma imagem para a VM.

     $image = Get-AzureVMImage `
     | where{$_.ImageFamily -eq "SQL Server 2014 RTM Web on Windows Server 2012 R2"} `
     | sort PublishedDate -Descending `
     | select -ExpandProperty ImageName -First 1
    
  5. Defina as credenciais da conta de administrador local.

     $cred = Get-Credential -Message "Enter username and password for local admin account"
    

Etapa 3 – Criar VMs

Você precisa usar um loop para criar quantas VMs desejar e criar as NICs e VMs necessárias dentro do loop. Para criar as NICs e as VMs, execute as etapas a seguir.

  1. Inicie um for loop para repetir os comandos para criar uma VM e duas NICs quantas vezes forem necessárias, com base no valor da $numberOfVMs variável.

     for ($suffixNumber = 1; $suffixNumber -le $numberOfVMs; $suffixNumber++){
    
  2. Crie um VMConfig objeto especificando a imagem, o tamanho e o conjunto de disponibilidade para a VM.

     $vmName = $vmNamePrefix + $suffixNumber
     $vmConfig = New-AzureVMConfig -Name $vmName `
     	-ImageName $image `
     	-InstanceSize $vmSize `
     	-AvailabilitySetName $avSetName
    
  3. Provisione a máquina virtual como uma máquina virtual do Windows.

     Add-AzureProvisioningConfig -VM $vmConfig -Windows `
     	-AdminUsername $cred.UserName `
     	-Password $cred.GetNetworkCredential().Password
    
  4. Defina a NIC padrão e atribua um endereço IP estático.

     Set-AzureSubnet			-SubnetNames $backendSubnetName -VM $vmConfig
     Set-AzureStaticVNetIP 	-IPAddress ($ipAddressPrefix+$suffixNumber+3) -VM $vmConfig
    
  5. Adicione uma segunda NIC para cada VM.

     Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) `
     -SubnetName $backendSubnetName `
     -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) `
     -VM $vmConfig
    
  6. Crie discos de dados para cada VM.

     $dataDisk1Name = $vmName + "-" + $dataDiskSuffix + "-1"    
     Add-AzureDataDisk -CreateNew -VM $vmConfig `
     -DiskSizeInGB $diskSize `
     -DiskLabel $dataDisk1Name `
     -LUN 0
    
     $dataDisk2Name = $vmName + "-" + $dataDiskSuffix + "-2"   
     Add-AzureDataDisk -CreateNew -VM $vmConfig `
     -DiskSizeInGB $diskSize `
     -DiskLabel $dataDisk2Name `
     -LUN 1
    
  7. Crie cada VM e encerre o loop.

     New-AzureVM -VM $vmConfig `
     -ServiceName $backendCSName `
     -Location $location `
     -VNetName $vnetName
     }
    

Etapa 4 – Executar o script

Agora que você baixou e alterou o script com base em suas necessidades, execute o script para criar as VMs de back-end de banco de dados com várias NICs.

  1. Salve o script e execute-o no prompt de comando do PowerShell ou no ISE do PowerShell. Você verá a saída inicial, conforme mostrado abaixo.

     OperationDescription    OperationId                          OperationStatus
    
     New-AzureService        xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
     New-AzureStorageAccount xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
    
     WARNING: No deployment found in service: 'IaaSStory-Backend'.
    
  2. Preencha as informações necessárias no prompt de credenciais e clique em OK. A saída a seguir é retornada.

     New-AzureVM             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
     New-AzureVM             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
    

Etapa 5 – Configurar o roteamento dentro do sistema operacional da VM

O DHCP do Azure atribui um gateway padrão à primeira interface de rede (primária) anexada à máquina virtual. O Azure não atribui um gateway padrão aos adaptadores de rede adicionais (secundários) anexados à máquina virtual. Portanto, por padrão, você não consegue se comunicar com recursos fora da sub-rede em que uma interface de rede secundária está localizada. No entanto, os adaptadores de rede secundários podem comunicar-se com recursos fora de sua sub-rede. Para configurar o roteamento para interfaces de rede secundárias, consulte os seguintes artigos: