Présentation de Windows Nano Server

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.

nano-presentation-1-sur-30

*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:

nano-presentation-2-sur-30

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

nano-presentation-3-sur-30

 

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

nano-presentation-4-sur-30

Nous allons utiliser PowerIse pour plus de facilité de lisibilité. Ouvrir Powershell Ise en mode administrateur

nano-presentation-5-sur-30

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

 

nano-presentation-6-sur-30

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 :

nano-presentation-7-sur-30

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:

nano-presentation-8-sur-30

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

nano-presentation-9-sur-30

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

Dism.exe /AddPackage /PackagePath:.\Packages\MicrosoftNanoServerComputePackage.cab /Image:.\mountdir

puis démonter l’image du répertoire mountdir

Dism.exe /Unmount-Image /MountDir:« .\mountdir » /Commit

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 :

nano-presentation-11-sur-30

Une fois l’ajout des fonctionnalités fait, notre VHD va prendre 160 Mo de plus :

nano-presentation-12-sur-30

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

nano-presentation-13-sur-30Nous 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:

nano-presentation-9-sur-30

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

 
dism\dism /Add-Driver /image:.\mountdir /driver: ».\chemin_du_driver »

puis démonté l’image du répertoire mountdir

Dism.exe /Unmount-Image /MountDir:« .\mountdir » /Commit
Voila le bath que j’ai utilisé

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:

nano-presentation-14-sur-30

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:

nano-presentation-15-sur-30

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:

nano-presentation-9-sur-30

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

dism\dism /image:.\mountdir /Apply-Unattend:.\unattend.xml

puis démonter l’image du répertoire mountdir

Dism.exe /Unmount-Image /MountDir:« .\mountdir » /Commit
Nous devons aussi créer un sous-répertoire \windows\panther dans le VHD, qui sera utilisé par le système pendant l’installation
Voici le bath utilisé:
cd F:\sources
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
Dism.exe /Unmount-Image /MountDir:I:\nano_server\mountdir /Commit
nano-presentation-16-sur-30

Configuration du script du premier démarrage

Au premier démarrage de Nano Server il va exécuter un script qui va se trouver dans %WINDIR%\Setup\Scripts\ qui se nomme SetupComplete.cmd
voici la méthode que j’ai utilisée :
cd F:\sources
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
et voilà le résultat au premier démarrage:
nano-presentation-23-sur-20
Vous pouvez aussi par exemple configurer votre adresse ip avec NETSH voila un autre exemple si je veux vérifier l’état de la carte réseau, et ensuite lui attribuer une ip fix:
ping 127.0.0.1
netsh interface ip set address « Ethernet0 » static 192.168.40.40 255.255.255.0 192.168.40.2
hostname
Si vous utilisez Vmware je vous conseille fortement d’utiliser cette dernière méthode, en effet au premier démarrage dans une machine Vmware , la VM aura un peu de mal à trouver son ip par le DHCP

Conversion du VHD en VMDK

Comme vous avez lu plus haut je vais utiliser l’image de Nano serveur dans Vmware, la ça sera Vmware Workstation. Pour convertir l’image je vais utiliser WinImage
La conversion est très simple dans le menu Disk:
nano-presentation-17-sur-30
sélectionner votre disque VHD
nano-presentation-18-sur-30
sélectionner une extension dynamique
nano-presentation-19-sur-30
Puis ici sélectionner le type VmWare, puis entrer le nom, et enregistrer
nano-presentation-20-sur-30
la conversion se fait
nano-presentation-21-sur-30
une fois fini cliquer sur ok
nano-presentation-22-sur-30
nous allons importer le disque dans Vmware
Maintenant il faut changer le type de carte utilisé. En effet par défaut ça sera la carte intel mais elle n’est pas reconnue. Vous devrez changer la carte une fois que vous aurez créé votre machine virtuelle en éditant le fichier vmx présent dans le répertoire de la VM:
 nano-presentation-25-sur-30
puis vous devrait remplacer le paramètre:
ethernet0.virtualDev = « e1000e »
par
ethernet0.virtualDev = « vmxnet3 »
Ensuite nous avons déjà importé le driver de la carte, le système se chargera du reste:
nano-presentation-24-sur-30

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

nano-presentation-27-sur-30

Un autre exemple, vous pouvez utiliser PSSession en PowerShell

nano-presentation-28-sur-30
De même que vous pouvez piloter nano server depuis PowerShell ISE:
nano-presentation-29-sur-30
Pour le moment il semble qu’il a le même bug que windows server 2016 au démarrage. Quand vous démarrez le serveur, il vous donnera l’illusion que le système est en toujours en train de changer alors qu’il a fini depuis longtemps son initialisation
 nano-presentation-30-sur-30

Une pensée sur “Présentation de Windows Nano Server

  1. Ping :Exploitation de Windows Server Nano | Blog Alphorm

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *