Installation dans un lycee (FR)

From WPKG | Open Source Software Deployment and Distribution
Jump to: navigation, search

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 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 faut juste modifier le chemin en doublant les \. Ce script est appelé par le second fichier.
 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");
    • 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
 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"

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é dans 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 trois autres outils qui sont les compélments idéaux de wpkg :

  • Oscar : 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é. Pour ma part, j'ai créé un cd avec XP + le pack SP3 + un pack de drivers LAN (pour les cartes réseaux modernes fonctionnet directement). Je mets le CD, j'accepte le formatage du disque, je vais boire un café et hop un XP tout neuf !
  • VirtualBox : L'outil de virtualisation nécessaire pour les tests

é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.