Compartir a través de


Creación de una máquina virtual (clásica) con varias NIC mediante la CLI clásica de Azure

Puede crear máquinas virtuales (VM) en Azure y asociar varias interfaces de red (NIC) a cada una de ellas. Varias NIC permiten la separación de tipos de tráfico a través de las NIC. Por ejemplo, una NIC podría comunicarse con Internet, mientras que la otra solo se comunica con los recursos internos no conectados a Internet. La capacidad de separar el tráfico de red a través de varias NIC es necesaria para muchos dispositivos virtuales de red, como la entrega de aplicaciones y soluciones para la optimización de WAN.

Importante

Azure tiene dos modelos de implementación diferentes para crear recursos y trabajar con ellos: Resource Manager y el clásico. Este artículo trata del modelo de implementación clásico. Microsoft recomienda que las implementaciones más recientes usen el modelo de Resource Manager. Aprenda a realizar estos pasos mediante el modelo de implementación de Resource Manager.

Escenario

Este documento le guiará a través de una implementación que usa varias NIC en máquinas virtuales en un escenario concreto. En este escenario, tiene una carga de trabajo de IaaS de dos niveles hospedada en Azure. Cada nivel se implementa en su propia subred de una red virtual (VNet). El nivel de front-end se compone de varios servidores web, agrupados en un equilibrador de carga de alta disponibilidad. El nivel de back-end se compone de varios servidores de bases de datos. Estos servidores de bases de datos se implementarán con dos NIC cada uno: una para el acceso a la base de datos y la otra para la administración. El escenario también incluye los grupos de seguridad de red (NSGs) para controlar qué tráfico se permite en cada subred y la NIC de la implementación. La siguiente ilustración muestra la arquitectura básica de este escenario:

Escenario de MultiNIC

En los pasos siguientes se usa un grupo de recursos denominado IaaSStory para los servidores web y un grupo de recursos denominado IaaSStory-BackEnd para los servidores de base de datos.

Requisitos previos

Antes de crear los servidores de base de datos, necesita crear el grupo de recursos IaaSStory con todos los recursos necesarios para este escenario. Para crear estos recursos, complete los pasos siguientes. Cree una red virtual siguiendo los pasos del artículo Create a virtual network (Crear una red virtual).

Requisito previo: Instalación de la CLI de Azure

Para realizar los pasos de este artículo, instale la CLI de Azure e inicie sesión en Azure.

Nota

Si no tiene una cuenta de Azure, necesitará una. Regístrese para obtener una prueba gratuita aquí. Además, para seguir el tutorial necesita disponer de jq o de alguna otra herramienta de análisis o biblioteca de JSON instaladas.

Implementación de las máquinas virtuales de back-end

Las máquinas virtuales back-end dependen de la creación de los siguientes recursos:

  • Cuenta de almacenamiento en discos de datos. Para mejorar el rendimiento, los discos de datos en los servidores de base de datos usarán la tecnología de unidad de estado sólido (SSD), que requiere una cuenta de almacenamiento Premium. Asegúrese de que la ubicación de Azure que implementa admita el almacenamiento Premium.
  • NIC. Cada VM tendrá dos NIC, una para el acceso de la base de datos y otra para la administración.
  • Conjunto de disponibilidad. Todos los servidores de base de datos se agregarán al conjunto de disponibilidad único para asegurarse de que al menos una de las máquinas virtuales está activa y ejecutándose durante el mantenimiento.

Paso 1: inicio del script

Puede descargar el script de Bash completo que haya usado aquí. Complete los pasos siguientes para cambiar el script de forma que funcione en su entorno:

  1. Cambie los valores de las variables siguientes en función de su grupo de recursos existente implementado anteriormente en Requisitos previos.

     location="useast2"
     vnetName="WTestVNet"
     backendSubnetName="BackEnd"
    
  2. Cambie los valores de las variables siguientes según los valores que desee usar para la implementación 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
    

Paso 2: creación de los recursos necesarios para las máquinas virtuales

  1. Cree un nuevo servicio en la nube para todas las máquinas virtuales de back-end. Observe el uso de la variable $backendCSName para el nombre del grupo de recursos, y $location para la región de Azure.

     azure service create --serviceName $backendCSName \
     	--location $location
    
  2. Cree una cuenta de almacenamiento Premium para los discos de datos y sistemas operativos que usarán sus máquinas virtuales.

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

Paso 3: crear máquinas virtuales con varias NIC

  1. Inicie un bucle para crear varias máquinas virtuales, según las variables numberOfVMs .

     for ((suffixNumber=1;suffixNumber<=numberOfVMs;suffixNumber++));
     do
    
  2. Para cada máquina virtual, especifique el nombre y la dirección IP de cada una de las dos NIC.

     nic1Name=$vmNamePrefix$suffixNumber-DA
     x=$((suffixNumber+3))
     ipAddress1=$ipAddressPrefix$x
    
     nic2Name=$vmNamePrefix$suffixNumber-RA
     x=$((suffixNumber+53))
     ipAddress2=$ipAddressPrefix$x
    
  3. Cree la máquina virtual. Tenga en cuenta que deberá usar el parámetro --nic-config , el cual contiene una lista de todas las NIC con nombre, subred y dirección 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. Cree dos discos de datos por cada máquina virtual.

     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
    

Paso 4: ejecución del script

Ahora que descargó y cambió el script según sus necesidades, ejecute el script para crear las máquinas virtuales de la base de datos back-end con varias NIC.

  1. Guarde el script y ejecútelo desde su terminal de Bash . Verá el resultado inicial, tal como se muestra a continuación.

     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. Después de unos minutos, la ejecución finalizará y verá el resto del resultado como se muestra a continuación.

     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
    

Paso 5: configuración del enrutamiento en el sistema operativo de la máquina virtual

Azure DHCP asigna una puerta de enlace predeterminada a la primera interfaz de red (principal) conectada a la máquina virtual. Azure no asigna una puerta de enlace predeterminada a las interfaces de red adicionales (secundarias) conectadas a una máquina virtual. Por lo tanto, de manera predeterminada, no es posible comunicarse con recursos externos a la subred en la que se encuentra una interfaz de red secundaria. Sin embargo, las interfaces de red secundarias pueden comunicarse con recursos que están fuera de su subred. Para configurar el enrutamiento para las interfaces de red secundarias, consulte Routing within a virtual machine operating system with multiple network interfaces (Enrutamiento dentro de un sistema operativo de la máquina virtual con varias interfaces de red).