Base de connaissances / Knowledge base

Windows Server 2012 core avec Hyper-V 2012 (29.04.13)

Requis

Télécharger Hyper-V 2012 core : http://www.microsoft.com/en-us/server-cloud/hyper-v-server/ et graver sur DVD

Installation

L'installation est "conventionnelle", démarrer sur le DVD d'installation et suivre les étapes à l'écran.
Partitions dans ce cas d'exemple :
  • disk0 part1: ~130 GB
  • disk0 part2: ~800 GB
Une fois l'installation terminée, le serveur redémarre.

Configuration

Après redémarrage du serveur, l'interface de travail de Windows Server 2012 core dévoile son visage
  • Un console d'administration (fond bleu)

NB: Pour afficher la console d'administration ci-dessus en tout temps : taper "sconfig" dans l'invite de commande
  • Une fenêtre "Command prompt" ou "cmd" traditionnelle
Configurer le serveur (le minimum recommandé) :
  1. Ajouter le serveur au DOMAINE ou WORKGROUP (dans cet exemple)
  2. Nommer le serveur (HYPERVSRV)
  3. Ajouter un compte administrateur local (dans le cas d'un WORKGROUP, il est nécessaire de créer un utilisateur/mot de passe identique à celui employé plus tard pour gérer le serveur à distance)
  4. Configurer la gestion à distance du serveur : ENABLED + Réponse au ping
  5. Mise à jour Windows: MANUAL (dans cet exemple)
  6. Télécharger les mises à jour
  7. Activer ou non la connexion à distance au serveur : ENABLED
  8. Network settings : permet de configurer l'adresse réseau (static dans notre exemple) ainsi que les DNS. Notez que pour ajouter les DNS, ceux-ci doivent être joignable lors de la configuration
  9. Régler l'heure et la date
Pour pouvoir utiliser HYPER-V, il faut encore installer la fonction HYPER-V. Taper la commande suivante dans l'invite de commande
  • dism /online /enable-feature /FeatureName:Microsoft-Hyper-V

Configuration pour la gestion à distance d'HYPER-V

L'administration d'HYPER-V en ligne de commande depuis la console du serveur, c'est stimulant pour ceux qui aiment, c'est très très embêtant pour ceux qui apprécient comme moi une interface utilisateur digne de ce nom.

Un conseil : utiliser de préférence une machine avec Windows 8 pour la console de gestion à distance, celle-ci est plus complète et génère moins d'erreur que celle de Windows 7 (a quand une mise à jour...)

Pour windows 7, installer également RSAT (Remote Server Administration Tools) for Windows 7
Pour ajouter la console de gestion à Windows 8 ou Windows 7:
  • Panneau de configuration -> Ajout/Suppression de programmes (ou programmes et fonctionnalités) -> activer ou désactiver des fonctions de windows -> Cocher l'option "Hyper-V" sous outils d'administration de serveur distant (cf. illustration ci-dessous)


Gain de temps

Jusqu'ici, le néophyte s'en sort plutôt bien. C'est à partir de maintenant que cet article prend son sens car pour rendre possible la gestion à distance il faut encore suivre les étapes suivantes :

  1. Se render sur le site suivant : http://archive.msdn.microsoft.com/HVRemote
  2. Sous l’onglet « Downloads », télécharger le script « HVRemote.wsf »
  3. Placer le script côté client et côté serveur
  4. Dans mon cas, j’ai créé un dossier partagé sur mon NAS et tapé la commande suivante des deux côtés : net use S: "\\NASIP \00_HYPERVSHARED" /USER:Accounts\myUser myPassword /PERSISTENT:NO
  5. Suivre scrupuleusement les indications décrites par le développeur de HVRemote en fonction de la situation.
NB : Comme dans cet exemple c'est un WORKGROUP, j’ai dû ajouter un compte admin côté serveur avec le même nom et mot de passe que mon compte côté client.
  1. Dans mon cas, Client et serveur sont dans un WORKGROUP. Lors de la dernière étape "Verify configuration for errors", seul un Warning à propos du parfeu MMC non-ouvert. Il faut autoriser le fichier « %SystemRoot%\System32\mmc.exe » Lancer la commande : Netsh firewall add allowedprogram program=%windir%\system32\mmc.exe name="Microsoft Management Console
Lancer la commande suivante des 2 côtés :
  • netsh advfirewall firewall set rule group="Windows Management Instrumentation (WMI)" new enable=yes

Si plus aucune erreur n'est trouvée, le système est prêt pour une gestion à distance.
Dans la version actuelle du script, il est normal d'avoir le message "Unknown OS"
NB : Ne pas oublier de redémarrer les 2 machines avant de tester !

Lancer le gestionnaire HYPER-V


Panneau de configuration -> Outils d'administration -> Hyper-V Manager
Dans liste à gauche, faire un clique droit sur le 1er élément et sélectionner "se connecter" au serveur
Renseigner l'adresse IP ou le nom du serveur et appuyer sur OK



Configuration et sauvegarde des machines virtuelles Hyper-V

Stockage des machines virtuelles
Dans cet exemple, le disque D: à été créé pour accueillir les machines virtuelles. Il est conseillé de choisir un endroit précis ou de prendre note de l'endroit de stockage des VMs.
Pour cet exemple, en ligne de commande taper :
  • D:
  • mkdir vmconf
  • mkdir vmhdd
  • FYI: Pour lister les disques : wmic logicaldisk get name, size, freespace
  • FYI: Pour partager le disque D sur le réseau : net share shareName=D: /GRANT:myUser,FULL
Modifier les options par défaut pour sauvegarder les disques durs et fichiers de configuration aux bons endroits
A l'aide de la console de gestion HYPER-V, éditer les préférences et indiquer les chemins aux dossiers précédemment créés comme lieu de stockage pour les configurations et disques durs des VMs

Pour sauvegarder les machines virtuelles, il suffit de copier le contenu de ces dossiers. Les machines sont ré-importables via la console de gestion en cas de déplacement ou de récupération.
Elles peuvent replacées dans le même dossier et réimportées tel quel.

NB: Cette méthode à été testée avec les VMs éteintes. A venir : un script qui permet la sauvegarde "on the fly"

Trucs et astuces en ligne de commande

Script powershell pour lister les machines virtuelles, leurs état ainsi que leurs nom (série de chiffres et lettres utilisée pour nommer les fichiers de configurations des machines)

Placer sous D:\Scripts (par exemple), le fichier suivant préalablement enregistré comme fihcier PowerShell ".ps1"
  • # On filtre pour ne pas récupérer la VM parent
  • $VMs = get-wmiobject -namespace root\virtualization Msvm_ComputerSystem -filter  "Description <> `"Microsoft Hosting Computer System`""
  • # $VMs | Format-Table @{label="VM Name"; expression={$_.ElementName}}, @{label="FileName"; expression={$_.Name}}, @{label="State"; expression={switch ($_.EnabledState) {2 {"Running"} 3 {"Stopped"} 32768 {"Paused"} 32769 {"Suspended"} 32770 {"Starting"} 32771 {"Snapshotting"} 32773 {"Saving"} 32774 {"Stopping"}}}} -auto
Output



Problèmes / solutions rencontrés

En cas de perte du lecteur CD/DVD
reg.exe add "HKLM\System\CurrentControlSet\Services\atapi\Controller0" /f /v EnumDevice1 /t REG_DWORD /d 0×00000001