Mettre en place un serveur pour l`installation automatisée de

Transcription

Mettre en place un serveur pour l`installation automatisée de
CRDP de
l’académie de
Versailles
Mission TICE
Médiapôles
mediapoles
@crdp.ac-versailles.fr
Mettre en place un serveur
pour l’installation automatisée
de Windows XP.
Juin 2009
584, rue Fourny
78530 Buc
Tél. 01 39 45 78 78
http://mediapoles.crdp.ac-versailles.fr
Introduction.
Qu’est-ce qu’UNATTENDED ?
Son concepteur dit lui-même qu’il aurait pu appeler son produit « Open RIS ». Il s’agit en
fait d’un ensemble de scripts fonctionnant sur un serveur GNU-Linux et permettant
d’installer sur des stations de façon silencieuse (unattended = le processus n’attend pas de
réponses de l’utilisateur) un OS (Windows XP), ses mises à jour, et des logiciels
(bureautique, antivirus, etc ….).
UNATTENDED est mis gratuitement à disposition du public sous licence libre c’est à dire
autorisant outre l’utilisation, la copie, la modification et la diffusion de l’ensemble du
produit.
Pourquoi un serveur UNATTENDED sur une machine dédiée ?
La restauration de Windows XP sur les clients, si elle est faite simultanément sur plusieurs
machines, va fortement solliciter le serveur, et rendre son utilisation « normale » difficile
pour les utilisateurs.
C’est pourquoi il vaut mieux dans la mesure du possible, et surtout si la restauration doit se
faire pendant les heures ouvrables, installer le serveur UNATTENDED sur une machine
dédiée.
Installation du serveur.
1. Installer un système de base Debian GNU-Linux (version stable).
Il n’est pas nécessaire de disposer d’une machine très puissante ; une bonne carte réseau, 256
Mo de RAM et un disque dur véloce seront des plus. La machine doit être connectée sur
Internet, et pouvoir disposer d’un débit descendant raisonnable.
Au démarrage de l’installation, il est conseillé de choisir « Advanced options » puis
« Graphical expert install ».
L’installation de la distribution Debian stable est documentée ici :
http://formation-debian.via.ecp.fr/intro-partie1.html
L’installation peut-être minimale : au moment de la procédure d’installation, il suffit de :
- configurer le réseau en utilisant une adresse IP fixe (et non par DHCP, qui est le choix par
défaut).
- réserver un espace important à la partition /var ; c’est dans cette partition que sera copié
l’ensemble des données nécessaires au fonctionnement du logiciel.
- créer un utilisateur unattend avec un mot de passe quelconque (ici una123)
- décocher tout lors du choix des paquets à installer avec tasksel
NB : pour pouvoir éditer les fichiers de configuration et mettre en place les différents éléments
nécessaires au fonctionnement du serveur, il est souhaitable d’installer un service ssh par la
commande :
apt-get install ssh
Il est ensuite possible d’utiliser par exemple le logiciel filezilla pour accéder au serveur en sftp
depuis un client (Windows, Linux en interface graphique, Mac).
Dans Filezilla, il suffit d’ajouter un nouveau site avec les paramètres de la capture d’écran cidessous :
Dans cette capture d’écran 192.168.1.6 correspond à l’adresse IP du serveur unattended. Les
identifiants et mot de passe sont ceux du compte « root » créé à l’installation de Debian.
Clé à accepter lors de la première connexion :
Il peut être très pratique d’installer l’explorateur de fichier/éditeur mc
apt-get install mc
Le lancement de l’explorateur de fichiers mc se fait tout simplement en tapant mc en ligne de
commande
2. Installer un serveur de boot : atftpd
-
apt-get install atftpd
Editer le fichier /etc/inetd.conf et rechercher la ligne configurant le service tftp. Elle doit
se terminer par par /tftpboot (Attention… la ligne doit se terminer SEULEMENT par
/tftpboot) Vous devrez certainement supprimer /var/lib qui sera déjà écrit.
Relancer le service inet par la commande :
/etc/init.d/inetutils-inetd restart
3. Installer un serveur dhcp : dhcp3-server
-
apt-get install dhcp3-server
éditer le fichier /etc/dhcp3/dhcpd.conf qui doit ressembler à quelque chose comme ça :
# Exemple de fichier de configuration pour dhcpd
# Déclarations des options communes.
# Déclarations des options communes.
option domain-name "stage.local";
option domain-name-servers 192.168.2.1;
default-lease-time 600;
max-lease-time 7200;
# Déclaration des options particulières au subnet utilisé.
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.200 192.168.2.240;
option routers 192.168.2.1;
# Déclarations des options liées au serveur de démarrage.
next-server 192.168.2.10;
filename "pxelinux.0";
}
# Modèle de déclaration des IP permanentes.
# Décommenter les lignes suivantes et les renseigner.
#host fantasia {
# hardware ethernet 08:00:07:26:c0:a5;
# fixed-address 192.168.2.211;
#}
Dans l’exemple ci-dessus, 192.168.2.10 est l’adresse IP du serveur Unattended lui même.
pxelinux.0 << lire « zéro »
Relancer ensuite le serveur DHCP par la commande :
/etc/init.d/dhcp3-server restart.
4. Installer unattended
-
-
Télécharger les paquets logiciels nécessaires à partir de l’adresse suivante :
http://sourceforge.net/projects/unattended/ .
La version actuelle porte le n° 4.8. Il faut donc récupérer les fichiers « unattended-4.8linuxboot.zip » et « unattended-4.8.zip »
Décompresser les deux fichiers ZIP dans un même répertoire nommé « unattended » puis
transférer leur contenu dans le dossier /var de votre serveur.
Télécharger les fichiers « menu.c32 » et « fr.kbd » à l’adresse http://mp-gif.acversailles.fr/ftp/unattend/fichiers , et les coller dans /var/unattended/linuxboot/tftpboot, à
côté du fichier pxelinux.0
Editer le fichier /var/unattended/linuxboot/tftpboot/pxelinux.cfg/default et le modifier en
s’inspirant du modèle disponible ici
http://mp-gif.ac-versailles.fr/ftp/unattend/fichiers/default .
Ces manipulations permettent de démarrer une station sur le réseau tout en protégeant
l’opération par un mot de passe.
-
-
-
Modifier les droits sur le dossier /var/unattended par la commande suivante :
chmod –R 755 /var/unattended ( = droits de lecture pour tout le monde dans tous les
répertoires) ATTENTION : Cette commande est à refaire régulièrement dès lors que
vous modifiez, complétez … des fichiers dans ce répertoire !
Faire un lien symbolique de /var/unattended/linuxboot/tftpboot vers /tftpboot par la
commande :
ln –s /var/unattended/linuxboot/tftpboot /tftpboot
Faire le ménage dans le dossier /var/unattended/install/scripts ; les seuls scripts
indispensables sont base.bat(*), defrag.bat, perl.bat et ceux concernant les mises à jour de
xp, ainsi que le kb873374.reg. Effacer tous les autres scripts et tous les répertoires autres
que « enu » et « fra ».
Actualiser le logiciel en téléchargeant les dernières mises à jour. Pour ce faire, lancer
successivement les commandes :
/var/unattended/install/tools/script-update
/var/unattended/install/tools/prepare FRA
Vérifier ensuite que tout est à jour par la commande :
/var/unattended/install/tools/check FRA
Si cette dernière commande renvoie encore une réponse, relancer la commande prepare
jusqu’à ce qu’il n’y ait plus rien à mettre à jour.
Cette séquence de mise à jour peut être automatisé par une tâche cron :
• lancer la commande crontab –e
• Insérer les lignes suivantes :
45 0 * * * /var/unattended/install/tools/script-update
0 1 * * * /var/unattended/install/tools/prepare FRA
• Enregistrer
La première commande sera alors lancée tous les jours à minuit 45, et la seconde à une
heure.
NB : Les problèmes d’installation et de mise à jour, repérés au 8 juin 2009 et qui devraient pour certains
être corrigés dans les prochaines versions du logiciel.
•
windows-kb890830-v2.8.exe n’est plus disponible et est remplacé par windows-kb890830-v2.10.exe.
Il faut donc télécharger la nouvelle version et la déposer dans le dossier
/var/unattended/install/updates/common/k890830. Il faut donc également modifier en conséquence la
ligne 38 du script /var/unattended/install/scripts/winxpsp3-extras.bat qui y fait référence. Le
problème est que cette modification est annulée par la mise à jour.
•
Le « Windows Genuine Advantage Validation Tool », dit WGA, n’est pas installé dans la mesure ou
son installation silencieuse n’est pas possible. Cela ne devrait pas être modifié prochainement.
•
L’installation de ie7 peut bloquer l’installation en empêchant un reboot de s’effectuer. Il faut alors
provoquer le reboot « à la main ».
•
La mise à jour vers ie8 n’est pas encore implémentée.
•
Il peut arriver qu’une erreur se produise en toute fin d’installation avec une erreur sur la commande
« net localgroup ». Il s’agit probablement d’un bug qui devrait être corrigé. En attendant, il est
possible de commenter par un « # » la ligne 849 du fichier /var/unattended/install/dosbin/install.pl.
Attention à laisser les deux derniers caractères de la ligne (« ) ; ») en dehors du commentaire en
insérant un saut de ligne avant ces deux caractères.
5. Installer et configurer samba
-
apt-get install samba
editer le fichier /etc/samba/smb.conf et y apporter les modifications suivantes :
#======================= Global Settings =======================
(...)
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = STAGE
(...)
# WINS Server - Tells the NMBD components of Samba to be a WINS Client
# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
wins server = ip_du_serveur_wins
(...)
#### Networking ####
(...)
interfaces = 192.168.2.0/24 eth0
(...)
####### Authentication #######
# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
security = user
(...)
obey pam restrictions = yes
guest account = nobody
invalid users = root
guest ok = yes
# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes
(...)
#======================= Share Definitions =======================
[install]
comment = partage unattended
path = /var/unattended/install
valid users = unattend
admin users = unattend
browseable = no
read only = no
Enregistrer le mot de passe samba de l'utilisateur unattend par la commande
smbpasswd -a unattend (entrer deux fois le mot de passe comme demandé ensuite),
puis redémarrer le service samba par la commande /etc/init.d/samba restart
Mise en place de l’OS et des drivers
1. Les sources d’installation génériques de Windows : c’est simple.
-
-
Dans le dossier /var/unattended/install/os, créer un dossier winXP (attention, si vous
voulez utiliser plus loin le script n-install.sh, il vous faut indiquer ce nom en respectant la
casse des caractères) et y copier le répertoire i386 du CdRom d’installation d’une version
« VLK » de Windows XP (attention là encore à bien écrire « i386 » avec un i minuscule).
A l’intérieur du dossier i386, créer un dossier nommé $OEM$, et contenant lui-même un
dossier nommé $1, destiné à recevoir les drivers spécifiques à chaque type de machine et
qui seront installés automatiquement.
Copier le script suivant dans un fichier /usr/local/bin/n-install.sh
#! /bin/sh
# changer le chemin d'unattended si nécessaire
unattended=/var/unattended
winXP=winXP
echo "creation d'un nouveau répertoire d'installation"
echo "pour une nouvelle config materielle"
echo "entrez le nom du répertoire (8 caractéres max) :"
read dir
cp -lR $unattended/install/os/$winXP $unattended/install/os/$dir
chown -R unattend.root $unattended/install/os/$dir
chmod -R 755 "$unattended/install/os/$dir/i386/\$OEM\$/\$1"
echo "répertoire $dir créé "
echo "vous devez maintenant modifier les drivers dans ce répertoire"
echo "en ne laissant que ceux nécessaires ou en ajoutant d'autres"
-
Modifier les droits sur le script pour le rendre exécutable par l’utilisateur root, par la
commande :
chmod 700 /usr/local/bin/n-install.sh
2. Les drivers spécifiques à chaque installation : ça se complique.
Au cours de l’installation de windows XP, l’ensemble du contenu du dossier $1 est copié dans
le dossier C:\drivers. Si l’on dispose de plusieurs types de configurations différentes, la taille
de ce dossier peut rapidement devenir importante ; de plus il peut se présenter des problèmes
de conflit entre différents pilotes.
Il est donc nécessaire de créer des répertoires d'installation différents pour chaque type de
configuration matérielle. Le problème, dans ce cas, la duplication du dossier i386 sur le
serveur pour chaque configuration. D’où l’intérêt d’utiliser une fonction puissante d'Unix : les
liens durs (cp -lR). Au lieu de copier le fichier, on crée un pointeur vers celui-ci. C’est la
fonction du script n-install.sh.
Pour chaque configuration matérielle, il faut donc :
-
lancer le script n-install.sh (Attention, il ne faut pas le lancer depuis le répertoire dans
lequel il se trouve sinon cela ne fonctionne pas)
donner un nom explicite à la configuration, d’au plus huit caractères
peupler le dossier $1 de l’ensemble des drivers spécifiques à la configuration matérielle et
non disponibles par défaut dans les sources de windows XP.
Si jusque là les choses étaient à peu près claires, cette partie est la plus pénible car la moins
« standardisée ». Ce qu’il faut savoir, c’est que l’organisation de l’arborescence du dossier
importe peu mais chaque pilote doit comporter un fichier *.inf, ainsi que les drivers eux
même. Il faut donc en général décompresser les pilotes téléchargés sur le net, et copier le
répertoire approprié (XP en général) dans $1. Certains pilotes (chez Intel en particulier)
demandent une dizaine de manipulations plus ou moins parfaitement documentées avant
d'être directement installables!
Attention ! Tous les noms doivent être au format DOS (8.3), et l'ensemble du chemin
depuis winXP inclus ne doit pas dépasser 64 caractères, ce qui interdit la plupart du
temps de simplement recopier les pilotes depuis le CdRom d’installation.
A ce stade, il est possible de faire une installation, mais le processus n’est pas encore
automatique : il est nécessaire de répondre à quelques questions de l’installeur. Il nous faut
donc maintenant configurer les fichiers de réponse de façon à rendre l’installation entièrement
automatique.
3. Fichiers de réponse pour une installation « unattended ».
Les deux fichiers importants se trouvent dans /var/unattended/install/site, et se nomment
unattend.txt et unattend.csv. Le premier définit les éléments de configuration valables pour
toutes les configurations, le second permet de différencier les installations et de les
personnaliser pour chaque machine du réseau. Le critère discriminant sera au départ l’adresse
MAC de l’interface qui va initier la connexion sur le serveur de boot.
-
Le fichier unattend.txt
On peut trouver sur internet toute la documentation voulue sur ce fichier de réponse. En
voici un exemple dont on peut s’inspirer :
; General user information
[UserData]
[Identification]
AdminPassword=motdepasse
[GuiUnattended]
TimeZone=105
OEMSkipRegional=1
OemSkipWelcome=1
AdminPassword=motdepasse
[Unattended]
UnattendMode=DefaultHide
FileSystem=ConvertNTFS
ExtendOemPartition=0
OemSkipEula=Yes
OemPreinstall=Yes
; Needed for XP - see <http://support.microsoft.com/?kbid=294801>.
UnattendSwitch=Yes
DriverSigningPolicy=Ignore
WaitForReboot=No
[Components]
; Install IIS by default
iis_common=Off
iis_inetmgr=Off
iis_www=off
; Docs suggest iis_pwmgr only works on Win2k, but include it
; anyway
iis_pwmgr=Off
; Include docs
iis_doc=Off
accessopt=off
chat=off
deskpaper=off
iisdbg=off
indexsrv_system=off
media_clips=off
media_utopia=off
mousepoint=off
msnexplr=off
pinball=off
zonegames=off
[Data]
AutoPartition=1
MsDosInitiated="0"
UnattendedInstall=Yes
[Display]
BitsPerPel=32
Xresolution=1024
YResolution=768
Vrefresh=75
[Networking]
InstallDefaultComponents=Yes
[_meta]
ntinstall_cmd="nt5x-install "
fdisk_lba=1
fdisk_cmds="fdisk /clear 1;fdisk /pri:7000;fdisk /activate:1"
fdisk_confirm=0
format_cmd="format /y /z:seriously /q /u /a /v: c:"
replace_mbr=1
local_admins
ntp_servers="ntp.ac-versailles.fr"
edit_files=0
[Branding]
BrandIEUsingUnattended=Yes
[URL]
Home_Page=about:blank
[shell]
DefaultStartPanelOff=yes
DefaultThemesOff=yes
[windowsFirewall]
Profiles=WindowsFirewall.TurnOffFirewall
[WindowsFirewall.TurnOffFirewall]
Mode=0
-
Le fichier unattend.csv
Il permet de définir certaines caractéristiques du système à installer : type d’installation,
nom de la machine, clé de licence, logiciels supplémentaires à installer, etc., en fonction de
l’adresse MAC de la machine.
En voici un exemple :
"Lookup","Property","Value"
"0007E9F57EA9","ComputerName","postea"
"0007E9F57EB1","ComputerName","posteb"
"0007E9F57E3F","ComputerName","postec"
"Default","FullName","Mp-Gif"
"Mp-Gif","OrgName","LVC"
"postea","OS_media","type1"
"posteb","OS_media","type2"
"postec","OS_media","type3"
"Default","Windows XP Professionnel ProductKey","MICRO-SOFTN-OUSCA-SSELE-SPIED"
"Default","Windows XP Professionnel ProductID","MICRO-SOFTN-OUSCA-SSELE-SPIED"
"Default","JoinWorkgroup","workgroup"
"Default","top_scripts","base.bat"
"Default","middle_scripts","ie7.bat"
Selon ce fichier, les machines seront automatiquement nommées en fonction de l’adresse MAC de leur
interface réseau. Le nom de l’utilisateur et l’organisme seront les mêmes partout (directive « default »),
de même que la clé de licence, le groupe de travail, et les scripts lancés.
Par contre, les trois postes correspondent à des types d’installations différentes, donc à des configurations
matérielles différentes.
Le script « base.bat » peut être modifié : par défaut, il force l’installation des mises à jour de windows
après l’installation, et fait une défragmentation post-installation. Le script « ie7.bat » peut-être remplacé
par un « perso.bat », créé en fonction des besoins. Ces fichiers sont tous situés dans le dossier
/var/unattended/install/scripts.
Dernier point, le fichier config.pl situé dans le même dossier que les fichiers unattend.txt et
unatend.csv est bogué, dans la mesure où il n’installe pas automatiquement les divers. Le remplacer
par cette version : http://mp-gif.ac-versailles.fr/ftp/unattend/fichiers/config.pl
Lancer l’installation de WindowsXP
-
Dans le BIOS de la machine à installer, activer la fonction de boot PXE
Au démarrage de la machine appuyer sur la touche F12 : la carte réseau est alors le
premier périphérique de boot et l’installation démarre.
Au cours de la première installation, en particulier lors des différents reboots effectués lors
des mises à jour, il est possible de voir apparaître des messages d’erreur de deux types :
1- Impossible de connecter un lecteur réseau. Le problème est en général lié au
temps que prend WinXP pour rendre disponible l’interface réseau ; la deuxième
tentative de montage qui a lieu automatiquement au bout de quelques secondes
se traduit en général par un succès et le processus peut continuer.
2- Un script est nécessaire mais n’a pas été téléchargé. Il est appelé par l’installeur
mais ne pouvant être trouvé sur le serveur cela se traduit par un message
d’erreur proposant d’ignorer, d’abandonner ou de retenter l’exécution du
programme qui a échoué. Il convient alors de télécharger le script sur le site
http:// unattended.cvs.sourceforge.net de l’installer « à la main » sur le serveur,
d’y relancer la commande prepare FRA, et enfin de retenter l’exécution de la
commande sur la machine cliente.
(*) Il est possible de commenter certaines lignes dans le fichier « base.bat », en particulier la ligne qui lance la
défragmentation, ou celle qui lance les mises-à-jour de Windows. Pour ce faire, faire précéder la ligne de « :: »
(deux fois deux points).
Document réalisé par :
François-Xavier Vial, Conseiller TICE du bassin de Massy - Médiapôle de Gif
Franç[email protected]
Michaël Vilbenoit, Conseiller TICE du bassin de Rambouillet - Médiapôle de Rambouillet
[email protected]
Sources :
Le site du projet “UNATTENDED” : http://unattended.sourceforge.net