Introduction à l'écriture de paquets applicatifs

  • Auteurs :
    • NicolasLebrun
  • Version : 1.0

  • Date de création :

    20/11/2014

  • Modification : Pas de modification

  • Status : En cours d'écriture

  • Relectures :
    Relu par :
    • Non relu
  • Validation :
    Validé par :
    • Non validé
  • Destinataire : Administrateurs locaux avancés

  • Commentaires :

  • Vie du document :
    • 0.1 :

      Version initiale

      20/11/2014


Warning

ATTENTION ! BROUILLON Ce document est à l'état d'ébauche et devrait s'enrichir rapidement après relecture et validation par le GIP

Le GIP Recia a en charge de fournir des stations de travail propres et maintenues, c'est à dire qui portent un système d'exploitation fonctionnel, des drivers appropriés et un antivirus à jour. Il n'est pas dans la mission première du GIP de fournir la totalité de l'offre logicielle. Cependant, un certain nombre de paquets logiciels OPSI existent déjà. Ceux-ci seront maintenus dans la mesure du possible.

Une liste est présente ici : http://opsi-doc.giprecia.fr/index.html

Pour des besoins qui vous sont spécifiques, vous serez peut-être amenés à construire vous-même des paquets.

1   Principes généraux de constitution d'un paquet OPSI

1.1   Règles à suivre

Les principes généraux sont les suivants :

  • L'installation doit rester sans intervention de l'utilisateur dans tous les cas. Il n'est pas forcément nécessaire que rien ne se passe à l'écran car il peut arriver qu'un écran fixe donne envie à l'utilisateur d'éteindre la machine violemment.

  • On trouvera sur le net plein de lieux pour trouver des switchs d'installation silencieuse (http://unattended.sourceforge.net/installers.php, http://wpkg.org/Category:Silent_Installers, https://forum.opsi.org/wiki/userspace:script_templates )

  • Le paquet logiciel doit supporter les systèmes d'exploitation suivant : WinXP SP3, Win7 32, Win7 64, Win 8

  • Si deux versions 32 et 64bits du logiciel existent, on crée un paquet qui installe automatiquement la version adaptée au système. Cela n'est pas toujours simple.

  • On ne laisse pas l'installateur mettre ses propres raccourcis (et surtout pas sur le bureau). Les raccourcis sont recréés par OPSI dans le Menu Démarrer All Users de la machine

  • Sauf exception très rare, on ne modifie pas les chemins d'installation du soft.

  • Le paquet logiciel est divisé en au minium 3 scripts :

    install.ins : qui introduit les variables utiles, comporte les instructions d'installation elles-mêmes, et crée les raccourcis

    uninstall.ins : qui introduit les variables utiles et apppelle delsub.ins

    delsub.ins : qui désinstalle la version en cours (et toutes les version antérieures supportées) et supprime les raccourcis.

    On peut faire appel à des "librairies" externes supplémentaires comme celles proposées ici (https://forum.opsi.org/wiki/userspace:opsiscript_library ou https://forum.opsi.org/wiki/userspace:check_msi-exitcode par exemple)

  • On doit pouvoir relancer une install par dessus une install déjà faite sans que celle-ci échoue.

  • L'installation d'une nouvelle version désinstalle toutes les anciennes versions (supportées)

  • Si une installation sur le partage réseau Logiciels réseau est possible (petits exécutables portables), on privilégie cette installation. Les principes évoqués précédemment restent valables.

  • Check de la version, installation des raccourcis en local sur Menu Démarrer All Users de la machine. La désinstallation

  • Dans tout paquet logiciel, on crée une variable FORCE qui permet de forcer l'installation sans vérifier le check initial. cette variable FORCE est à false par défaut. Cela permet pour un paquet instable de tenter de passer en force une nouvelle installation. Si les check initiaux sont de bonne qualité, cela ne devrait pas arriver.

  • Le déroulement de l'installation d'un paquet DOIT suivre le schéma suivant

1.2   La structure des sources d'un paquet OPSI

Lorsque vous créerez un paquet par OWM (voir OPSI/Paquets/Création)

Dans le partage sandbox, vous trouverez une arborescence de ce type.

owm-exemple/
├── CLIENT_DATA
│   ├── logoDuLogiciel.jpg
│   ├── delsub.ins
│   ├── setup.ins
│   ├── InstallateurDuLogiciel.exe
│   └── uninstall.ins
└── OPSI
    ├── control
    ├── postinst
    └── preinst

Quelques commentaires :

  • Le dossier CLIENT_DATA est celui dans lequel on intervient le plus
  • Les fichiers logoDuLogiciel.jpg et InstallateurDuLogiciel.exe sont les fichiers du logiciel
  • Le code source du paquet est constitué des fichiers .ins qui sont écrits en Winst
  • Dans le dossier OPSI, on ne touche généralement qu'au fichier control qui permet de préciser la version du logiciel, du paquet et à l'introduction d'éventuelles variables.

1.3   Déroulement de l'installation

  • Appel du setup.ins
  • Check de la version du logiciel déjà installé (check de bdr ou de version de file)
  • Si le logiciel déjà installé est de la bonne version, on informe le serveur OPSI et on sort (sauf si le paramètre FORCE est demandé)
  • Si le logiciel déjà installé est d'une version différente (normalement, une version inférieure et supportée), on lance le delsub.ins
  • Le delsub.ins désinstalle la version actuelle et toutes les versions antérieures supportées, on check les erreurs de sortie.
  • Le delsub.ins efface les raccourcis, puis rend la main.
  • Le setup.ins lance l'installation. On check les erreurs... Si l'erreur est fatale, le paquet s'interrompt et renvoie l'info au serveur OPSI.
  • En l'absence d'erreur fatale, le setup.ins efface les raccourcis générés par l'installateur, et crée uniquement les raccourcis utiles sur le Menu Démarrer All Users de la machine

1.4   Déroulement de la désinstallation

  • Appel du uninstall.ins
  • Si le logiciel déjà installé est de la bonne version, on appelle le delsub.ins.
  • Le delsub.ins désinstalle la version actuelle et toutes les versions antérieures supportées, on check les erreurs de sortie.
  • Le delsub.ins efface les raccourcis, puis rend la main.

1.5   Les outils pour écrire le paquet

Les paquets logiciels sont écrits dans un language dédié nommé Winst.

La documentation se trouve ici : https://download.uib.de/opsi4.0/doc/html/en/opsi-winst-manual/opsi-winst-manual.html

La carte de référence est ici : https://download.uib.de/opsi4.0/doc/opsi-winst-reference-card-fr.pdf

Dans OPSI, l'éditeur de texte fourni est Jedit . C'est un éditeur basé sur Java et qui est donc multiplateforme.

Le paquet Jedit fourni par OPSI comporte la coloration syntaxique pour le language Winst automatiquement.

Pour ajouter la coloration syntaxique dans Jedit si vous ne pouvez pas l'installer par opsi (chez vous par exemple), vous pouvez suivre cet article (un peu vieux, mais le principe est toujours bon) : http://wiki.lyceejacquesmonod.eu/?p=455

AdminDocs: OPSI/Paquets/Introduction (last edited 08/02/2015 08:55:09 by XavierLeHo)