Déployer des images destinées aux machines cibles

Scénario

Un administrateur doit déployer une image maître différente sur chaque machine cible.

Solution

L'administrateur place les images dans un emplacement partagé qui peut être accessible à partir de chaque machine cible.

L'administrateur renomme chaque image en fonction de l'adresse MAC de la machine cible. L'image destinée à la machine ayant l'adresse MAC 01-02-03-04-05-06 sera par exemple nommée image-01-02-03-04-05-06.tib.

L'administrateur écrit un script de déploiement pouvant lire l'adresse MAC de la machine cible et pouvant chercher une image avec un nom correspond à l'adresse MAC de l'emplacement partagé. Le script peut être exécuté sur n'importe quel nombre de machines cibles.

Exemple de script

setlocal
SET IMG_PATH=\\image_server\images
SET TMP_DRV_LETTER=h:
net use %TMP_DRV_LETTER% %IMG_PATH%
echo off
for /f "tokens=1-13 delims= " %%a in ('ipconfig /all') do (
IF %%a EQU Physical (
for /f "tokens=1-3 delims= " %%a in ('echo %%l') do (
IF EXIST %TMP_DRV_LETTER%\%%a.tib (
echo DEPLOYMENT IMAGE file: %%a.tib
asdcmd.exe /deploy /filename:%TMP_DRV_LETTER%\%%a.tib /harddisk:1 /target_partition:c
goto end
) ELSE (
echo THE IMAGE FILE %IMG_PATH%\%%a.tib NOT FOUND
)
)
)
)
:end
echo on
net use %TMP_DRV_LETTER% /d
wpeutil Reboot
endlocal

Ce que fait ce script :

  1. monte le dossier réseau contenant le jeu d'images (une image correspond à une machine cible)
  2. récupérer l'adresse MAC de la machine cible
  3. génère un nom de fichier .tib (si l'adresse MAC est 01-02-03-04-05-06 alors le nom du fichier .tib sera 01-02-03-04-05-06.tib)
  4. cherche une image de ce nom dans le dossier réseau
  5. déploie l'image si celle-ci est trouvée
  6. redémarre ou éteint la machine cible

Variables d'environnement :