Menu V2 : [wiki:AlternCv2 V2: general] - [wiki:AlternCv2/APIS l'API Web-AlternD] - [wiki:AlternCv2/Specs Les specs logicielles] - [wiki:InterfaceUtilisateur Template et Bureau] - [wiki:AlternCv2/Specs_2 Les specs, v2] [[PageOutline]] = Specifications de la V2 = On indique pour chaque logiciel le ou les services concernes, le nom du package debian Plus bas, soft par soft : * On justifie ces choix, si possible en comparant avec d'autres softs, nommes par leur package debian et mis en italique. * On explique comment on implementera le lien entre le soft, puppet, les bases eventuelles, le AlternD, la norme du bureau web. L'idee est de commencer par 1 soft dans chaque service a implementer, quitte a pouvoir developper un module d'un second gestionnaire DNS par exemple, ou d'un second webserveur (lighttpd) etc. mais ce plus tard. == Architecture generale == Voir: * [https://alternc.org/svn/alternd/trunk/doc/dev/simple_configuration.dia simple_configuration.dia] [https://alternc.org/svn/alternd/trunk/doc/dev/simple_configuration.png .png] * [https://alternc.org/svn/alternd/trunk/doc/dev/cluster_configuration.dia cluster_configuration.dia] [https://alternc.org/svn/alternd/trunk/doc/dev/cluster_configuration.png .png] == Liste des logiciels == * Mail/Smtp : Postfix (''[http://packages.debian.org/stable/mail/postfix postfix]'') * Pop/Imap : Cyrus (''[http://packages.debian.org/stable/mail/cyrus-common-2.2 cyrus-common-2.2]'') * DNS : Bind (''[http://packages.debian.org/stable/net/bind9 bind9]'') * Web : Apache2 (''[http://packages.debian.org/stable/net/apache2-mpm-prefork apache2-mpm-prefork]'') * Listes : Mailman (''[http://packages.debian.org/stable/mail/mailman mailman]'') * Php : PHP 5.2 (''[http://packages.debian.org/stable/web/php5 php5]'') * Mysql : Mysql 5.0 (''[http://packages.debian.org/stable/misc/mysql-server-5.0 mysql-server-5.0]'') * Webmail : IMP (''[http://packages.debian.org/stable/web/imp4 imp4]'') * Statistiques : Awstats (''[http://packages.debian.org/stable/web/awstats awstats]'') == Justifications, integration dans Puppet et AlternD == === Postfix === * ''Comparaison'' : exim, sendmail * ''Integration'' : config par fichier main.cf et master.cf edite, virtual users en base mysql === Cyrus === * ''Comparaison'' : courier, uw-imap, dovecot * ''Integration'' : config par puppet, virtual users en base mysql partagee avec postfix, quotas par boite aussi :) === Bind === * ''Comparaison'' : maradns, tinydns ou mydns * ''Integration'' : Fichier named.conf, named.conf.options par Puppet (y compris pour la gestion secondaire), fichiers zones geres par Puppet (consulter le gars de puppet pour voir s'il a une solution simple pour ne pas faire exploser puppet si on lui demande de gerer les zones ...) === Apache2 === * ''Comparaison'' : apache1 et lighttpd * ''Integration'' : Conf geree par Puppet, VHosts geres par Puppet depuis la base de donnees. === Mailman === * ''Comparaison'' : sympa * ''Integration'' : Fichier /etc/mailman/mm_cfg.py gere par puppet, listes gerees par Puppet (utilisation des binaires de mailman, check des fichiers depuis la base, fonctions evoluees : regeneration des archives, fichiers customs d'archive ou de listinfo ...) === Php5 === * ''Comparaison'' : perl, ruby, python * ''Integration'' : configuration dans apache par vhost via puppet ? === Mysql5 === * ''Comparaison'' : postgresql, firebird * ''Integration'' : creation de bases directement depuis AlternD, gestion des droits itou. (y a-t-il un interet a utiliser Puppet ici ?) === IMP === * ''Comparaison'' : Squirrelmail, roundcube * ''Integration'' : Je ne connais pas bien imp, est-il configurable ? si oui, on gere son fic de conf par Puppet, eventuellement quelques options. === Awstats === * ''Comparaison'' : Webalizer (arf) * ''Integration'' : Configuration parametrable par modele dans Puppet, parametrable depuis le bureau (divers plugins, etc.) == AlternD == AlternD est le demon en python de gestion de l'interaction entre le bureau, les services et le systeme. Il fonctionne de maniere modulaire comme suit : * Un module par soft implementant l'API de pilotage generale des services. * Un module qui gere les utilisateurs, leurs services, quotas, droits etc. * Un core qui colle le tout de maniere coherente et fournit via XML-RPC les fonctions de l'API Web. == Bureau Web == Le bureau web est une appli php toute bete qui utilise XML-RPC pour authentifier les utilisateurs, afficher les services, permettre aux utilisateurs de parametrer leur hebergement, le tout d'une maniere plutot jolie et accessible.