Configurer des commutateurs virtuels Hyper-V 3.0 à l'aide de cmdlets PowerShell

La prise en charge améliorée des cmdlets PowerShell dans Hyper-V 3.0 facilite la configuration de plusieurs commutateurs virtuels.

La sortie de Windows Server 2012 et d'Hyper-V 3.0 a rendu la virtualisation des serveurs un peu plus facile et plus intéressante. Plus facile grâce aux cmdlets PowerShell et plus intéressante grâce à de nouvelles fonctions.

Auparavant, la prise en charge de PowerShell était limitée, ce qui compliquait la tâche des informaticiens pour créer et automatiser des configurations d'hôtes et de machines virtuelles (VM). C'est pourquoi de nombreux professionnels se sont détournés de leur outil le plus précieux en matière de virtualisation de serveurs : Server Core, qui est pourtant léger, rapide et hautement sécurisé.  

Avec Hyper-V 3.0 et PowerShell, les administrateurs peuvent aisément automatiser et faire évoluer un environnement de virtualisation, préparer des scripts de reprise sur incident et gérer Server Core. La première étape consiste à configurer le nouveau commutateur extensible Hyper-V pour la mise en réseau. Il est donc important de connaître parfaitement les principaux cmdlets de commutateur, même s'il vous faudra ensuite les personnaliser pour votre environnement.

Avantages de l'utilisation de PowerShell dans Hyper-V 3.0

Il suffit de faire le compte des avantages suivants pour se persuader de l'intérêt que présente la configuration d'un commutateur virtuel unique à l'aide de PowerShell :

  • des cmdlets prenant en charge le commutateur virtuel, tels que le paramètre –ComputerName, qui permet de configurer plusieurs hôtes en même temps ;
  • des cmdlets fonctionnant avec PowerShell à distance, offrant un moyen efficace de configurer plusieurs hôtes ;
  • la possibilité de rédiger de simples commandes d'une ligne pour configurer le commutateur virtuel, puis de les enregistrer dans des fichiers .ps1 afin de créer un script pour l'automatisation et la reprise sur incident.

Outils disponibles

Une fois que vous avez compris ces avantages, il ne vous reste plus qu'à faire connaissance avec les outils nécessaires. Hyper-V 3.0 contient 164 cmdlets, dont 19 servent à configurer le commutateur virtuel. Cela peut sembler beaucoup, mais ne vous inquiétez pas, la plupart ne vous seront utiles que si vous installez des extensions tierces supplémentaires.

Dans l'immédiat, pour créer et configurer un commutateur virtuel, vous n'avez besoin que de six des cmdlets de commutateur et d'un ou deux cmdlets d'adaptateur réseau :

  • Get-Help *VMSwitch* -- Liste les 16 cmdlets pour le commutateur virtuel.
  • Get-Help *VMSwitch  -- Liste les six cmdlets nécessaires (notez l'absence de caractère générique à la fin du cmdlet).

Créer un commutateur virtuel Ethernet

Le commutateur virtuel externe relie l'interface physique à l'environnement virtuel. On a recours à deux cmdlets : New-VMSwitch et Add-VMSwitch. Les deux commandes se ressemblent, mais ont des utilités différentes.

New-VMSwitch crée un nouveau commutateur pour un ou plusieurs hôtes. Voici un exemple de création d'un commutateur Ethernet sur deux hôtes :

New-VMSwitch –Name ‘Hors Ethernet’ –NetAdapterName Ethernet

–ComputerName Hôte1, Hôte2 –Notes ‘Support carte réseau groupée requis’

Le cmdlet Get-NetAdapter permet de répertorier tous les adaptateurs de l'hôte afin de choisir le bon argument pour le paramètre –NetAdapterName. Hyper-V 3.0 active par défaut le commutateur Ethernet pour permettre à l'hôte d'accéder à l'adaptateur. Si vous n'en avez pas besoin pour votre configuration, vous pouvez attribuer la valeur $False à -AllowManagementOS.

Si vous disposez d'un pool de ressources Ethernet dans System Center Virtual Machine Manager (SCVMM), le cmdlet Add-VMSwitch ajoute un commutateur virtuel à ce pool. Vous devez dans ce cas indiquer le nom du pool, comme dans l'exemple suivant :

Add-VMSwitch –ComputerName hôte1 –Name ‘Hors Ethernet’

-ResourcePoolName ‘Pool Ethernet’

Vos projets en matière de commutateurs peuvent se limiter à la configuration d'un commutateur Ethernet, mais de nombreux environnements ont besoin de commutateurs de réseau internes ou privés sur l'hôte.

Créer un autre commutateur virtuel interne ou privé

Le cmdlet New-VMSwitch, combiné avec deux ou trois cmdlets d'adaptateur réseau, simplifie la création de commutateurs internes/privés. L'exemple ci-dessous crée un commutateur interne appelé « Interne serveurs de fichiers » sur Hôte1 et Hôte2.

New-VMSwitch -Name 'Interne serveurs de fichiers' -SwitchType Internal -Notes 'Réseau serveurs de fichiers'

Le paramètre –SwitchType prend la valeur Internal (interne) ou Private (privé), selon vos besoins. Ce paramètre n'est pas disponible si vous utilisez –NetAdapterName, qui ne configure que l'interface externe.

Après avoir créé les adaptateurs internes, vous devez leur attribuer une adresse IP. C'est là que des cmdlets d'adaptateur réseau peuvent s'avérer utiles. La commande suivante affiche le commutateur interne créé plus haut :

Get-NetAdapter -name *interne*

Le cmdlet New-NetIPAddress définit l'adresse IP, le masque de sous-réseau et les informations de passerelle par défaut sur une interface. Dans ce cas, il s'agit de l'interface virtuelle de notre commutateur interne.

Get-NetAdapter -name *interne* | New-NetIPAddress -IPAddress 192.168.3.10

-PrefixLength 24

Si l'hôte est membre du domaine et qu'une VM interne est contrôleur de domaine, il peut être utile d'ajouter une entrée DNS à l'adaptateur interne. Cette entrée désigne un autre serveur DNS auquel l'hôte peut accéder en cas de défaillance de l'un des serveurs principaux. Les paramètres DNS sont définis à l'aide du cmdlet Set-DnsClientServerAddress.

Get-NetAdapter -name *interne* | Set-DnsClientServerAddress -ServerAddresses 192.168.3.15

Et les autres cmdlets de commutation ?

La quatre derniers cmdlets de base servent à extraire, supprimer et modifier un commutateur virtuel. Voici quelques-uns de mes exemples préférés.

Pour obtenir une liste de commutateurs virtuels à partir de plusieurs hôtes, ainsi que toutes les informations sur leurs propriétés, utilisez le cmdlet suivant :

Get-VMSwitch –ComputerName Hôte1, Hôte2 | Format-List –Property *

Pour changer le nom d'un commutateur virtuel en remplaçant « Serveur fichiers interne » par « Serveur impression interne », utilisez ce cmdlet :

Get-VMSwitch –Name ‘Serveur fichiers interne’ | Rename-VMSwitch

–NewName ‘Serveur impression interne’

Le cmdlet Set-VMSwitch fournit plusieurs paramètres permettant de modifier un commutateur existant. La commande suivante empêche le système d'exploitation de gestion d'utiliser le commutateur externe :

Get-VMSwitch –SwitchType External | Set-VMSwitch

–AllowManagementOS $False

Le dernier cmdlet est Remove-VMSwitch, qui supprime un commutateur virtuel. Pour tester un script de configuration de commutateurs, vous devez supprimer tous les commutateurs de l'hôte. C'est ce que fait ce dernier exemple :

Get-VMSwitch | Remove-VMSwitch

Les cmdlets PowerShell pour le commutateur extensible Hyper-V 3.0 facilitent la configuration et l'automatisation d'un ou de plusieurs hôtes. Appliquez ces techniques à vos scripts de reprise sur incident et effectuez votre prochain déploiement hôte-commutateur à l'aide de PowerShell.

Pour approfondir sur Virtualisation de serveurs

Close