déploiement

Fiche logiciel validé
  • Création ou MAJ importante : 14/05/13
  • Correction mineure : 14/05/13
Mots-clés

Jenkins : serveur d'intégration continue (développement logiciel)

Description
Fonctionnalités générales

Jenkins est un serveur d'intégration continue Open Source extensible et disposant de nombreux plugins (plus de 400) permettant de mettre en œuvre les pratiques d'Intégration Continue.

Typiquement, Jenkins exécute de manière continue la construction (build) des projets : il se connecte au gestionnaire de versions, récupère les sources du projet et exécute les directives de fabrication du logiciel (compilation, assemblage, tests, packaging, ...). Les jobs constituant les builds peuvent être exécutés sur le serveur Jenkins lui-même ou répartis sur plusieurs machines distantes. Jenkins conserve l'historique de toutes les exécutions des jobs et peut notifier par mail ou par RSS en cas erreur.

De manière plus avancée et grâce à ses plugins, Jenkins offre également des possibilités d'orchestration des builds, de différents types de tests, d'analyse statique de qualité de code et des déploiements automatisés.

Autres fonctionnalités

Ce sont les plugins de Jenkins qui permettent d'enrichir ses fonctionnalités :

  • Intégration avec différents gestionnaires de versions
  • Intégration avec différents outils de fabrication
  • Intégration avec différents outils de suivi d'incidents ou de bogues
  • Exécution de scripts à distance par SSH
  • Transfert de fichiers par SCP ou FTP
  • Transfert d'artefacts vers un repository
  • Exécution d'outils de contrôles de qualité de code
  • Exécution d'outils de tests d'intégration, de performance, fonctionnels
Interopérabilité

Jenkins permet une mise en œuvre de l'intégration continue adaptée à plusieurs environnements de développement grâce aux plugins proposant l'intégration d'une large palette d'outils de développement.

Jenkins est particulièrement adapté à l'intégration continue de projets Java mais supporte aussi d'autres langages :

Jenkins dispose notamment de plugins d'intégration vers les gestionnaires de versions dont Subversion, CVS, Git, ClearCase, Visual Source Safe, Team Foundation Server, Synergy, Mercurial, Darcs, Bitkeeper, Bazaar ,...

Parmi les outils de builds, Jenkins propose en particulier des plugins d'intégration avec Maven, Ant, Ivy, Gradle, Gnat, Phing, Make, CMake, ...

En terme de tests, Jenkins dispose de plugins permettant de publier ou d'analyser les rapports de tests de diffférents outils et, pour certains, d'exécuter lui-même les tests. Parmi ces outils on trouve JUnit, TestNG, Concordion, Fitnesse, CPPTest, Gallio, MBUnit, Grinder, JSUnit, NUnit, JMeter, Canoo, Selenium, ...

Concernant les forges ou les gestionnaires d'incidents, Jenkins propose des plugins offrant pour certains des fonctionnalités avancées d'intégration avec Trac, Mantis, Jira, TeamForge, RedMine, Bugzilla, ...

La liste de tous les plugins d'intégration existants peut être consultée sur https://wiki.jenkins-ci.org/display/JENKINS/Plugins.

Contexte d'utilisation dans mon laboratoire/service

Dans le cadre de l'industrialisation de ses développements Java, la DSI de l'Inra utilise le serveur d'intégration continue Jenkins intégré avec Maven, Apache Archiva et Sonar.

Limitations, difficultés, fonctionnalités importantes non couvertes

Même si de nombreux langages sont supportés, la richesse de Jenkins se situe essentiellement autour du développement Java.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Jenkins est aussi distribué sous forme de paquets natifs pour les environnements suivants :

  • Windows
  • Ubuntu/Debian
  • Red Hat/Fedora/CentOS
  • Mac OS X
  • openSUSE
  • FreeBSD
  • OpenBSD
  • Solaris/OpenIndiana
  • Gentoo

Jenkins est une application Web en Java et se déploie de manière autonome dans un Conteneur Web (type Tomcat).

Plates-formes

Jenkins peut fonctionner sur toutes les plates-formes pouvant exécuter une JVM.

Logiciels connexes

L'utilisation d'un serveur d'intégration continue nécessite généralement la mise en œuvre d'un certain nombre de pratiques dont l'automatisation de la fabrication du logiciel (build), l'écriture et l'automatisation des tests et éventuellement un repository d'artefacts. Jenkins s'utilise donc généralement avec les outils associés à ces pratiques.

  • Logiciels de Tests (xUnit, TestNG, JMeter, ...)
  • Logiciels de construction (Ant, Maven, Ivy, Gradle, Make, ...)
  • Repository d'artefacts (Archiva, Nexus, Artifactory, ...)
Autres logiciels aux fonctionnalités équivalentes

Parmi les serveurs d'intégration continue libres ou gratuits, on trouve également :

Parmi les serveurs d'intégration continue distribués sous licence commerciale, on trouve :

Des offres de plates-formes d'intégration continue basée sur Jenkins en mode SaaS sont également disponibles comme par exemple CloudBees pour les développements Java ou ShiningPanda pour les développements Python.

Environnement de développement
Type de structure associée au développement

Les développements de Jenkins sont assurés par la communauté jenkinsci. Quelques sociétés sponsorisent également le projet.

Eléments de pérennité

Jenkins est très largement utilisé (https://wiki.jenkins-ci.org/pages/viewpage.action?...) et plusieurs projets, Open Source ou non, sont dérivés de Jenkins.

Références d'utilisateurs institutionnels

La DSI de l'Inra utilise Jenkins comme serveur d'intégration continue.

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Les différentes listes de diffusion sont présentées à l'adresse http://jenkins-ci.org/content/mailing-lists.
Les différents supports sont accessibles depuis le Wiki Jenkins à l'adresse https://wiki.jenkins-ci.org/

Documentation utilisateur

L'essentiel de la documentation est fournie par le Wiki Jenkins ainsi que le livre Jenkins : The Definitive Guide qui est distribué gratuitement sous forme de PDF.

Divers (astuces, actualités, sécurité)

Originellement, ce logiciel a été créé par Kohsuke Kawaguchi sous le nom de Hudson et était hébergé sur la plate-forme java.net. Suite à l’acquisition de Sun par Oracle, certains désaccords et incidents ont conduit le fondateur à migrer et renommer le projet sous le nom de Jenkins (voir http://jenkins-ci.org/content/whos-driving-thing, http://jenkins-ci.org/content/hudsons-future et http://jenkins-ci.org/content/jenkins)

Contributions

Il est possible de supporter Jenkins soit par un don, soit par une contribution.

Fiche logiciel validé
  • Création ou MAJ importante : 12/03/12
  • Correction mineure : 28/12/13
  • Rédacteur de la fiche : Stéphane Louazon - Direction du Système d'Information DSI (Université Rennes 2)
  • Relecteur(s) : Maurice Libes (OSU Institut Pytheas - UMS 3470 CNRS)
  • Responsable thématique : Maurice Libes (OSU Institut Pytheas - UMS 3470 CNRS)
Mots-clés

FOG : clonage et déploiement de système d'exploitation et de logiciels sur des postes PCs

Description
Fonctionnalités générales

FOG, pour Free Open-Source Ghost, est une solution de clonage et de déploiement de systèmes d'exploitation et de logiciel sur des postes PCs. Les systèmes d'exploitations supportés sont Windows 98/2000/XP/Vista/7 et Linux.

FOG s'installe sur un serveur LAMP (architecture Linux+Apache+MySQL+PHP) et permet le déploiement de systèmes via le réseau en s'appuyant sur les protocoles DHCP, PXE, UDPCast, NFS et TFTP. L'administration centralisée se fait via une interface web et permet de gérer l'ensemble des postes unitairement ou par groupe selon que le déploiement se fait en unicast ou multicast.

Autres fonctionnalités
  • Déploiement de logiciels.

  • Installations automatisées d'imprimantes locales.

  • Wake On Lan, insertion dans une base Active Directory, reboot, etc.

  • Multiples services de boot : diagnostic mémoire, diagnostic disque, antivirus, récupération de fichiers, effacement de disque.

Interopérabilité
  • Les images des postes sont au format Partimage

  • Les scripts sont en shell unix et en PHP.

  • Le service FOG pour les postes Windows est développé en C et C#.

  • La base de données est du MySql.

Contexte d'utilisation dans mon laboratoire/service

Utilisé pour déployer Windows XP et Windows 7 sur l'ensemble des PCs (bureau et portables) de l'Université Rennes 2, soit à peu près 2000 postes.
Nous sommes une équipe de 7 techniciens qui intervenons sur l'ensemble du parc de PCs. FOG nous permet quotidiennement d'installer de nouveaux postes, ou de réinstaller rapidement (panne, mise à jour, etc ...) ceux en production. Actuellement nous avons 4 images différentes en production.

La fonction multicast de groupe de machines s'avère indispensable pour la gestion de salles de cours informatiques et déployer de multiples images en parallèle.

Les multiples services de boot nous permettent de faire un diagnostic matériel de premier niveau (test mémoire et test disque) et logiciel (antivirus).

Le service FOG installé sur les postes Windows nous permet d'installer certains logiciels et de programmer une réinstallation complète du poste.

Limitations, difficultés, fonctionnalités importantes non couvertes
  • Il n'y a que 2 niveaux utilisateur possibles : "regular user" et "mobile user". Le niveau "regular user" couvre l'ensemble des fonctionnalités de FOG, tandis que le niveau "mobile user" permet uniquement une réinstallation du poste. Des niveaux intermédiaires seraient utiles afin de se répartir les rôles de la gestion du parc.

  • il n'y a pas d'équivalent du service FOG Windows pour déployer des clients Linux.

Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré

Aucune.

Plates-formes

L'installation de FOG est automatisée pour les distributions Ubuntu, CentOS, et RHEL.

Logiciels connexes

LAMP pour le serveur

Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Type de structure associée au développement

Les développeurs principaux sont Chuck Syperski et Jian Zhang, IT à l'université "DuPage" dans l'Illinois (http://www.dupage88.net/).

Eléments de pérennité

Projet sourceforge depuis juillet 2007, les statistiques du projet montrent une activité croissante jusqu'à aujourd'hui :
http://sourceforge.net/project/stats/detail.php?gr...

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur
Divers (astuces, actualités, sécurité)
Contributions

Les piles BitNami : pour installer plus facilement des logiciels open source

Fiche ressource Article, événement, site web...
  • Création ou MAJ importante : 19/04/10
  • Correction mineure : 19/12/11
Mots-clés

Les piles BitNami : pour installer plus facilement des logiciels open source

Les "BitNami stacks" sont des packages qui permettent de faire tourner tout une gamme de produits open source avec le minimum d'efforts de déploiement.

Certains logiciels open source sont assez délicats à installer, en particulier du fait qu'ils s'appuient sur tout un environnement déjà fonctionnel, et parfois complexe. Une application Web par exemple requiert souvent d'avoir préétabli un environnement serveur Web/ PHP/MySQL, ou Python, ou TomCat etc.

Les environnements xAMP avaient déjà simplifié le problème pour le trio Apache/PHP/MySQL, mais BitNami va beaucoup plus loin dans la facilité et la souplesse de mise en œuvre de cette approche. On peut par exemple télécharger une "pile" Drupal et lancer une instance Drupal sur son poste de travail par un simple double-clic sans aucune interférence avec l'environnement logiciel préexistant sur ce poste de travail.

Ça c'est pour la facilité. Mais la souplesse de mise en œuvre est aussi très intéressante. BitNami permet :

  • d'installer sa propre version d'"infrastructure BitNami" (généralement Web), sur laquelle on pourra faire tourner un logiciel open source également fourni par le site,
  • de lancer des stacks intégrés "infrastructure+application" d'un simple double-clic,
  • de faire tourner ce logiciel open source dans une machine virtuelle optimisée pour (c'est l'approche "appliance") ; il faut dans ce cas là avoir à disposition un mécanisme de gestion de machines virtuelles comme VirtualBox,
  • de lancer un stack "Linux+infrastructure+application" sur le cloud ; là il faut disposer d'une machine "cloud" chez Amazon par exemple.

Bien sûr, l'environnement fourni par BitNami est rarement celui requis par un déploiement au sein d'une infrastructure de laboratoire et encore moins de mésocentre ou de centre de calcul. Mais il peut être d'une aide inestimable pour les tests voire maquettages quand le produit logiciel visé requiert une infrastructure logicielle complexe, ou qui ne tourne pas en natif sur son poste de travail.

La liste des produits actuellement (avril 2010) disponibles sur le site est :

Infrastructure

DjangoStack
JRubyStack
LAMPStack
LAPPStack
MAMPStack
MAPPStack
RubyStack
SAMPStack
WAMPStack
WAPPStack

Blog

Roller
Typo
WordPress (voir la fiche PLUME)

Bug-Tracking

Mantis (voir la fiche PLUME)
Redmine (voir la fiche PLUME)
Trac (voir la fiche PLUME)

Business Intelligence

JasperServer

CMS

Alfresco
Drupal (voir la fiche PLUME)
Enano CMS
Joomla! (voir la fiche PLUME)
KnowledgeTree
Radiant CMS
eZ Publish
ocPortal

CRM

SugarCRM

ECM
Alfresco
KnowledgeTree

Forum

phpBB

Photo Sharing

Coppermine Photo Gallery
Gallery (voir la fiche PLUME)

Planning

Tracks

Poll Management

Opina

Portal Server

JasperServer
Liferay

Project Management

Redmine (voir la fiche PLUME)

Version Control

Subversion (voir la fiche PLUME)

Wiki

DokuWiki (voir la fiche PLUME)
MediaWiki (voir la fiche PLUME)
Trac (voir la fiche PLUME)

e-Commerce

Spree

eLearning

Moodle (voir la fiche PLUME)

Fiche logiciel validé
  • Création ou MAJ importante : 04/05/12
  • Correction mineure : 21/09/13
  • Rédacteur de la fiche : Gérald Becker - IUT de Provence, Site d'Arles (Aix Marseille Université)
  • Relecteur(s) : Didier Benza (INRIA Sophia)
    Gérard Milhaud (ESIL - Université de la Méditerranée)
  • Responsable thématique : Maurice Libes (OSU Institut Pytheas - UMS 3470 CNRS)
Mots-clés
Pour aller plus loin

DRBL/Clonezilla : Diskless Remote Boot in Linux, clonage de stations

Description
Fonctionnalités générales

DRBL (Diskless Remote Boot in Linux) permet de mettre à disposition un environnement système léger pour les machines clientes. Il intégre clonezilla, utilitaire de clonage des disques et des partitions similaire à Symantec Ghost.
Il est utilisé, le plus souvent, pour le clonage massif de postes de travail et le déploiement rapide de salles informatiques.

Les fonctionnalités principales à mentionner sont :

  • Il s'appuie exclusivement sur des logiciels libres (partimage, ntfsclone, partclone) pour cloner des disques et partitions de systèmes Windows, Linux et MacOs (fonctionnalité en test pour le dernier OS cité).

  • La restauration des images des machines peut se faire en unicast/broadcast/multicast. Pour cela, il utilise udpcast, plus fiable et plus rapide.

  • En utilisant drbl-winroll, le nom de la machine, son groupe et le SID des machines Windows pourront être changés automatiquement.

  • Les systèmes de fichiers supportés sont ext2, ext3, ext4, reiserfs, reiser4, xfs, jfs, fat, ntfs, hfs+, ufs, vmfs3

  • Il supporte lvm2 (lvm v1 ne l'est pas).

  • Les bootloader syslinux et grub (v1 et v2) peuvent être réinstallés.

Clonezilla peut être utilisé seul. Il permet notamment de cloner très rapidement une partition, un disque dur entier via de multiples méthodes (disque local, cd/dvd, ssh, samba, nfs, ...) et de le restaurer là aussi sur un ou plusieurs disques durs, une ou plusieurs machines. La version live-cd (live clé usb) est indispensable.

La version live-cd serveur permet sans aucune installation de cloner une salle en un temps record, les images à restaurer pouvant être contenues sur un support usb, sur le disque dur de la machine servant de serveur, sur un partage sur le réseau, ...

La version clonezilla serveur permet d'avoir son serveur toujours opérationnel. L'intégration d'un serveur clonezilla dans un environnement Linux se fait sans soucis quand on maîtrise bien DHCP et le boot PXE sur TFTP (seuls éléments de la configuration un peu délicat à gérer).

La force de Clonezilla est sa vitesse et le post paramètrage : il est vraiment incroyablement rapide en multicast.

Clonezilla est une parfaite illustration du principe du KiSS : DRBL/LTPS, patimage, ntfsclone, dd, udpcast, dhcp3-d, tft, ssh, ... reliés par des scripts.

Clonezilla est idéal pour la gestion de machines en double, triple ou quadruple boot.

Autres fonctionnalités
  • A l'instar de LTSP (Linux Terminal Server Project), DRBL permet de mettre à disposition un environnement système pour les clients qui peuvent booter en utilisant PXE/etherboot. Une version testing et une stable sont disponibles.

  • Deux versions sont disponibles, l'une basée sur Debian, l'autre basée sur Ubuntu, afin de proposer les supports matériels les plus récents. Chacune de ces versions est disponible en version stable et testing.

Contexte d'utilisation dans mon laboratoire/service

DRBL est utilisé à l'IUT d'Avignon et sur l'ensemble de l'Université. Il permet :

  • de restaurer une image sur le disque des machines en salles,

  • d'utiliser une machine d'une salle comme un client leger utilisant le système d'exploitation du serveur DRBL.

DRBL/CloneZilla est opérationnel depuis plus de 3 ans sur des salles multiboot Windows/Linux.

Utilisé également à l'IUT de Provence, Arles, pour cloner les salles ou tout autre ordinateur, Windows/Linux.

Limitations, difficultés, fonctionnalités importantes non couvertes
  • Peu documenté.
  • Les machines cibles doivent être dans un réseau privé.
  • Pas d'interface graphique intégrée.
Environnement du logiciel
Distributions dans lesquelles ce logiciel est intégré
  • Debian / Ubuntu,
  • B2D,
  • Fedora Core / Fedora / CentOS.
  • Mandrake,
  • Scientific Linux / RedHat Linux / RHEL,
  • SuSE / OpenSuSE.

Il est possible que DRBL ne fonctionne pas dans d'autres distributions.

Plates-formes

Linux uniquement

Logiciels connexes

udpcast, partimage, ntfsclone, partclone, dhcp3-server, tftpd

Autres logiciels aux fonctionnalités équivalentes
Environnement de développement
Environnement utilisateur
Liste de diffusion ou de discussion, support et forums
Documentation utilisateur

Le site clonezilla.org est une grosse source d'information. Vous y trouverez les commandes pour mettre à jour les noyaux de vos images PXE afin de supporter les derniers matériels et beaucoup d'autres choses.

Ces 2 URL sont particulièrement utiles :

Une documentation de P.Peter sur Framasoft, un peu ancienne mais toujours d'actualité, existe et permet de mettre en place le serveur assez rapidement.

Fiche logiciel validé
  • Création ou MAJ importante : 21/05/10
  • Correction mineure : 10/12/10
  • Rédacteur de la fiche : Gérard Milhaud - un des concepteurs de JeDDLaJ - Ecole supérieure d'ingénieurs de Luminy (ESIL) (Université de la Méditerranée)
  • Relecteur(s) : Sylvain Corcoral (LMGM jusqu'en mars 2010)
    Geoffroy Desvernay (CRI Ecole Centrale de Marseille)
  • Responsable thématique : Maurice Libes (OSU Institut Pytheas - UMS 3470 CNRS)
Mots-clés
Pour aller plus loin
  • Fiches logiciel PLUME connexes : , , , ,

JeDDLaJ : déploiement d'OS et de paquetages logiciels

Description
Fonctionnalités générales

JeDDLaJ est un système de déploiement d’images disque pour postes de travail basé sur le logiciel REMBO et interfacé avec une base MySQL. Le clonage des PC se pilote via le web.
Le but premier de JeDDLaJ est de faciliter le déploiement et la gestion d’un parc informatique hétérogène de PC (type UFR d’université) tant au point de vue matériel que logiciel.
Il permet :

  • la détection automatique et l'enregistrement de la configuration matérielle des PC lors de leur premier boot, dans une base MySQL ;
  • la définition d'une configuration logicielle à cloner : ajout/retrait de systèmes d’exploitations et de logiciels, et des caractéristiques d’une machine (partitionnement, résolution, affiliation Windows…) ou d’un groupe de machines par simple(s) clic(s) depuis l’interface WEB ;
  • la gestion automatique du multiboot (Linux et Windows) ;
  • la gestion des erreurs au cours du déploiement avec choix prédéfinis d’actions à réaliser ;
  • la gestion avancée des groupes de machines par simple(s) clic(s) depuis l’interface WEB ;
  • la copie logique d’une machine ou d’un groupe de machines par simple(s) clic(s) depuis l’interface WEB ;
  • la création d’images systèmes via une interface HTML-like sur les postes clients, avec possibilités de partir d’une image utilisée par une machine de plus proche architecture matérielle ;
  • la création d’images de logiciels via une interface HTML-like sur les postes clients.
Autres fonctionnalités
  • vue synoptique du parc informatique depuis un navigateur WEB quelconque : possibilité de voir aussi bien la version de Mozilla installée sur une machine que le nombre de slots mémoire de cette dernière ;
  • réduction du nombre d’images (systèmes et paquetages logiciels) nécessaires grâce à l’application de scripts de post-installation ;
  • déploiement d’une image Windows sur n’importe quelle partition indépendamment de la partition de création. De même pour Linux, l’image peut être déployée sur n’importe quel schéma de partitionnement ;
  • facilitation du déploiement d’images auto-adaptatives sous Windows en gérant les images 'sysprep' et adoptant le déploiement d’images de drivers uniformisés DriverPacks. De même pour Linux, le déploiement d’images auto-adaptatives est rendue possible grâce à la base de connaissances des composants matériels de JeDDLaJ modifiant à la volée les fichiers de configuration du système ;
  • réveil des machines supportant le wake-on-lan depuis l’interface WEB de JeDDLaJ ;
  • interface en mode consultation.
Contexte d'utilisation dans mon laboratoire/service

JeDDLaJ permet à notre toute petite équipe (3) de gérer facilement au quotidien notre parc de 350 PC aux architectures matérielles et configurations logicielles très diverses. Nous pouvons répondre de façon très réactive :

  • aux demandes d’installation de logiciels (déploiement en quelques clics depuis le WEB s’ils sont dans notre base ; sinon installation (une seule fois) sur n’importe quelle machine disponible du parc et déploiement) ;
  • aux réinstallations suite à des dysfonctionnements logiciels où des pannes disques ;
  • aux installations de nouveaux postes ;

La possibilité de constituer des groupes et des sous-groupes de machines permet une organisation logique :

  • facilitant les modifications massives ;
  • améliorant la vue du parc, et pouvant être parcourue via une interface de consultation par les utilisateurs (par exemple les personnes chargées des réservations des salles).
Environnement du logiciel
Plates-formes

Unix-like, Windows

Logiciels connexes
  • Obligatoire : IBM Tivoli Provisioning Manager for OS Deployment (anciennement REMBO)
  • Obligatoire : serveur Web type Apache Fiche Plume avec support PHP Fiche Plume
  • Obligatoire : serveur MySQL Fiche Plume
  • Obligatoire : passerelle ODBC/JDBC
Environnement de développement
Type de structure associée au développement

Service informatique de l'ESIL

Références d'utilisateurs institutionnels

Utilisés par ESIL, Ecole Centrale Marseille, Ecole Polytech' Marseille, Université de Nouvelle-Calédonie, Ecole de Journalisme de Marseille, Centre d'Océanologie de Marseille, Université de Montpellier, IUT Bayonne, Université de Bretagne Sud et peut-être d'autres...

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Le forum de référence depuis février 2009 : http://sourcesup.cru.fr/forum/forum.php?forum_id=1532

Documentation utilisateur
Fiche logiciel validé
  • Création ou MAJ importante : 27/08/08
  • Correction mineure : 11/09/13
Fiche archivée
Le rédacteur n'utilise plus l'outil et ne souhaite pas poursuivre le suivi de cette fiche. De plus, le logiciel n'est plus maintenu depuis maintenant un moment.
Mots-clés

PKGI : création rapide d'environnements applicatifs indépendants sous Debian

Cette fiche n'est plus à jour. Elle a été archivée pour la raison exposée ci-contre.
Description
Fonctionnalités générales

PGKI permet de générer une arborescence de fichiers et de répertoires pour démarrer un projet. Ainsi, on peut installer très facilement plusieurs modules :

  • Un serveur Apache
  • Un serveur MySql
  • Un serveur Tomcat
  • Le module PHP pour Apache
  • Un serveur openLDAP
  • etc...

Automatiser la création d’une arborescence permet d'uniformiser les structures des applications et de faciliter le déploiement et l’installation d’une application sur différentes machines (typiquement une machine de production, une machine de développement, une machine de tests).

PKGI se base sur une série de templates de fichiers de configuration et de scripts.

Autres fonctionnalités

La particularité de PKGI, contrairement à ce qui se fait dans les distributions Linux en règle générale, est de pouvoir déployer une application de type LAMP dans un répertoire indépendant et non dans les répertoires standards comme le fait par exemple le package RPM task-lamp de chez Mandriva.

Contexte d'utilisation dans mon laboratoire/service

PKGI est utilisé à l'INIST-CNRS ( http://www.inist.fr ) pour gérer les applications de type LAMP.

Environnement du logiciel
Plates-formes

PKGI ne fonctionne que sur des serveurs Linux Debian.

Environnement de développement
Type de structure associée au développement

aucune

Eléments de pérennité

utilisé par l’INIST-CNRS.

Références d'utilisateurs institutionnels

INIST-CNRS : http://www.inist.fr/

Environnement utilisateur
Liste de diffusion ou de discussion, support et forums

Le projet est hébergé par la plateforme SourceSup : http://sourcesup.cru.fr/projects/pkgi/

JeDDLaJ

DEVA : Nom du logiciel: 
JeDDLaJ (Je Déploie Dans La Joie)
DEVA : URL site Web du logiciel: 
DEVA : Licence du logiciel: 
GPL
DEVA : Identifiant PLUME de l'auteur de la soumission (ne pas modifier): 
Gérard Milhaud
DEVA : Prénom de l'auteur de la soumission: 
Gérard
DEVA : Nom de l'auteur de la soumission: 
Milhaud
DEVA : Email de l'auteur de la soumission: 

g [at] esil [dot] univmed [dot] fr

DEVA : Laboratoire ou service de l'auteur de la soumission: 

ESIL

DEVA : Tutelles labo/service auteur soumission: 

Univ de la Méditerranée

DEVA : Autres informations sur l'auteur de la soumission: 

Autre auteur : Frédéric Bloise, même adresse, e-mail : f [at] esil [dot] univmed [dot] fr

DEVA : Description courte du logiciel: 
Déploiement d'OS et de paquetages logiciels
DEVA : Fonctionnalités générales du logiciel: 

Le but premier de JeDDLaJ est de faciliter le déploiement et la gestion d’un parc informatique de PC hétérogène tant au point de vue matériel que logiciel ET dont la configuration logicielle est amenée à changer fréquemment (type UFR d’université).

  • modification de la configuration logicielle (ajout/retrait de systèmes d'exploitations et de logiciels) et des caractéristiques (partitionnement, résolution, affiliation Windows,...) d’une machine ou d’un groupe de machines par simple(s) clic(s) depuis l’interface WEB;
  • détection automatique et intégration dans la base de toute la configuration matérielle lors du premier boot du PC ;
  • gestion automatique du multiboot (Linux et Windows) ;
  • gestion des erreurs au cours du déploiement avec choix prédéfinis d'actions à réaliser ;
  • gestion avancée des groupes de machines par simple(s) clic(s) depuis l’interface WEB ;
  • copie logique d'une machine ou d'un groupe de machines par simple(s) clic(s) depuis l’interface WEB ;
  • création d'images systèmes via une interface HTML-like sur les postes clients, avec possibilités de partir d'une image utilisée par une machine de plus proche architecture matérielle ;
  • création d'images de logiciels via une interface HTML-like sur les postes clients.
DEVA : Autres fonctionnalités du logiciel: 
  • vue synoptique du parc informatique depuis un navigateur WEB quelconque : possibilité de voir aussi bien la version de Mozilla installé sur une machine que le nombre de slots mémoire de cette dernière ;
  • réduction du nombre d'images (systèmes et paquetages logiciels) nécessaire grâce à l'application de scripts de post-installation ;
  • déploiement d'une image Windows sur n'importe quelle partition indépendamment de la partition de création. De même pour Linux, l'image peut-être déployée sur n'importe quel schéma de partitionnement ;
  • facilitation du déploiement d'images auto-adaptatives sous Windows en gérant les images sysprepées et adoptant le déploiement d'images de drivers uniformisés DriverPacks. De même pour Linux, le déploiement d'images auto-adaptatives est rendue possible grâce à la base de connaissances des composants matériels de JeDDLaJ modifiant à la volée les fichiers de configuration du système ;
  • réveil des machines supportant le wake-on-lan depuis l'interface WEB de JeDDLaJ ;
  • interface en mode consultation.
DEVA : Contexte d'utilisation du logiciel: 

JeDDLaJ permet à notre toute petite équipe (3) de gérer facilement au quotidien notre parc de 350 PC aux architectures matérielles et configurations logicielles très diverses. Nous pouvons répondre de façon très réactive :

  • aux demandes d'installation de logiciels (déploiement en quelques clics depuis le WEB s'ils sont dans notre base ; sinon installation (une seule fois) sur n'importe quelle machine disponible du parc et déploiment) ;
    - aux réinstallations suite à des dysfonctionnements logiciels où des pannes disques ;
  • aux installations de nouveaux postes ;

La possibilité de constituer des groupes et des sous-groupes permet une organisation logique :

  • facilitant les modifications massives ;
  • améliorant la vue du parc, et pouvant être parcourue via une interface de consultation par les utilisateurs (par exemple les personnes chargées des réservations des salles).
DEVA : Raisons du développement: 
  1. le très grand nombre de postes, la diversité de leur architecture, les configurations logicielles très diverses (5 filières spécialisées à l'ÉSIL, personnels,...) et changeantes dans le temps (formations, intervenants divers,...) ...face à l'indigence des ressources humaines, nous ont poussé à nous doter d'un logiciel de déploiement propriétaire puissant (langage de scripting, manipulations des systèmes de fichiers (FAT,NTFS et EXT2), connexions possibles à des services tiers par tcp, multicast, images incrémentales, répertoires partagés et gestion d'un cache images,...) : Rembo Toolkit 2;
  2. cependant le logiciel présentait une interface peu satisfaisante : visibilité du parc matériel et logiciel très limitée, informations stockées sur le serveur Rembo sans moyen d'interrogation puissant et scriptable, déploiement nécessitant la réutilisation de scripts Rembo-C et la manipulation de variables dédiées... Donc fonctionnalités présentes mais pénibles à mettre en oeuvre pour un usage quotidien, et informations insuffisamment accessibles ;
  3. ce qui nous a amené à écrire une solution permettant de piloter le parc informatique en nous appuyant sur le logiciel Rembo mais ne nécessitant aucune connaissance informatique dans son utilisation.
DEVA : Etat de la documentation: 
  • Installation : disponible, à jour et complète
  • Administration : disponible et à jour
  • Utilisation : disponible, pas totalement complète
DEVA : URL de la documentation: 
DEVA : Inter-opérabilité du logiciel: 
  • les données de JeDDLaJ sont stockées dans une base de données MySQL ;
  • l'interface utilisateur de JeDDLaJ est écrite en PHP et Javascript compatible avec les navigateurs de types IE, Mozilla, Safari, Konqueror ;
  • les fonctionnalités de déploiement de JeDDLaJ exécutées côté client s'appuient sur le logiciel propriétaire Rembo. Les scripts écrits dans le langage de ce logiciel (Rembo-C) ont été adaptés au fur et à mesure de ses nouvelles versions tout en restant compatible avec la version initiale utilisée : version 2,4 et 5 (appelée IBM TPMfOSd)
  • afin de rester pérenne, JeDDLaJ utilise sa propre base de connaissances de composants physiques grâce à son interface d'importation des fichiers de descriptions du logiciel libre discover-data.
DEVA : Briques libres utilisées: 
  • Apache (GPL)
  • PHP (GPL)
  • MySQL (GPL)
  • MySQL connector/ODBC (GPL)
  • discover-data (GPL)
DEVA : Architecture du logiciel: 
  • un serveur MySQL hébergeant la base de données JeDDLaJ où sont modélisés les ordinateurs, les logiciels et les relations qui lient ces 2 entités ;
  • un serveur Apache+PHP présentant les pages JeDDLaJ permettant de modifier les informations de la base au travers d'abstractions de celles-ci ;
  • un serveur Rembo (logiciel propriétaire) délivrant aux postes clients un pré-OS via le protocole PXE permettant l'exécution des scripts JeDDLaJ écrits en Rembo-C qui vont mettre en adéquation la configuration logicielle réelle des postes avec celle décrite dans la base ;
  • une passerelle ODBC (MySQL connector/ODBC) permettant au serveur Rembo d'interroger la base MySQL.
DEVA : Langages de programmation du logiciel: 
  • PHP
  • Rembo-C
  • SQL
  • HTML
  • Javascript
  • Expect
  • VisualBasic
  • Perl
  • bash
DEVA : Volume du logiciel: 

14000 lignes de code

DEVA : Qualité du logiciel: 
  • code en production depuis quelques années qui a été corrigé, amélioré et enrichi ;
  • code testé, validé et utilisé dans des établissements présentant des environnements systèmes différents.
DEVA : Version actuelle du développement: 

1.6 IBE+

DEVA : Début du développement: 

2002

DEVA : Nombre de versions précédentes du développement: 

3

DEVA : Temps développement effectué: 
6
DEVA : Utilisation actuelle du logiciel: 

En production dans l'UFR ESIL de l'université de la Méditerranée, à l'Ecole centrale de Marseille, à l'université de Montpellier et potentiellement sur d'autres sites universitaires (historiquement Bretagne Sud, Bayonne mais nous n'avons plus de nouvelles)...

DEVA : Fonctionnalités... à ajouter: 
  • documentation utilisateur à compléter et à actualiser ;
  • compléter les commentaires du code ;
  • tests avancés à réaliser pour valider la compatibilité de l'ensemble des scripts Rembo-C avec la dernière version de Rembo (IBM TPMfOSd) et les modifier s'il y a lieu.
DEVA : Besoins nécessaires pour finaliser: 

2 mois/homme

DEVA : Evolutions envisagée à long terme: 
  • développement d'un agent JeDDLaJ complétant les fonctionnalités REMBO (permettre, depuis le serveur Rembo, une connexion sécurisée en mode OS démarré sur les machines gérées pour le lancement de commandes quelconques, pister le processus d'installation d'un logiciel afin de générer automatiquement le fichier finalisé permettant la fabrication du package, etc.) ;
  • une plate-forme d'échanges entre sites des logiciels libres imagés par le serveur Rembo ;
  • gestion de logiciels avec licences propriétaires ;
  • gestion des dépendances des logiciels (à l'heure actuelle gérée de façon minimale) ;
  • délégation des droits sur l'interface.
DEVA : MOTS CLES de la fiche: 
.
Syndiquer le contenu