Partilhar via


Criar uma VM (Clássica) com várias NICs usando a CLI clássica do Azure

Você pode criar máquinas virtuais (VMs) no Azure e anexar várias interfaces de rede (NICs) 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 de WAN.

Importante

O Azure tem dois modelos de implantação diferentes para criar e trabalhar com recursos: o Resource Manager e o clássico. Este artigo cobre a utilização do modelo de implementação clássica. A Microsoft recomenda que a maioria das novas implantações 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 apresenta 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 de 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 e 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 desse 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 de banco de dados.

Pré-requisitos

Antes de criar os servidores de banco de dados, você precisa criar o IaaSStory grupo de recursos 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 a CLI do Azure

Para executar as etapas neste artigo, instalar a CLI do Azure e entrar no Azure.

Observação

Se você não tiver uma conta do Azure, precisará de uma. Inscreva-se numa avaliação gratuita aqui. Além disso, para acompanhar você precisa ter jq ou alguma outra ferramenta ou biblioteca de análise JSON instalada.

Implantar as VMs de back-end

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

  • Conta de armazenamento para discos de dados. Para um melhor desempenho, os discos de dados nos servidores de banco de dados usarão a tecnologia de unidade de estado sólido (SSD), que requer uma conta de armazenamento premium. Certifique-se de que a localização do Azure para onde vai implementar permite o armazenamento premium.
  • NICs. Cada VM terá duas NICs, uma para acesso ao banco de dados e outra para gerenciamento.
  • 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 ativa e em execução durante a manutenção.

Etapa 1 - Inicie o script

Você pode baixar o script bash completo usado aqui. Conclua as seguintes etapas 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="useast2"
     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"
     image="0b11de9248dd4d87b18621318e037d37__RightImage-Ubuntu-14.04-x64-v14.2.1"
     avSetName="ASDB"
     vmSize="Standard_DS3"
     diskSize=127
     vmNamePrefix="DB"
     osDiskName="osdiskdb"
     dataDiskPrefix="db"
     dataDiskName="datadisk"
     ipAddressPrefix="192.168.2."
     username='adminuser'
     password='adminP@ssw0rd'
     numberOfVMs=2
    

Etapa 2 - Criar os recursos necessários para suas VMs

  1. Crie um novo serviço de nuvem para todas as VMs de back-end. Observe o uso da variável $backendCSName para o nome do grupo de recursos e $location para a região do Azure.

     azure service create --serviceName $backendCSName \
     	--location $location
    
  2. Crie uma conta de armazenamento premium para o SO e discos de dados para serem utilizados pelas suas VMs.

     azure storage account create $prmStorageAccountName \
     	--location $location \
     	--type PLRS
    

Etapa 3 - Criar VMs com várias NICs

  1. Inicie um loop para criar várias VMs, com base nas variáveis numberOfVMs.

     for ((suffixNumber=1;suffixNumber<=numberOfVMs;suffixNumber++));
     do
    
  2. Para cada VM, especifique o nome e o endereço IP de cada uma das duas NICs.

     nic1Name=$vmNamePrefix$suffixNumber-DA
     x=$((suffixNumber+3))
     ipAddress1=$ipAddressPrefix$x
    
     nic2Name=$vmNamePrefix$suffixNumber-RA
     x=$((suffixNumber+53))
     ipAddress2=$ipAddressPrefix$x
    
  3. Crie a máquina virtual. Observe o uso do parâmetro --nic-config, contendo uma lista de todas as NICs com nome, sub-rede e endereço IP.

     azure vm create $backendCSName $image $username $password \
     	--connect $backendCSName \
     	--vm-name $vmNamePrefix$suffixNumber \
     	--vm-size $vmSize \
     	--availability-set $avSetName \
     	--blob-url $prmStorageAccountName.blob.core.windows.net/vhds/$osDiskName$suffixNumber.vhd \
     	--virtual-network-name $vnetName \
     	--subnet-names $backendSubnetName \
     	--nic-config $nic1Name:$backendSubnetName:$ipAddress1::,$nic2Name:$backendSubnetName:$ipAddress2::
    
  4. Para cada VM, crie dois discos de dados.

     azure vm disk attach-new $vmNamePrefix$suffixNumber \
     	$diskSize \
     	vhds/$dataDiskPrefix$suffixNumber$dataDiskName-1.vhd
    
     azure vm disk attach-new $vmNamePrefix$suffixNumber \
     	$diskSize \
     	vhds/$dataDiskPrefix$suffixNumber$dataDiskName-2.vhd
     done
    

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 banco de dados back-end com várias NICs.

  1. Salve seu script e execute-o a partir do seu terminal Bash. Você verá a saída inicial, como mostrado abaixo.

     info:    Executing command service create
     info:    Creating cloud service
     data:    Cloud service name IaaSStory-Backend
     info:    service create command OK
     info:    Executing command storage account create
     info:    Creating storage account
     info:    storage account create command OK
     info:    Executing command vm create
     info:    Looking up image 0b11de9248dd4d87b18621318e037d37__RightImage-Ubuntu-14.04-x64-v14.2.1
     info:    Looking up virtual network
     info:    Looking up cloud service
     info:    Getting cloud service properties
     info:    Looking up deployment
     info:    Creating VM
    
  2. Após alguns minutos, a execução terminará e você verá o resto da saída, conforme mostrado abaixo.

     info:    OK
     info:    vm create command OK
     info:    Executing command vm disk attach-new
     info:    Getting virtual machines
     info:    Adding Data-Disk
     info:    vm disk attach-new command OK
     info:    Executing command vm disk attach-new
     info:    Getting virtual machines
     info:    Adding Data-Disk
     info:    vm disk attach-new command OK
     info:    Executing command vm create
     info:    Looking up image 0b11de9248dd4d87b18621318e037d37__RightImage-Ubuntu-14.04-x64-v14.2.1
     info:    Looking up virtual network
     info:    Looking up cloud service
     info:    Getting cloud service properties
     info:    Looking up deployment
     info:    Creating VM
     info:    OK
     info:    vm create command OK
     info:    Executing command vm disk attach-new
     info:    Getting virtual machines
     info:    Adding Data-Disk
     info:    vm disk attach-new command OK
     info:    Executing command vm disk attach-new
     info:    Getting virtual machines
     info:    Adding Data-Disk
     info:    vm disk attach-new command OK
    

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) conectada à 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 roteamento para interfaces de rede secundárias, consulte Roteamento em um sistema operacional de máquina virtual com várias interfaces de rede.