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) para cada uma de suas VMs. Várias NICs permitem a separação dos tipos de tráfego entre NICs. Por exemplo, uma NIC pode se comunicar com a Internet, enquanto outra se comunica apenas com recursos internos que não estão conectados à Internet. A capacidade de separar o tráfego de rede entre as várias NICs é necessária para vários dispositivos de rede virtual, como a 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: 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 Resource Manager.
Cenário
Este documento orientará durante uma implantação que usa várias NICs em máquinas virtuais em um cenário específico. Nesse cenário, você tem uma carga de trabalho de IaaS em duas camadas hospedadas no Azure. Cada camada é implantada na sua própria sub-rede em uma rede virtual (VNet). A camada de front-end é composta de vários servidores da Web, agrupados em um balanceador de carga definida para alta disponibilidade. A camada de back-end é composta de vários servidores de banco de dados. Esses servidores de banco de dados serão implantados com duas NICs cada, uma para acesso de banco de dados, outra para gerenciamento. O cenário também inclui grupos de segurança de rede (NSGs) para controlar o que o tráfego seja permitido para cada sub-rede e NIC na implantação. A figura a seguir mostra a arquitetura básica desse cenário:
As etapas a seguir usam um grupo de recursos chamado IaaSStory para os servidores Web e o grupo de recursos e 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 este 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, instale a CLI do Azure e entre no Azure.
Observação
Se você não tiver uma conta do Azure, crie uma. Inscreva-se para uma avaliação gratuita aqui. Além disso, para acompanhar, você precisa ter a jq ou alguma outra ferramenta de análise JSON ou biblioteca instalada.
Implantar VMs de back-end
As VMs de back-end dependem da criação dos seguintes recursos:
- Conta de armazenamento para discos de dados. Para obter um melhor desempenho, os discos de dados dos servidores de banco de dados usam a tecnologia SDD (unidade de estado sólido), que requer uma conta de Armazenamento Premium. Verifique se o local do Azure no qual você vai implantar é compatível com o Armazenamento Premium.
- NICs. Cada VM tem duas NICs, uma para acesso ao banco de dados e outra para gerenciamento.
- Conjunto de disponibilidade. Todos os servidores de banco de dados são adicionados a um conjunto de disponibilidade único, para garantir que pelo menos uma das VMs está ativa e em execução durante a manutenção.
Etapa 1 – Iniciar o script
Você pode baixar o script bash completo usado aqui. Realize as seguintes etapas para alterar o script para funcionar em seu ambiente:
Altere os valores das variáveis a seguir com base no grupo de recursos existente implantado acima, no tópico Pré-requisitos.
location="useast2" vnetName="WTestVNet" backendSubnetName="BackEnd"
Altere os valores das variáveis a seguir de acordo com os valores que deseja usar na implantação do 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 recursos necessários para as VMs
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
Crie uma conta de armazenamento Premium para o sistema operacional e discos de dados a ser usada por suas VMs.
azure storage account create $prmStorageAccountName \ --location $location \ --type PLRS
Etapa 3 - Criar VMs com várias NICs
Inicie um loop para criar várias VMs, com base em variáveis
numberOfVMs
.for ((suffixNumber=1;suffixNumber<=numberOfVMs;suffixNumber++)); do
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
Crie a VM. Observe o uso do parâmetro
--nic-config
, que contém 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::
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 de acordo com suas necessidades, execute o script para criar VMs do banco de dados de back-end com várias NICs.
Salve seu script e execute-o em seu terminal Bash . A saída inicial será exibida, conforme 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
Depois de alguns minutos, a execução será encerrada e você verá o restante 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 protocolo DHCP do Azure atribui um gateway padrão ao primeiro adaptador de rede (primário) anexado à 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, não é possível se comunicar com os recursos fora da sub-rede na qual um adaptador de rede secundária se encontra. No entanto, os adaptador de rede secundários podem se comunicar com os recursos fora da sua sub-rede. Para configurar o roteamento de adaptadores de rede secundários, consulte Roteamento em um sistema operacional de máquina virtual com vários adaptadores de rede.