Journal Présentation du projet FANI

Posté par  (site web personnel) .
Étiquettes :
0
26
juin
2005
Bonjour,

J'aimerais vous décrire le projet sur lequel je suis en train de travailler : FANI ( http://www.fani-project.org(...) ).

FANI est l'acronyme de Full Automatic Network Installer. Il s'agit d'une solution de déploiement de réseau d'hétérogène.

L'idée du projet m'est venu, il y a un an, lorsque je me suis intéressé aux solutions de déploiement automatisées pour ma distribution Linux préférée :
Debian ( http://www.debian.org/(...) )

A cette époque, j'ai découvert le logiciel FAI ( http://www.informatik.uni-koeln.de/fai/(...) ), il s'agit un ensemble de scripts Unix qui permettent d'installer une distribution Debian GNU/Linux en dix minutes.

Le logiciel fonctionne de la manière suivante : l'ordinateur démarre via le réseau sur un noyau Linux à l'aide du protocole PXE puis un agent exécute un ensemble de scriptes écrit en SHELL et Perl via un partage de fichiers NFS. Ensuite, le système s'installe automatiquement en fonction de différentes variables d'environnement. Enfin, on peut choisir le partitionnement de la machine, les logiciels à installer, leur configuration etc ...

Ce logiciel est très puissant et permet, grâce à un système de modèle d'effectuer l'installation de diffèrent type de serveur (un serveur de mail, web, fichiers, etc...) ou bien de stations de travail.

Le principal problème de ce logiciel est la difficulté pour le configurer. Malgré la très bonne documentation disponible sur le site web du projet, il est relativement difficile d'approche.
Il faut en effet, beaucoup de temps pour le déployer et arriver à obtenir les fonctionnalités dont on a besoin.

C'est la raison pour laquelle , avec un groupe d'amis, nous avons décidé de réaliser une interface graphique pour permettre à tous d'utiliser les formidables fonctionnalités de ce logiciel.

Il s'agit du projet FANI. Le cahier des charges du projet se trouve sur note site :

http://www.fani-project.org/documentation/cdc/html/fr/cdcV1.3_fr.ht(...)

Nous voulons proposer les fonctionnalités suivantes :

* détection automatique des machines présentes sur le réseau, à l'aide du logiciel arpwatch.
* inventaire matériel des machines.
* installation automatique des machines à l'aide FAI.
* support d'autres distribution Linux et de Microsoft Windows.
* configuration centralisée des machines grâce au logiciel cfengine.

L'ensemble de ces fonctionnalités seront réalisables via une interface d'administration graphique.

Le projet est composée de deux parties : un serveur qui réalise les actions et une interface d'administration qui permet de contrôler le bon fonctionnement de l'ensemble.

Le rôle du serveur est de gérer les différents fichiers de configuration de FAI et des services indispensable au bon fonctionnement de ensemble (NFS, DHCP, TFP, etc ...)

Nous avons choisi de développer le serveur à l'aide du langage de programmation Python car, celui-ci est portable, orienté objet et très puissant. De plus, les bibliothèques dont nous avons besoin sont disponibles et éprouvées.

Pour l'interface graphique nous avons choisi le « framework » Mozilla, c'est à dire le langage de description d'interface graphique XUL, le langage de script Javascript et les outils XML (XSLT, SOAP etc ...). L'ensemble de ces technologies sont décrites dans l'article suivant :

http://www.clever-age.com/veille/clever-link/xul-partie-visible-du-(...)

Ce « framework » nous offre les avantages suivants :

* il est portable et nécessite peu de dépendances (la plus part des PC sont équipés d'un Navigateur Internet)
* Il nous permet de réaliser une interface complexe avec des fonctionnalités telle que le « drag and drop ».
* Il est possible d'exécuter l'interface à distance, comme un applet Java en quelques sorte.
* De nombreuses fonctionnalités tel que le support du langage SVG ( http://www.w3.org/TR/SVG/(...) ), à terme avec le support de celui-ci dans Mozilla Firefox 1.1 nous pourrons proposer des graphiques statistiques sur le réseau.

L'interface d'administration communique avec le serveur à l'aide du protocole SOAP, ce qui nous permet :

* d'appeler des procédures à distance (RPC)
* manipuler des objets et types complexe via le réseau.
* les encapsuler dans un protocole standard, comme le protocole HTTP.
* passer à travers des proxy mandataire.

Comme l'interface s'exécute à distance il est possible de configurer le système à distance à partir de n'importe quelle machine du réseau équipé d'un navigateur.

Actuellement nous sommes huit personnes à travailler sur le projet et après un an de développement nous avons réussi à valider et à apprendre l'ensemble des ces techniques.

D'ici la fin juillet nous pourrons mettre à disposition du publique les fonctionnalités de détection automatiques des machines et d'inventaire.

Nous sommes à la recherche d'entreprises intéressées par ce produit (pour nous aider à le développer et tester) et de développeurs souhaitant y participer.

Merci
  • # FANI

    Posté par  . Évalué à 6.

    paye à boire!!
    ok j'ai compris, ------------>[]
    • [^] # Re: FANI

      Posté par  . Évalué à 1.

      Moi, je me suis dit "et merde, il va encore nous parler de l'affaire Allègre..." :)
  • # tites questions

    Posté par  . Évalué à 2.

    Quelques remarques/conseils/questions :

    - dommage qu'il n'y ait pas de screenshot sur le site web

    - Je n'ai pas trouvé (mais je n'ai pas cherché longtemps) de liste de matériel supporté par FANI. Quels sont les plateformes hardware, périfériques reconnus actuellement ? (inventaire materiel : aucune pour le moment ). Je pense qu'une liste même minime serait intéressante.

    - avez vous prévu de porter FANI pour d'autres OS ?
    En effet, des outils existent déjà pour l'installation à distance/automatique de serveurs (kickstart, autoYaSt, NAL, NIM ... par expl). Un tel projet serait intéressant pour un parc hétérogène (Aix, HpUx, Linux, Solaris, Windows)

    - y aura t il une gestion de log centralisé ?

    - l'interface permettra t elle différents niveaux de visualisation (admin/user/anonyme) ?

    - L'interface pourra t elle faire la différence entre 2 versions d'un même produit installé 2 fois sur le même serveur ? ou encore 2 fois le meme produit installé dans 2 répertoire différents ?

    - sera t il possible via des librairies spécifique d'écrire simplement des scripts d'installation/check ...

    - serait il possible d'avoir un site de demo en ligne ?

    ...

    d'autres question peut etre plus tard, pas le temps maintenant (pas le temps de lire tout ce qu'il y a sur le site non plus, gros pb dans la boite ou je travaille, beaucoup de boulot)

    P.S. ne pas prendre mal ce que j'ai dit, le projet pourrait interessé la boite dans laquelle je travaille, mais il manque beaucoup d'add-on pour remplacéer ce que nous avons déjà développé en interne

    Bon courage !!!!!

    P.S. si vous avez plus de doc et d'info (meme si c'a n'est pas propre) je suis intéressé. Je vous contacte par mail cet apres midi

    A+
    • [^] # Re: tites questions

      Posté par  . Évalué à 1.

      Et bien nous sommes en train de coder le projet. Nous avons passé pas mal de temps à faire de la recherche technologique et maintenant que tout a été décidé ça va avancer vite.

      Pour preuve, notre soutenance de mi parcourt se fera le 8 juillet (soutenance publique) et notre soutenance final vers fevrier 2006. Donc, bientôt, nous aurons plein de choses à vous montrer.

      Pour répondre à tes questions :).
      Nous avons décidé de mettre certaine limitations niveau arch et os afin d'avoir un produit à peu près fini en février 2006.
      Donc niveau arch nous nous limitons à i386 et sinon pour les OS une distribution en .deb, une en .rpm et windows sous forme de dump.

      Ceci est le minimum, si nous avançons plus vite que prévue d'autre fonctionnalités seront ajoutés.

      Ce que je tiens à préciser c'est qu'on ne va pas se limiter à juste ça :).
      Nous voulons rajouter d'autre OS, et d'autre arch, un système de configuration à distance grâce à cfengine.

      P.S: Bien sur notre projet est libre vous pouvez donc y participer via les mailing lists, svn, traduction, et correction :).
    • [^] # Re: tites questions

      Posté par  (site web personnel) . Évalué à 2.

      Bonjour,


      - dommage qu'il n'y ait pas de screenshot sur le site web

      L'interface graphique n'est pour l'instant qu'un prototype, c'est pour cette raison que nous n'avons pas mis encore de copies d'écran sur le site Internet. Par contre, tu peux trouver des screenshots qui illustrent l'avancement de l'interface graphique du projet sur notre depot subversion :
      https://svn.fani-project.org/websvn/listing.php?repname=Full+Automat(...)

      - Je n'ai pas trouvé (mais je n'ai pas cherché longtemps) de liste de matériel supporté par FANI. Quels sont les plateformes hardware, périfériques reconnus actuellement ? (inventaire materiel : aucune pour le moment ). Je pense qu'une liste même minime serait intéressante.

      Effectivement, il y a peu d'informations sur le site a ce sujet.
      En faite pour l'inventaire matériel nous utilisons le programme lshw ( http://ezix.sourceforge.net/software/lshw.html(...) ).
      Par conséquent nous avons les même fonctionnalites que celui-ci.
      - avez vous prévu de porter FANI pour d'autres OS ?

      L'application tournes sur la plus part des Unix, je pense que ta question est plus tot : "Es-ce que FANI pourra installer d'autres OS?"
      Pour l'instant nous nous concentrons sur les systèmes dont le processus d'installation est modifiable facilement et sur Microsoft Windows.
      Je ne pense pas qu'il sera possible a terme installer des système Unix propriétaire tel que HP-UX, AIX, etc ..
      - y aura t il une gestion de log centralisé ?

      Tu veux dire une gestion des log centraliser lors de l'installation (oui)
      Ou bien une centralisation des logs des machines (un syslogd centralise : non).
      - l'interface permettra t elle différents niveaux de visualisation (admin/user/anonyme) ?

      Il y'a une gestion des utilisateurs et nous allons distinguer deux rôles :
      - administrateur système
      - responsable administratif (principalement pour consulter les statistiques inventaires, etc...)
      - L'interface pourra t elle faire la différence entre 2 versions d'un même produit installé 2 fois sur le même serveur ? ou encore 2 fois le même produit installé dans 2 répertoire différents ?

      Pour la gestion des paquet nous allons reprendre le principes des outils existants, comme aptitude etc ...
      - serait il possible d'avoir un site de demo en ligne ?

      Nous aimerions bien mais pour l'instant nous n'avons pas encore les moyens pour monter un site de demo fonctionnel. (matériel surtout).
      Mais il sera possible bientôt d' exécuter à distance l'interface via le site Internet.
      P.S. si vous avez plus de doc et d'info (même si c'a n'est pas propre) je suis intéressé. Je vous contacte par mail cet apres midi

      Nous avons des listes de diffusions ici : http://www.fani-project.org/index.php?page=ml(...)

      Voila
  • # Installation automatique de machine sos windows

    Posté par  (site web personnel) . Évalué à 2.

    L'installation automatique se fait par une technique de ghost, ou plutot via un script d'installation silencieuse ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.