Sortie en même temps que Windows server 2016 technical preview 2, Windows Nano Server est un système d’exploitation optimisé pour l’hébergement dans le cloud privé. Il est très proche de la version Core Server mais en version encore plus allégée.
Sur Nano Server nous n’avons pas la possibilité d’ouvrir une session locale, ni par Teminal Services. Il se gère par PowerShell, WMI, WinRM et services de gestion d’urgence (EMS). La partie 32 bits de l’os ne sera pas comprise, elle ne comprendra que 64 bit.
*source MS conférence Microsoft Ignite 2015
Comme on le voit sur le graphique ci-dessus Microsoft annonce les performances suivantes:
- réduction de la taille du disque VHD de 93 %
- 92 % de bulletins critique en moins
- les redémarrages sont 80% plus rapides (pour la partie système)
Windows Nano server est destiné aux utilisés suivants:
- serveur HyperV
- serveur de stockage
- serveur pour des applicatifs dans le cloud
- mise en cluster
De plus Windows Nano server peut être en cluster
Nous allons voir ici comment préparer une image virtuelle de Windows Nano Server
Préparation de l’image
Dans un premier vous aurez besoin d’un script disponible sur Script Center :
Convert-WindowsImage.ps1 — WIM2VHD for Windows 8 and Windows 8.1
Puis de l’image de windows server 2016 technical preview:
https://www.microsoft.com/en-us/evalcenter/evaluate-windows-server-technical-preview
une fois que vous avez tout ça, vous pouvez monter l’iso sur votre système:
Nous allons utiliser une image WIM pour créer un VHD. Mais attention, nous n’utiliserons pas l’image du système par défaut mais une image qui se trouve dans un sous-répertoire qui se nomme NanoServer dans le media d’installation
Puis préparer un répertoire dans travail sur votre disque de cette forme: .\nano_server puis un sous-répertoire .\nanos_erver\mountdir Ensuite copié le script téléchargé précédemment à la racine du répertoire .\nano_server
Nous allons utiliser PowerIse pour plus de facilité de lisibilité. Ouvrir Powershell Ise en mode administrateur
puis exécuté le script télécharger avec les paramétrés suivant:
Convert-WindowsImage.ps1 -Sourcepath fichier_source.wim -VHD fichier_destination.vhd –VHDformat VHD -Edition 1
Si on regarde la taille de notre VHD on voit qu’on est 480 Mo, mais attention nous avons une image sans fonctionnalités ajoutées: HyperV, Stockage ou bien encore driver.
Ajout des fonctionnalités
Les fonctionnalités de Nano server sont présents dans le répertoire .\NanoServer\Packages dans le media d’installation :
voici le descriptif:
- Microsoft-NanoServer-Compute-Package.cab: role HyperV
- Microsoft-NanoServer-FailoverCluster-Package.cab: role cluster
- Microsoft-NanoServer-Guest-Package.cab: Pilote utilisé Nano Server entant que machine virtuel
- Microsoft-NanoServer-OEM-Drivers-Package.cab: pilote de base pour les contrôleurs réseau et de stockage
- Microsoft-NanoServer-Storage-Package.cab: rôle de server de fichier et composant de stockage
Pour ajouter une fonctionnalité voici la procédure à suivre :
Dans un premier temps, vous devez copier les sources des packages en local puis retirer la lecture seule. Je l’ai copié dans le sous-répertoire .\nano_server créé précédemment:
Faite de même pour le sous-répertoire en-us
Puis vous devez vous placer dans le répertoire source sur le media d’installation avec une invite de commande en administrateur. Cela évitera d’ajouter Dism à votre système
Puis monter l’image disque avec dism avec la commande suivante:
dism.exe /Mount-Image /ImageFile:”image.vhd” /Index:1 /MountDir:”.\mountdir”
ensuite il faut ajouter le package que vous souhaitez avec la commande
puis démonter l’image du répertoire mountdir
voici un exemple de bath pour ajouter toutes les fonctionnalités:
cd F:\sources
dism.exe /Mount-Image /ImageFile:”I:\nano_server\NanoServer.vhd” /Index:1 /MountDir:”I:\nano_server\mountdir”
Dism.exe /Add-Package /PackagePath:”i:\nano_server\Packages\Microsoft-NanoServer-Compute-Package.cab” /Image:I:\nano_server\mountdir
Dism.exe /Add-Package /PackagePath:”i:\nano_server\Packages\en-us\Microsoft-NanoServer-Compute-Package.cab” /Image:I:\nano_server\mountdir
Dism.exe /Add-Package /PackagePath:i:\nano_server\Packages\Microsoft-NanoServer-FailoverCluster-Package.cab /Image:I:\nano_server\mountdir
Dism.exe /Add-Package /PackagePath:i:\nano_server\Packages\en-us\Microsoft-NanoServer-FailoverCluster-Package.cab /Image:I:\nano_server\mountdir
Dism.exe /Add-Package /PackagePath:i:\nano_server\Packages\Microsoft-NanoServer-Guest-Package.cab /Image:I:\nano_server\mountdir
Dism.exe /Add-Package /PackagePath:i:\nano_server\Packages\en-us\Microsoft-NanoServer-Guest-Package.cab /Image:I:\nano_server\mountdir
Dism.exe /Add-Package /PackagePath:i:\nano_server\Packages\Microsoft-NanoServer-OEM-Drivers-Package.cab /Image:I:\nano_server\mountdir
Dism.exe /Add-Package /PackagePath:i:\nano_server\Packages\en-us\Microsoft-NanoServer-OEM-Drivers-Package.cab /Image:I:\nano_server\mountdir
Dism.exe /Add-Package /PackagePath:i:\nano_server\Packages\Microsoft-NanoServer-Storage-Package.cab /Image:I:\nano_server\mountdir
Dism.exe /Add-Package /PackagePath:i:\nano_server\Packages\en-us\Microsoft-NanoServer-Storage-Package.cab /Image:I:\nano_server\mountdir
Dism.exe /Add-Package /PackagePath:i:\nano_server\Packages\Microsoft-OneCore-ReverseForwarders-Package.cab /Image:I:\nano_server\mountdir
Dism.exe /Add-Package /PackagePath:i:\nano_server\Packages\en-us\Microsoft-OneCore-ReverseForwarders-Package.cab /Image:I:\nano_server\mountdir
Dism.exe /Unmount-Image /MountDir:I:\nano_server\mountdir /Commit
voici le résultat attendu :
Une fois l’ajout des fonctionnalités fait, notre VHD va prendre 160 Mo de plus :
Ajout d’un driver
Dans cette partie nous allons voir comment ajouter un driver, maintenant si vous utilisez nano server uniquement sur hyperV pour vous pouvez passer cette partie.
Nous allons ajouter les drivers VmWare présents dans les VmWare tools. Biensur si vous faites cela n’installe pas le package Microsoft-NanoServer-Guest-Package.cab cela ne vous servira rien. Je vous montrerai après la conversion du VHD en VMDK.
Je vais les prendre depuis un Vm de Windows 10 dans le répertoire C:\Program Files\Common Files\VMware\Drivers
Nous allons copier ce répertoire dans notre dossier .\nano_server seul les drivers suivants qui vont nous intéresser:
- pvscsi -> pilote de la carte iscsi
- vmci -> pilote d’interface de communication de la VM
- vmxnet3 -> pilote réseau
après le système est à peut prêt le même que pour ajouter un package:
Puis vous devez vous placer dans le répertoire source du média d’installation avec une invite de commande en administrateur:
Puis monter l’image disque avec dism avec la commande suivante:
dism.exe /Mount-Image /ImageFile:”image.vhd” /Index:1 /MountDir:”.\mountdir”
ensuite il faut ajouter le driver que vous souhaitez avec la commande
puis démonté l’image du répertoire mountdir
cd F:\sources
dism.exe /Mount-Image /ImageFile:”I:\nano_server\NanoServer.vhd” /Index:1 /MountDir:”I:\nano_server\mountdir”
Dism.exe /Add-Driver /image:I:\nano_server\mountdir /driver:”I:\nano_server\Drivers\vmxnet3″
Dism.exe /Add-Driver /image:I:\nano_server\mountdir /driver:”I:\nano_server\Drivers\pvscsi”
Dism.exe /Add-Driver /image:I:\nano_server\mountdir /driver:”I:\nano_server\Drivers\vmci\device”
Dism.exe /Unmount-Image /MountDir:I:\nano_server\mountdir /Commit
Vous devriez avoir ce résultat:
vous aurez un warning :
WARNING: DISM has skipped driver signature check because the version of running OS and that of target OS do not match.
cela n’est pas trop grave le système vous informe juste qu’il va ignorer la signature du pilote, vous pouvez vérifier que le pilote est bien présent en parcourent le VHD dans .\mountdir\Windows\System32\drivers vous constaterez que le driver est bien présent:
Configuration de Nano Server
La façon la plus simple pour configurer Nano Server est d’utiliser un fichier Unattend.xml . Là nous allons configurer le compte administrateur et le nom du serveur
voici la partie à utiliserdu fichier Unattend.xml :
<UserAccounts>
<AdministratorPassword>
<Value>yourBApasswordhere</Value>
<PlainText>true</PlainText>
</AdministratorPassword>
</UserAccounts>
Entre les balises AdministratorPassword les informations du compte administrateur
Entre les balises Value on retrouve le mot de passe:<Value>yourBApasswordhere</Value>
Entre les balises Plaintext la valeur true indiquée qu’on laisse le mot de passe en clair dans le fichier réponse.
Puis pour le nom du serveur:
<ComputerName>ServerName</ComputerName>
Entre les balises ComputerName la valeur true indique qu’on laisse le mot de passe en clair dans le fichier réponse.
voilà le fichier au complet:
<!–?xml version=’1.0′ encoding=’utf-8′?>
xmlns=”urn:schemas-microsoft-com:unattend” xmlns:wcm=”http://schemas.microsoft.com/WMIConfig/2002/State” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
pass=”offlineServicing”>
name=”Microsoft-Windows-Shell-Setup” processorArchitecture=”amd64″ publicKeyToken=”31bf3856ad364e35″ language=”neutral” versionScope=”nonSxS”>
<ComputerName>SRVNANO01</ComputerName>
</component>
</settings>
pass=”oobeSystem”>
name=”Microsoft-Windows-Shell-Setup” processorArchitecture=”amd64″ publicKeyToken=”31bf3856ad364e35″ language=”neutral” versionScope=”nonSxS”>
<UserAccounts>
<AdministratorPassword>
<Value>P@ssw0rd</Value>
<PlainText>true</PlainText>
</AdministratorPassword>
</UserAccounts>
<TimeZone>Pacific Standard Time</TimeZone>
</component>
</settings>
pass=”specialize”>
name=”Microsoft-Windows-Shell-Setup” processorArchitecture=”amd64″ publicKeyToken=”31bf3856ad364e35″ language=”neutral” versionScope=”nonSxS”>
<RegisteredOwner>TazmenTeam</RegisteredOwner>
<RegisteredOrganization>TazmenWorld</RegisteredOrganization>
</component>
</settings>
</unattend>
Puis enregistrer votre fichier Unattend.xml
Maintenant pour l’appliquer à notre VHD on utilisera le encore DISM de la façon suivante:
Puis vous devez vous placer dans le répertoire source du média d’installation avec une invite de commande en administrateur:
Puis monter l’image disque avec dism avec la commande suivante:
dism.exe /Mount-Image /ImageFile:”image.vhd” /Index:1 /MountDir:”.\mountdir”
ensuite il faut ajouter le fichier Unattend.xml que vous souhaitez avec la commande
puis démonter l’image du répertoire mountdir
Dism.exe /Mount-Image /ImageFile:”I:\nano_server\NanoServer.vhd” /Index:1 /MountDir:”I:\nano_server\mountdir”
Dism.exe /Image:I:\nano_server\mountdir /Apply-Unattend:I:\nano_server\unattend.xml
Configuration du script du premier démarrage
dism.exe /Mount-Image /ImageFile:”I:\nano_server\NanoServer.vhd” /Index:1 /MountDir:”I:\nano_server\mountdir”
md I:\nano_server\mountdir\Windows\Setup
md I:\nano_server\mountdir\Windows\Setup\Scripts
copy I:\nano_server\SetupComplete.cmd I:\nano_server\mountdir\Windows\Setup\Scripts
Dism.exe /Unmount-Image /MountDir:I:\nano_server\mountdir /Commit
hostname
Conversion du VHD en VMDK
Connexion à nano server
Une fois terminé il ne vous reste plus qu’à ouvrir une session distance.
pour piloter nano server vous pouvez utiliser wmi par exemple ici si je veux avoir la liste des processus en cours:
Get-WmiObject -Class Win32_Process -ComputerName 192.168.40.40 -Credential administrator |select name
Un autre exemple, vous pouvez utiliser PSSession en PowerShell
Ping :Exploitation de Windows Server Nano | Blog Alphorm