Share via


Criar um VM (Clássico) com vários NICs usando PowerShell

Pode criar máquinas virtuais (VMs) em Azure e anexar várias interfaces de rede (NICs) a cada um dos seus VMs. Vários NICs permitem a separação de tipos de tráfego através dos NICs. Por exemplo, um NIC pode comunicar com a Internet, enquanto outro comunica apenas com recursos internos não ligados à Internet. A capacidade de separar o tráfego de rede em vários NICs é necessária para muitos aparelhos virtuais de rede, tais como a entrega de aplicações e soluções de otimização WAN.

Importante

O Azure tem dois modelos de implementação para criar e trabalhar com recursos: Resource Manager e Clássico. Este artigo cobre a utilização do modelo de implementação clássica. A Microsoft recomenda que as implementações mais novas utilizem o modelo Resource Manager. Aprenda a executar estes passos utilizando o modelo de implementação Resource Manager.

Scenario

Este documento percorre uma implementação que utiliza vários NICs em VMs num cenário específico. Neste cenário, tem uma carga de carga IaaS de dois níveis hospedada em Azure. Cada camada é implantada na sua própria sub-rede numa rede virtual (VNet). O nível frontal é composto por vários servidores web, agrupados num equilibrador de carga definido para uma elevada disponibilidade. O nível de back-end é composto por vários servidores de base de dados. Os servidores de base de dados são implantados com dois NICs cada, um para acesso à base de dados, o outro para gestão. O cenário também inclui grupos de segurança de rede (NSGs) para controlar o tráfego permitido a cada sub-rede, e NIC na implementação. A seguinte imagem mostra a arquitetura básica deste cenário:

Cenário multinic

Os passos seguintes utilizam 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 poder criar os servidores DB, precisa de criar o grupo de recursos IaaSStory com todos os recursos necessários para este cenário. Para criar estes recursos, complete os passos que se seguem. Crie uma rede virtual seguindo os passos no artigo de rede virtual Criar .

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

Para efetuar os passos neste artigo, terá de instalar e configurar o módulo Azure PowerShell. Certifique-se de que conclui todas as instruções. Após a conclusão da instalação, inicie sessão no Azure e selecione a sua subscrição.

Nota

Precisa de uma conta do Azure para efetuar estes passos. Se não tiver uma conta do Azure, pode inscrever-se para obter uma avaliação gratuita.

Criar os VMs de back-end

Os VM de back-end dependem da criação dos seguintes recursos:

  • Sub-rede de backend. Os servidores da base de dados farão parte de uma sub-rede separada, para segregar o tráfego. O script abaixo espera que esta sub-rede exista numa vnet chamada WTestVnet.
  • Conta de armazenamento de discos de dados. Para um melhor desempenho, os discos de dados nos servidores da base de dados utilizarão a tecnologia solid state drive (SSD), que requer uma conta de armazenamento premium. Certifique-se de que a localização Azure que implementa para suportar o armazenamento premium.
  • Conjunto de disponibilidade. Todos os servidores de base de dados serão adicionados a um único conjunto de disponibilidade, para garantir que pelo menos um dos VMs está em funcionamento durante a manutenção.

Passo 1 - Inicie o seu script

Pode baixar o script completo do PowerShell utilizado aqui. Siga os passos abaixo para alterar o script para trabalhar no seu ambiente.

  1. Altere os valores das variáveis abaixo com base no seu 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 pretende utilizar para a sua implementação de backend.

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

Passo 2 - Criar recursos necessários para os seus VMs

É necessário criar um novo serviço de nuvem e uma conta de armazenamento para os discos de dados para todos os VMs. Também precisa de especificar uma imagem e uma conta de administrador local para os VMs. Para criar estes recursos, complete os seguintes passos:

  1. Crie um novo serviço de nuvem.

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

     New-AzureStorageAccount -StorageAccountName $prmStorageAccountName `
     -Location $location -Type Premium_LRS
    
  3. Desaça a conta de armazenamento acima criada como a conta de armazenamento corrente para a sua subscrição.

     $subscription = Get-AzureSubscription | where {$_.IsCurrent -eq $true}  
     Set-AzureSubscription -SubscriptionName $subscription.SubscriptionName `
     -CurrentStorageAccountName $prmStorageAccountName
    
  4. Selecione uma imagem para o 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. Desa cos assim o coloque nas credenciais de conta do administrador local.

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

Passo 3 - Criar VMs

Você precisa usar um loop para criar quantos VMs você quiser, e criar os NICs e VMs necessários dentro do loop. Para criar os NICs e VMs, execute os seguintes passos.

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

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

     $vmName = $vmNamePrefix + $suffixNumber
     $vmConfig = New-AzureVMConfig -Name $vmName `
     	-ImageName $image `
     	-InstanceSize $vmSize `
     	-AvailabilitySetName $avSetName
    
  3. Provisionar o VM como um VM do Windows.

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

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

     Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) `
     -SubnetName $backendSubnetName `
     -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) `
     -VM $vmConfig
    
  6. Criar para 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 termine o ciclo.

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

Passo 4 - Executar o roteiro

Agora que descarregou e alterou o script com base nas suas necessidades, execute o script para criar os VMs de base de dados de back-end com vários NICs.

  1. Guarde o seu script e execute-o a partir da solicitação de comando PowerShell ou PowerShell ISE. Verá a saída inicial, como 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 na solicitação de credenciais e clique em OK. A seguinte saída é devolvida.

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

Passo 5 - Encaminhamento de configuração dentro do sistema operativo do VM

O Azure DHCP atribui um portal predefinido à primeira interface de rede (primária) ligada à máquina virtual. O Azure não atribui um gateway predefinido a interfaces de rede (secundárias) adicionais ligadas a uma máquina virtual. Por conseguinte, não pode comunicar com recursos que estejam fora da sub-rede em que se encontre uma interface de rede secundária, por predefinição. Contudo, as interfaces de rede secundárias podem comunicar com recursos fora das respetivas sub-redes. Para configurar o encaminhamento para interfaces de rede secundárias, consulte os seguintes artigos: