Projet OASIS PCfEngine Encadrant : M. Keryell Date : Mercredi 02 Mars 2005 Pascal Virmaud
Plan • Le Projet PCfEngine • La conduite de projet • Conclusion
Plan • Le Projet PCfEngine • Enjeux et contexte • Analyse du problème • Réalisations • La conduite de projet • Conclusion
Enjeux et contexte • Enjeux : • Faire de l’administration système automatisée • Créer un système très extensible • Contexte : • Projet OASIS : Open Administration for computer System InfraStructure • CfEngine : Configuration Engine
Plan • Le Projet PCfEngine • Contexte et enjeux • Analyse du problème • Réalisations • La conduite de projet • Conclusion
Analyse du problème 1/2 • Problème : • Contexte : larges systèmes informatiques hétéroclites. • But : Automatiser le maximum de tâches pour l’administrateur. • Comparaison avec un système immunitaire (M. Mark Burgess)
Analyse du problème 2/2 • Comment procéder ? • Auto correction depuis un état invalide • Notion de point fixe • Problèmes: • Description d’un état invalide • Risque de boucles infinies • Description de la correction
Solutions • Problème : description d’un état invalide. • Utiliser des fonctions prédicats pré écrites ou fournies par l’administrateur Prédicat := {espace disque restant < 100 Mo} • Problème : gestion de la notion de point fixe • Itérations successives • Une itération n’est entamée que si un changement a eu lieu dans l’itération précédente
Plan • Le Projet PCfEngine • Contexte et enjeux • Analyse du problème • Réalisations • La conduite de projet • Conclusion
Réalisations • Moteur de PCfEngine • Actions de bases reprises de CfEngine • Exemple d’extension • Gestion de l’édition de fichier • Documentations • Outils internes à PCfEngine
Moteur de PCfEngine • Architecture à 3 niveaux :
Actions de base 1/2 • Gestion des fichiers • Edition : AppendIfNoSuchLine, RemoveLine, CommentLine… • Règles intentionnelles de filtrage d’arbre • Tidy : suppression de types de fichiers • Comparaison à une référence • …
Actions de base 2/2 • Les règles sont spécifiées en fonction de paramètres liés aux feuilles de l’arbre (owner, size, hidden…) • Ces règles peuvent elles-mêmes s’appliquer à des arbres
Outils internes • Outils de logs • Utilisation du paradigme objet pour voir le contenu d’un fichier de manières différentes dynamiquement • Evaluation retardée de variables
Documentation en anglais • Rapport opérationnel • Documentation générale, structure • Documentation utilisateurs (illustrée d’exemples) • Documentation générée depuis le code source
Plan • Le Projet PCfEngine • La conduite de projet • tâches • Planning effectif • Objectifs • Conclusion
Tâches • Prototypage • Codage du moteur • Codage des actions de base • Codage des outils internes à PCfEngine • Codage des tests • Rédaction des délivrables • Communication avec M. Keryell
Plan • Le Projet PCfEngine • La conduite de projet • tâches • Planning effectif • Objectifs • Conclusion
Planning Effectif
Plan • Le Projet PCfEngine • La conduite de projet • tâches • Planning effectif • Objectifs • Conclusion
Objectifs 1/2 • Objectifs fixés : • Création d’une base solide et facile d’utilisation contenant : • la structure extensible • l’édition de fichiers • la gestion de fichiers • l’exécution de commandes shell
Objectifs 2/2 • Objectifs réalisés : • Création d’une base solide et facile d’utilisation contenant : • la structure extensible • l’édition de fichiers • la gestion de fichiers • l’exécution de commandes shell • Ajout d’une structure de description d’arbre intentionnelle • Ajout d’une extension RSS
Plan • Le Projet PCfEngine • La conduite de projet • Conclusion
Enrichissement personnel • Problématiques d’administration système • Langage Python version 2.4 • Système de contrôle de version : SubVersioN • Tenue d’un projet de façon individuelle • Essayer de limiter l’implicite en explicitant les choix
Conclusion • But atteint : réalisation d’un cœur extensible de système d’automatisation de tâches • Beaucoup de travail encore avant de pouvoir produire quelque chose d’utilisable en production
Liens • CfEngine par M. Mark Burgess : • http://www.cfengine.org • Site de PCfEngine : • http://pcfengine.enstb.org