Dans ce post nous allons démarrer par créer un VHD minimal de Nano Server. Dans un prochain post, nous verrons la personnalisation des images et la mise en container de Nano Server avec le déploiement d’une application ASP.NET 5.
Nano Server ?
Nano Server est une version de Windows Server ultra minimaliste, plus sécurisée et optimisée pour le déploiement Cloud / Datacenter (c’est surtout cette partie qui va nous intéresser). Nano Server est encore plus réduit que la version Core de Windows Server : taille disque minime, ressource mémoire moindre mais aucune interface, pas de connexion directe à l’OS, support des applications 64 bits uniquement (donc exit vos applications 32 bits … enfin si vous en avez encore), aucun rôle préinstallé (rôle sur mesure à ajouter via des packages), etc. Tout cela amène à des (re)démarrages plus rapides, moins de mises à jour et un espace/transfert des VHD beaucoup plus léger et donc souple à maintenir.
Nano Server sera donc un système hôte de choix pour héberger un serveur IIS, un stockage de fichiers, héberger NodeJS et autre plateforme applicative, créer un cluster de reprise, un DNS, etc. Tout cela se configure via les packages qui seront disponibles avec Nano Server (et Microsoft à annoncer l’arrivée d’autres packages dans les mois à venir, sans compter sur les tierces parties).
Création du fichier VHD
Les étapes suivantes permettent de créer le fichier de disque dur virtuel VHD qui sera monté ensuite dans une VM puis dans un container Windows Server.
1. Télécharger une ISO de Windows Server 2016
2. Monter l’image dans votre système de fichier (sur Windows : clic droit sur le fichier .iso > Monter). Pour la suite de ce post, mon lecteur DVD est D:\.
3. A la racine de l’ISO, copier les scripts Convert-WindowsImage.ps1 et le nanoServerImageGenerator.psm1 vers un répertoire sur votre disque dur (dans mon cas c:\NanoServer ) :
=>
4. Ouvrez une console PowerShell en mode administrateur et placez vous dans le répertoire que vous avez copié (celui où vous avez le fichier Convert-WindowsImage.ps1 et le nanoServerImageGenerator.psm1). Pour importer le module de génération d’image Nano Server, exécutez la ligne de commande : Import-Module .\NanoServerImageGenerator.psm1 –Verbose
Note : sur Windows 8.1, vous aurez sûrement à exécuter la commande Set-ExecutionPolicy -ExecutionPolicy Unrestricted pour permettre l’utilisation du module et du script PowerShell.
5. Pour créer un VHD NanoServer avec les drivers de VM hôte (et rien de plus !), exécutez la ligne de commande suivante : New-NanoServerImage -MediaPath D:\ -BasePath .\Base -TargetPath ‘.\NanoImage\NanoVM.vhd’ -GuestDrivers –EnableRemoteManagementPort –Language en-us –ComputerName NanoServerNode1
Lorsque le script vous le demande, saisissez le mot de passe administrateur qui vous permettre de vous connecter à la console de gestion (recovery console).
Cette ligne de commande utilise le fichier WIM situé sur le media monté sur D:\ (l’ISO montée) et utilisera le répertoire \Base situé dans le même répertoire que les scripts. Dans notre cas, nous ajoutons les drivers de machine virtuelle et activons la gestion à distance.
Note : si vous spécifiez .vhd pour votre VHD cible, vous aurez un VHD avec un support MBR. Si vous spécifiez .vhdx, vous aurez un support GPT, de génération 2 de machine virtuelle Hyper-V. La taille des fichiers VHD varient entre ces deux schémas de partitionnement :
Remarque : le script prenant les paramètres locales de la machine, étant sur un système local fr-fr et les packages n’étant disponibles qu’en EN-US, nous devons spécifier le paramètre –Language en-us. Les packages devraient être localisés dans les mois à venir. Si vous ne spécifiez pas ce paramètre sur un système autre que en-us, vous aurez un message d’erreur.
Vous pouvez aussi exécuter la ligne de commande pour ne pas avoir à spécifier le mot de passe administrateur :
New-NanoServerImage -MediaPath D:\ -BasePath .\Base -TargetPath .\NanoImage\NanoVM.vhd -Compute -GuestDrivers -ComputerName 1stNano -AdministratorPassword (« P@ssw0rd » | ConvertTo-SecureString -AsPlainText -Force)
Attention : vous ne pouvez pas créer une image sur deux OS/versions d’Hyper-V différentes (par exemple créer l’image sur un Windows Server 2016 et l’exécuter Windows 8.1) car les drivers invités qui sont injectés sont ceux de la version d’Hyper-V de l’OS qui crée l’image.
Exécuter la machine virtuelle
Une fois le fichier VHD généré, nous allons créer une nouvelle machine virtuelle pour exécuter Nano Server :
1. Créer une machine virtuelle dans Hyper-V :
Ici nous allons utiliser le fichier .vhd et donc sélectionner la génération 1 :
Nano Server ayant besoin de peu de ressources, nous allons laisser 512 Mo de RAM (à dimensionner en fonction de vos besoins) :
Sélectionner le disque VHD NanoServer créé plus haut :
Une fois la machine virtuelle créée, n’hésitez pas éventuellement à modifier les paramètres tel que le nombre de processeurs, etc.
2. Démarrez et connectez vous la machine virtuelle Hyper-V pour afficher la console restauration vous permettant d’accéder à voter système même si vous avez un problème réseau :
3. Saisissez Administrator comme nom d’utilisateur et le mot de passe que vous aviez spécifié pendant la création de l’image (attention : clavier QWERTY de rigueur !) :
Pour naviguer dans l’interface, utilisez les touches de direction, Tab et Echap (pour sortir d’un menu).
Voilà ! Nous venons de créer notre image NanoServer fonctionnelle. Dans les posts à venir, nous allons voir comment personnaliser cette image pour héberger un IIS dans un Windows Server Container.
Ressources
Vous pourrez retrouver de nombreux détails sur la page https://msdn.microsoft.com/en-us/library/mt126167.aspx