Partilhar via


Criar um VM (Clássico) com vários NICs usando o CLI clássico do Azure

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 Azure CLI

Para executar os passos deste artigo, instale o CLI Azure e inscreva-se no Azure.

Nota

Se não tem uma conta Azure, precisa de uma. Inscreva-se para um julgamento gratuito aqui. Além disso, para acompanhar, precisa de ter uma ferramenta de análise jq ou outra JSON ou biblioteca instalada.

Implementar os VMs de back-end

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

  • 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.
  • NICs. Cada VM terá dois NICs, um para acesso à base de dados e outro para gestão.
  • 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

Você pode baixar o roteiro completo da festa usado aqui. Complete os seguintes passos 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="useast2"
     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"
     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
    

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

  1. Crie um novo serviço de nuvem para todos os VMs backend. Note a utilização da $backendCSName variável para o nome do grupo de recursos e $location para a região de Azure.

     azure service create --serviceName $backendCSName \
     	--location $location
    
  2. Crie uma conta de armazenamento premium para que o SO e os discos de dados sejam utilizados pelos seus VMs.

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

Passo 3 - Criar VMs com vários NICs

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

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

     nic1Name=$vmNamePrefix$suffixNumber-DA
     x=$((suffixNumber+3))
     ipAddress1=$ipAddressPrefix$x
    
     nic2Name=$vmNamePrefix$suffixNumber-RA
     x=$((suffixNumber+53))
     ipAddress2=$ipAddressPrefix$x
    
  3. Criar o VM. Note a utilização do --nic-config parâmetro, contendo uma lista de todos os 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
    

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 fundo com vários NICs.

  1. Guarde o seu guião e execute-o a partir do seu terminal Bash . 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 verá o resto da saída como 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
    

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 o Encaminhamento dentro de um sistema operativo de máquina virtual com múltiplas interfaces de rede.