Comment déployer Nano Server sur une VM ?
Sommaire
I. Présentation
A. Nano Server, c'est quoi ?
Nano Server, c'est l'une des nouveautés qui accompagne Windows Server 2016, et cette version de Windows se veut, comme son nom l'indique, extrêmement légère et peu gourmande en ressource. Pour ceux qui connaissent le mode "Core" de Windows Server, sachez que Nano Server est nettement plus léger, Microsoft ayant seulement laissé l'essentiel.
De part sa légèreté, une VM Nano Server peut-être déployée en 3 minutes environ, ce qui est très rapide comparé au 15-20 minutes habituelle pour installer Windows. Nano Server doit être considéré comme une brique de base sur laquelle on va venir greffer des éléments pour constituer un serveur avec uniquement le nécessaire, pas de superflu.
L'administration de Nano Server s'effectue exclusivement à distance par l'intermédiaire de PowerShell via PowerShell Remoting ou PowerShell Direct, sinon par des outils de gestion de configuration ou encore des consoles.
Au passage, qui dit moins d'éléments, dit surface d'attaque réduite et donc moins de mises à jour de sécurité à installer sur Nano Server.
B. Déploiement de Nano Server
Dans ce tutoriel, nous allons déployer Nano Server sur une machine virtuelle, en premier lieu on va générer un VHDX avec l'image déployée de Nano Server, puis dans un second temps on va créer une VM qui va utiliser ce VHDX. Il y a différentes manières de procéder, et surtout on peut personnaliser le déploiement de Nano Server, mais pour ce premier déploiement on va rester sur quelque chose de basique et simple.
Avant de commencer, assurez-vous d'avoir un ISO de Windows Server 2016.
II. Créer une VM Nano Server
Je manipule directement depuis l'hôte Hyper-V. Commencez par monter l'ISO sur l'hôte en double cliquant sur le fichier ISO pour qu'il soit monté dans un lecteur virtuel. Ensuite, parcourez le contenu et dans le dossier "NanoServer" copiez le sous-dossier "NanoServerImageGenerator" sur le serveur, dans le répertoire que vous voulez.
Dès que ce sera fait, ouvrez une console PowerShell et importez le module , en se positionnant au préalable dans le répertoire "NanoServerImageGenerator" que vous avez copié sur le serveur.
Import-Module .\NanoServerImageGenerator
Si l'on active le mode verbeux sur l'importation du module, voici ce que l'on obtient :
COMMENTAIRES : Chargement du module à partir du chemin « V:\NANO\NanoServerImageGenerator\NanoServerImageGenerator.psd1 ». COMMENTAIRES : Chargement du module à partir du chemin « V:\NANO\NanoServerImageGenerator\NanoServerImageGenerator.psm1 ». COMMENTAIRES : Importation de la fonction « Edit-NanoServerImage ». COMMENTAIRES : Importation de la fonction « Get-NanoServerPackage ». COMMENTAIRES : Importation de la fonction « New-NanoServerImage ».
Ça tombe bien, on va utiliser la commande "New-NanoServerImage".
New-NanoServerImage -Edition Standard -DeploymentType Guest -MediaPath E:\ -TargetPath V:\VM\VHDX\NanoServer-01.vhdx -ComputerName NanoServer-01
Dans l'exemple ci-dessus, je déploie NanoServer en version Standard (l'autre possibilité c'est Datacenter) en m'appuyant sur l'ISO de Windows Server 2016 monté sur le lecteur E:\ (MediaPath), et je veux stocker le VHDX dans "V:\VM\VHDX\NanoServer-01.vhdx" pour un serveur qui se nomme "NanoServer-01" (nom du serveur dans Windows).
Note 1 : DeploymentType - Le type "Guest" permet d'inclure les drivers invités Hyper-V alors que si l'on souhaiterait créer un VHD(X) pour déploiement sur un hôte physique, on aurait indiqué "Host".
Note 2 : Si l'on nomme le disque virtuel "VHD" c'est pour créer une VM de Génération 1, si on le nomme VHDX c'est pour créer une VM de Génération 2.
Quand vous validerez la commande, un mot de passe vous sera demandé. Il s'agit du mot de passe pour le compte Administrateur de la VM Nano Server.
Le déploiement sur le disque virtuel va prendre 2-3 minutes...
A la fin de l'opération on obtient un disque virtuel de 500 Mo environ, pour un serveur installé c'est vraiment light.
Maintenant, il faut créer une VM sur Hyper-V et lui indiquer ce fichier VHDX comme étant le disque virtuel pour la VM. Pour ceux qui souhaitent, on peut le faire en PowerShell :
New-VM -Name NanoServer-01 -SwitchName "LAN" -VHDPath "V:\VM\VHDX\NanoServer-01.vhdx" -Generation 2 -MemoryStartupBytes 512MB -BootDevice VHD
Je crée une VM nommé "NanoServer-01" que je connecte au vSiwtch "LAN" et à laquelle j'affecte 512 Mo de RAM ainsi que le VHDX "V:\VM\VHDX\NanoServer-01.vhdx". Enfin, je précise qu'elle est de génération 2 et que le VHD est prioritaire pour l'ordre de démarrage.
Ensuite, on démarre la VM :
Start-VM NanoServer-01
A partir du gestionnaire Hyper-V, vous pouvez vous connecter à la VM et saisir le compte "Administrateur" et le mot de passe définit lors du déploiement du VHD/VHDX. Attention, le clavier est en QWERTY.
Il n'y a pas d'accès en ligne de commande sur la VM directement, comme je le disais en introduction tout s'effectue à distance. Ce que vous pouvez faire en local c'est configurer une IP ou visualiser les paramètres IP, ou définir des règles de firewall.
On arrive sur la console "Nano Server Recovery Console". Si l'on va dans Networking...
Puis qu'on appuie sur entrée pour valider le choix de la carte réseau...
On arrive sur un écran qui affiche l'IP du serveur obtenue en DHCP mais ceci vous permet aussi de définir une IP statique si besoin en appuyant sur F11.
Ensuite, pour commencer à configurer le serveur il faut se connecter à distance depuis une machine sur la VM Nano Server, par exemple en PowerShell Remoting. Cependant, la politique de sécurité de WinRM par défaut n'autorise pas à se connecter sur un hôte distant "inconnu", il faut donc qu'on ajoute la VM Nano Server dans la liste de nos hôtes de confiance :
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "NanoServer-01,192.168.1.2"
Dans la commande ci-dessus adaptez l'adresse IP et le nom, sachant que vous n'êtes pas obligé de mettre les deux, le nom suffira si vous arrivez à la résoudre (DNS).
Enfin, on va ouvrir session PowerShell distante sur notre hôte Nano Server :
Enter-PSSession -ComputerName 192.168.1.2 -Credential (Get-Credential)
Il faudra saisir les credentials, c'est à dire "Administrateur" avec le mot de passe définit lors de la création du VHD.
Votre machine virtuelle Nano Server est prête à l'emploi ! Nous verrons au travers d'autres tutoriels comment utiliser et configurer Nano Server. Pour ceux que ça intéresse, j'ai publié sur GitHub un script qui permet d'automatiser la création d'une VM NanoServer au sein d'Hyper-V à partir de l'ISO Windows Server 2016 : New-NanoServerVM
Enfin, il est important de préciser que la commande "New-NanoServerImage" et donc le module que l'on a utilisé dans ce tutoriel, peut-être utilisée sur Windows 8.1 et Windows 10, ainsi que sur Windows Server 2012 R2 et bien entendu Windows Server 2016.