Partager via


Créer une machine virtuelle (classique) avec plusieurs cartes réseau à l’aide de PowerShell

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 différentes cartes réseau. Par exemple, une carte réseau peut être en communication 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 dispose de deux modèles de déploiement différents pour la création et l’utilisation de 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 le module Azure PowerShell

Pour effectuer les étapes décrites dans cet article, vous devez installer et configurer le module Azure PowerShell. Veillez à suivre toutes les instructions. Une fois l’installation terminée, connectez-vous à Azure, puis sélectionnez votre abonnement.

Remarque

Pour effectuez ces étapes, vous avez besoin d’un compte Azure. Si vous n’avez pas de compte Azure, vous pouvez vous inscrire à un essai gratuit .

Créer les machines virtuelles principales

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

  • Sous-réseau principal. Les serveurs de base de données font partie d’un sous-réseau distinct pour séparer le trafic. Le script ci-dessous s’attend à ce que ce sous-réseau existe dans un réseau virtuel nommé WTestVnet.
  • 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.
  • Set 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 PowerShell complet utilisé ici. Suivez les étapes ci-dessous 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              = "West US"
     $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"
     $avSetName             = "ASDB"
     $vmSize                = "Standard_DS3"
     $diskSize              = 127
     $vmNamePrefix          = "DB"
     $dataDiskSuffix        = "datadisk"
     $ipAddressPrefix       = "192.168.2."
     $numberOfVMs           = 2
    

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

Vous devez créer un service cloud et un compte de stockage pour les disques de données de toutes les machines virtuelles. Vous devez également spécifier une image et un compte d’administrateur local pour les machines virtuelles. Pour créer ces ressources, procédez comme suit :

  1. Créez un service cloud.

     New-AzureService -ServiceName $backendCSName -Location $location
    
  2. Créez un compte de stockage Premium.

     New-AzureStorageAccount -StorageAccountName $prmStorageAccountName `
     -Location $location -Type Premium_LRS
    
  3. Définissez le compte de stockage créé ci-dessus en tant que compte de stockage actuel pour votre abonnement.

     $subscription = Get-AzureSubscription | where {$_.IsCurrent -eq $true}  
     Set-AzureSubscription -SubscriptionName $subscription.SubscriptionName `
     -CurrentStorageAccountName $prmStorageAccountName
    
  4. Sélectionnez une image pour la machine virtuelle.

     $image = Get-AzureVMImage `
     | where{$_.ImageFamily -eq "SQL Server 2014 RTM Web on Windows Server 2012 R2"} `
     | sort PublishedDate -Descending `
     | select -ExpandProperty ImageName -First 1
    
  5. Définissez les informations d’identification du compte d’administrateur local.

     $cred = Get-Credential -Message "Enter username and password for local admin account"
    

Étape 3 - Créer des machines virtuelles

Vous devez utiliser une boucle pour créer autant de machines virtuelles que vous le souhaitez et créer les cartes réseau et les machines virtuelles nécessaires dans la boucle. Pour créer les cartes réseau et les machines virtuelles, exécutez les étapes suivantes.

  1. Démarrez une for boucle pour répéter les commandes pour créer une machine virtuelle et deux cartes réseau autant de fois que nécessaire, en fonction de la valeur de la $numberOfVMs variable.

     for ($suffixNumber = 1; $suffixNumber -le $numberOfVMs; $suffixNumber++){
    
  2. Créez un VMConfig objet spécifiant l’image, la taille et l’ensemble de disponibilité pour la machine virtuelle.

     $vmName = $vmNamePrefix + $suffixNumber
     $vmConfig = New-AzureVMConfig -Name $vmName `
     	-ImageName $image `
     	-InstanceSize $vmSize `
     	-AvailabilitySetName $avSetName
    
  3. Provisionnez la machine virtuelle en tant que VM Windows.

     Add-AzureProvisioningConfig -VM $vmConfig -Windows `
     	-AdminUsername $cred.UserName `
     	-Password $cred.GetNetworkCredential().Password
    
  4. Définissez la carte réseau par défaut et affectez-la à une adresse IP statique.

     Set-AzureSubnet			-SubnetNames $backendSubnetName -VM $vmConfig
     Set-AzureStaticVNetIP 	-IPAddress ($ipAddressPrefix+$suffixNumber+3) -VM $vmConfig
    
  5. Ajoutez une deuxième carte réseau pour chaque machine virtuelle.

     Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) `
     -SubnetName $backendSubnetName `
     -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) `
     -VM $vmConfig
    
  6. Créez des disques de données pour chaque machine virtuelle.

     $dataDisk1Name = $vmName + "-" + $dataDiskSuffix + "-1"    
     Add-AzureDataDisk -CreateNew -VM $vmConfig `
     -DiskSizeInGB $diskSize `
     -DiskLabel $dataDisk1Name `
     -LUN 0
    
     $dataDisk2Name = $vmName + "-" + $dataDiskSuffix + "-2"   
     Add-AzureDataDisk -CreateNew -VM $vmConfig `
     -DiskSizeInGB $diskSize `
     -DiskLabel $dataDisk2Name `
     -LUN 1
    
  7. Créez chaque machine virtuelle et terminez la boucle.

     New-AzureVM -VM $vmConfig `
     -ServiceName $backendCSName `
     -Location $location `
     -VNetName $vnetName
     }
    

É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 l’invite de commandes PowerShell ou de PowerShell ISE. Vous verrez la sortie initiale, comme indiqué ci-dessous.

     OperationDescription    OperationId                          OperationStatus
    
     New-AzureService        xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
     New-AzureStorageAccount xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
    
     WARNING: No deployment found in service: 'IaaSStory-Backend'.
    
  2. Renseignez les informations nécessaires à l’invite d’informations d’identification, puis cliquez sur OK. La sortie suivante est affichée.

     New-AzureVM             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
     New-AzureVM             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
    

É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 pour les interfaces réseau secondaires, consultez les articles suivants :