Changes

Jump to: navigation, search

Installation dans un lycee (FR)

9,907 bytes added, 22:06, 19 November 2009
creation
Cette documentation est le résultat de mes expérimentations pour installer wpkg dans mon lycée. Il ne s'agit pas d'une installation idéale mais ça marche !!

== les conditions initiales ==
=== le serveur ===
Le lycée accueille une centaine de machines sous windows XPpro servies par un serveur samba (systeme scribe/eole) dont l'IP est 192.168.220.10.
Les élèves ont un compte sur ce serveur et certains répertoires sont mappés au login.

=== wpkg ===
L'ensemble des fichiers WPKG placé dans un partage caché sur le serveur. Les permissions sur ce dossier offre un droit de lecture à tout le monde et un accès complet à l'admin réseau. Ce répertoire s'appelle '''archives'''.

== Installation ==
=== wpkg ===
Je télécharge wpkg et j'ai décompacté le tout dans le répertoire \\192.168.220.10\archives.
=== Préparer le service XP sur le serveur ===
Je tripatouille en utilisant la doc sur srvany :
* Je télécharge srvany chez micro$soft : http://www.microsoft.com/downloads/details.aspx?familyid=9d467a69-57ff-4ae7-96ee-b18c4790cffd&displaylang=en. Il s'agit en fait de toute une collection d'outils pour les serveurs 2000. Seuls deux fichiers nous intéressent. Il faut donc executer l'exe, récupérer ces deux fichiers et jeter le reste !

* Je rajoute un dossier srvany dans archives et je copie dedans instsrv.exe et srvany.exe
* Je crée deux fichiers qui vont installer le service :
** install-service.js : ''Ce script va installer le service mais c'est de la magie pour moi. Il est appelé par le second''
<code>var WshShell = WScript.CreateObject("WScript.Shell");
var srvKey = "HKLM\\SYSTEM\\CurrentControlSet\\Services\\Windows Packager\\Parameters\\";
var appKey = srvKey + "Application";
var parKey = srvKey + "AppParameters";
var srvPath = WshShell.ExpandEnvironmentStrings("%SystemRoot%") + "\\System32\\cscript.exe"
var srvArgs = "\\\\192.168.220.10\\archives\\wpkg\\wpkg.js /synchronize /quiet";<-------------------- A adapter
WshShell.RegWrite(appKey, srvPath, "REG_SZ");
WshShell.RegWrite(parKey, srvArgs, "REG_SZ");</code>

** install_wpkg.bat : ''Ce script va copier les deux fichiers .exe récupérés chez Microsoft, installer le service en appelant le script précédent et lancer ce service''
<code>SET SRVPATH=\\VBOXSVR\Documents\archives\srvany <---------------------------------------------- A adapter
copy %SRVPATH%\srvany.exe %SystemRoot%\System32
copy %SRVPATH%\instsrv.exe %SystemRoot%\System32
instsrv "Windows Packager" "%SystemRoot%\System32\srvany.exe"
cscript.exe %SRVPATH%\install-service.js
net start "Windows Packager"</code>
=== Installer le service sur la station XP ===
C'est la partie la plus facile : on va jusqu'au répertoire \\serveur\archives\srvany\ et on click-clicke sur install_wpkg.bat qui installe tout bien comme il faut.
A partir de là, ça marche ! Il faut configurer les xml.

== configuration des xml ==
== Principe ==
Tout est géré par trois xml. Chacun de ces xml peut être en un seul fichier ou découpé en plusieurs xml placés dans des répertoires spcécifiques.

Le principe général est celui ci :
* chaque machine va être affecté dans un profil de machine en fonction de son nom : c'est le rôle de hosts.xml. Comme ce n'est pas très long (j'ai une ligne par salle) je n'utilise que hosts.xml (donc le répertoire hosts est vide).
* chaque profil va se voir attribué une liste de logiciel à installer. Il faut savoir que l'on peut appeler un profil dans un autre. J'ai donc :
** un profil default qui installe la base des stations (firefox, 7zip, openoffice, foxit...)
** un profil spécifique à chaque salle qui appelle le profile default et rajoute en plus des applications spécifiques. ''Par exemple'' : le profil math ajoute geogebra.
J'ai créée un xml par profil, donc le fichier profil est vide (presque) et j'ai plusieurs fichiers dans le répertoire profils
* chaque logiciel à installer est géré par un xml (je crée un xml par logiciel dans package). Ces fichiers donnent les instructions pour installer, upgrader ou supprimer le logiciel. Je vous renvois à la doc pour trouver plein de choses.

== exemples (simplifiés)==
=== hosts.xml ===

<?xml version="1.0" encoding="UTF-8"?>
<wpkg>
<host name="SDP.+" profile-id="salledesprofs" />
<host name="S006.+" profile-id="math" />
<host name="S007.+" profile-id="math" />
<host name="CDI.+" profile-id="cdi" />
<host name=".+" profile-id="default" />
</wpkg>

* Toutes les machines dont le nom commencent par SPD utiliseront le profil salledesprofs.
* Toutes les machines dont le nom commencent par S006 ou S007 utiliseront le profil math.
* Toutes les machines dont le nom commencent par CDI utiliseront le profil cdi.
* Toutes les (autres) machines utiliseront le profil default.

''Le fichier est parcouru dans l'ordre et le premier profil qui répond à la règle est validé.''

=== profiles\default.xml ===
<?xml version="1.0" encoding="UTF-8"?>
<profiles>
<profile id="default">
<variable name="SOFTWARE" value="\\192.168.220.10\archives\install" /> <---------------- A adapter
<variable name="Z" value="\\192.168.220.10\archives" /> <---------------- A adapter
<package package-id="7zip" />
<package package-id="firefox3" />
<package package-id="foxit" />
<package package-id="openoffice3" />
</profile>
</profiles>

=== profiles\math.xml ===
<?xml version="1.0" encoding="UTF-8"?>
<profiles>
<profile id="physique">
<depends profile-id="default" />
<package package-id="geogebra" />
</profile>
</profiles>

=== packages\geogebra.xml ===
<?xml version="1.0" encoding="iso-8859-1"?>
<packages>
<package
id="geogebra"
name="GeoGebra 3.0 "
revision="3.0.0.0"
reboot="false"
priority="1">
<depends package-id="java6" />
<check type="uninstall" condition="exists" path="GeoGebra" />
<check type="uninstall" condition="exists" path="GeoGebra" />
<upgrade cmd="%SOFTWARE%\geogebra\GeoGebra_3_2_0_0.exe /s" />
<install cmd="%SOFTWARE%\geogebra\GeoGebra_3_2_0_0.exe /s" />
<remove cmd='"%PROGRAMFILES%\GeoGebra\uninstaller\Uninstall GeoGebra.exe" /s' />
</package>
</packages>

== dans la vraie vie ! ==
Au lycée j'installe sur toutes les machines : firefox, openoffice, 7zip, realalternative, flashplayer (ff et ie), quicktime alternate, java, vlc...

En fonction des besoins des profs, je peux aussi déployer blender, dia, geogebra...

J'ai aussi un paquet qui crée un utilisateur local et qui change son mot de passe en upgrade. Je l'utilise car nous avons souvent des problèmes de connections qui empechent quiconque de travailler :-(.

<?xml version="1.0" encoding="UTF-8"?>
<packages>
<package
id="creer_user_local"
name="User Local"
reboot="false" priority="5"
revision="1.0">
<install cmd='cmd /c net user nom_du_user_local passwd_initial /ADD /active:yes /passwordchg:no"' />
<upgrade cmd='cmd /c net user nom_du_user_local passwd_suivant"' />
<remove cmd='cmd /c net user nom_du_user_local /DELETE"' />
</package>
</packages>

=== Et l'interface web ? ===
Pour l'instant, je me débrouille sans mais je vais jeter un coup d'oeil. Je complèterai la page au besoin !

=== C'est tout rose ? ===
OUI ! J'ai gagné énormément de temps pour toute la gestion basique du réseau, ce qui me libère pour le reste : installation de logiciels bizarres, dépanner de windows.

=== Les problèmes ? ===
J'ai eu un problème avec les variables qui ne fonctionnaient pas. J'ai réglé ceci en les déclarant dans le profil par default qui est utilisé dabns tous les autres profils. Il y a probablement une solution simple mais ça marche !

Je ne sais pas pourquoi mais msiexec refuse d'utiliser les chemins unc (\\192.168.220.10\archives\...). J'ai contourné le problème en mappant temporairement un lecteur réseau et en le libérant après l'installation :

<install cmd='%comspec% /c "net use w: \\VBOXSVR\Documents\archives\install /persistent:no"' />
<install cmd='msiexec /qn /i "w:\OOo3\openofficeorg30.msi" ALLUSERS=1 REGISTER_ALL_MSO_TYPES=1' />
<install cmd='%comspec% /c "net use w: /delete"' />

=== Les autres outils ===
J'utilise deux autres outils qui sont les compélments idéaux de wpkg :
* OScar : [http://oscar.crdp-lyon.fr/wiki/]: il s'agit d'un logiciel de création d'images de postes XP ou ubuntu. Avec OScar, on peut sauvegarder, restaurer, diffuser une image. Il y a des mécanismes assez rusés pour changer de noms, booter en pxe, mettre à jour... C'est très complet et c'est developpé par un copain. C'est un logiciel libre mais vous pouvez vous abonner à un support payant (c'est pas ruineux) au moins le temps de piger le truc !
* nlite : cet outil permet de créer un CD d'installation de XP personnalisé.

=== évolutions de mon wpkg ===
Je prévois de travailler sur les points suivants :
- intégrer wpkg et scribe : mon serveur de fichier possède un système de gestion des machines du parc par groupe (gestion des icones, des droits... Cela semble logique de réunion les deux systèmes. ''Le système de serveur de fichier se3 possède dèjà cela depuis longtemps mais mon académie n'a pas choisi se3 ;-(''
- créer un système d'installation à la demande : imaginons qu'un prof de math vient travailler au cdi avec ses élèves. Géogébra n'est pas installé mais il est disponible à l'installation. L'élève click-clicke sur un raccourci et hop, géogébra descend (c'est possible avec le commutateur /install:geogebra). Le lendemain comme géogebra ne fait pas partie du profil cdi, il est désinstallé et la station est propre. Cool ? Mais il faut réglé les problèmes de droits (travailler avec un autre service ?)
- trouver une interface web efficace et simple.
6
edits

Navigation menu