Partager via


Créer une machine virtuelle (classique) avec plusieurs cartes réseau à l’aide d’Azure Classic CLI

Vous pouvez créer des machines virtuelles dans Azure et attacher plusieurs interfaces réseau à chacune de vos machines virtuelles. Plusieurs cartes réseau permettent la séparation des types de trafic entre les cartes réseau. Par exemple, une carte réseau peut communiquer avec Internet, tandis qu’une autre communique uniquement avec les ressources internes non connectées à Internet. La possibilité de séparer le trafic réseau entre plusieurs cartes réseau est requise pour de nombreuses appliances virtuelles réseau, telles que la distribution d’applications et les solutions d’optimisation WAN.

Important

Azure a deux modèles de déploiement différents pour créer et utiliser des ressources : Resource Manager et classique. Cet article traite du modèle de déploiement classique. Pour la plupart des nouveaux déploiements, Microsoft recommande d’utiliser le modèle Resource Manager. Découvrez comment effectuer ces étapes à l’aide du modèle de déploiement Resource Manager.

Scénario

Ce document décrit un déploiement qui utilise plusieurs cartes réseau dans des machines virtuelles dans un scénario spécifique. Dans ce scénario, vous disposez d’une charge de travail IaaS à deux niveaux hébergée dans Azure. Chaque niveau est déployé dans son propre sous-réseau dans un réseau virtuel (VNet). Le niveau frontal se compose de plusieurs serveurs web, regroupés dans un ensemble d'équilibreurs de charge pour assurer une haute disponibilité. Le niveau back-end est composé de plusieurs serveurs de base de données. Les serveurs de base de données sont déployés avec deux cartes réseau chacune, une pour l’accès à la base de données, l’autre pour la gestion. Le scénario inclut également des groupes de sécurité réseau (NSG) pour contrôler le trafic autorisé à chaque sous-réseau et carte réseau dans le déploiement. L’image suivante montre l’architecture de base de ce scénario :

Scénario MultiNIC

Les étapes suivantes utilisent un groupe de ressources nommé IaaSStory pour les serveurs WEB et un groupe de ressources nommé IaaSStory-BackEnd pour les serveurs de base de données.

Conditions préalables

Avant de pouvoir créer les serveurs de base de données, vous devez créer le groupe de ressources IaaSStory avec toutes les ressources nécessaires pour ce scénario. Pour créer ces ressources, procédez comme suit. Créez un réseau virtuel en suivant les étapes décrites dans l’article Créer un réseau virtuel .

Prérequis : installer Azure CLI

Pour effectuer les étapes décrites dans cet article, installez Azure CLI et connectez-vous à Azure.

Remarque

Si vous n’avez pas de compte Azure, vous en avez besoin. Inscrivez-vous à un essai gratuit ici. En outre, pour suivre le suivi, vous devez disposer de jq ou d’un autre outil d’analyse JSON ou d’une bibliothèque installé.

Déployer les machines virtuelles principales

Les machines virtuelles principales dépendent de la création des ressources suivantes :

  • Compte de stockage pour les disques de données. Pour de meilleures performances, les disques de données sur les serveurs de base de données utilisent la technologie SSD (Solid State Drive), ce qui nécessite un compte de stockage Premium. Assurez-vous que l’emplacement Azure où vous déployez prend en charge le stockage Premium.
  • Cartes réseau. Chaque machine virtuelle aura deux cartes réseau, une pour l’accès à la base de données et une pour la gestion.
  • Ensemble de disponibilité Tous les serveurs de base de données seront ajoutés à un seul groupe à haute disponibilité pour vous assurer qu’au moins une des machines virtuelles est opérationnelle pendant la maintenance.

Étape 1 : démarrer votre script

Vous pouvez télécharger le script bash complet utilisé ici. Effectuez les étapes suivantes pour modifier le script pour qu’il fonctionne dans votre environnement :

  1. Modifiez les valeurs des variables ci-dessous en fonction de votre groupe de ressources existant déployé ci-dessus dans Prérequis.

     location="useast2"
     vnetName="WTestVNet"
     backendSubnetName="BackEnd"
    
  2. Modifiez les valeurs des variables ci-dessous en fonction des valeurs que vous souhaitez utiliser pour votre déploiement principal.

     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
    

Étape 2 : Créer les ressources nécessaires pour vos machines virtuelles

  1. Créez un service cloud pour toutes les machines virtuelles principales. Notez l’utilisation de la $backendCSName variable pour le nom du groupe de ressources et $location pour la région Azure.

     azure service create --serviceName $backendCSName \
     	--location $location
    
  2. Créez un compte de stockage Premium pour le système d’exploitation et les disques de données à utiliser par vos machines virtuelles.

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

Étape 3 : Créer des machines virtuelles avec plusieurs cartes réseau

  1. Démarrez une boucle pour créer plusieurs machines virtuelles, en fonction des numberOfVMs variables.

     for ((suffixNumber=1;suffixNumber<=numberOfVMs;suffixNumber++));
     do
    
  2. Pour chaque machine virtuelle, spécifiez le nom et l’adresse IP de chacune des deux cartes réseau.

     nic1Name=$vmNamePrefix$suffixNumber-DA
     x=$((suffixNumber+3))
     ipAddress1=$ipAddressPrefix$x
    
     nic2Name=$vmNamePrefix$suffixNumber-RA
     x=$((suffixNumber+53))
     ipAddress2=$ipAddressPrefix$x
    
  3. Créez la machine virtuelle. Notez l’usage du paramètre --nic-config, qui contient une liste de toutes les cartes réseau avec le nom, le sous-réseau, et l’adresse 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. Pour chaque machine virtuelle, créez deux disques de données.

     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
    

Étape 4 - Exécuter le script

Maintenant que vous avez téléchargé et modifié le script en fonction de vos besoins, exécutez le script pour créer les machines virtuelles de base de données principale avec plusieurs cartes réseau.

  1. Enregistrez votre script et exécutez-le à partir de votre terminal Bash . Vous verrez la sortie initiale, comme indiqué ci-dessous.

     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. Après quelques minutes, l’exécution se termine et vous verrez le reste de la sortie, comme indiqué ci-dessous.

     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
    

Étape 5 : configurer le routage dans le système d’exploitation de la machine virtuelle

Azure DHCP affecte une passerelle par défaut à la première interface réseau (primaire) attachée à la machine virtuelle. Azure n’affecte pas de passerelle par défaut aux interfaces réseau additionnelles (secondaires) associées à la machine virtuelle. Par conséquent, vous ne pouvez pas communiquer avec les ressources hors du sous-réseau dans lequel se trouve, par défaut, une interface réseau secondaire. Toutefois, les interfaces réseau secondaires peuvent communiquer avec des ressources hors de leur sous-réseau. Pour configurer le routage des interfaces réseau secondaires, consultez Routage au sein d’un système d’exploitation de machine virtuelle avec plusieurs interfaces réseau.