Menu V2 : V2: general - l'API Web-AlternD - Les specs logicielles - Template et Bureau - Les specs, v2
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:
Liste des logiciels
- Mail/Smtp : Postfix (postfix)
- Pop/Imap : Cyrus (cyrus-common-2.2)
- DNS : Bind (bind9)
- Web : Apache2 (apache2-mpm-prefork)
- Listes : Mailman (mailman)
- Php : PHP 5.2 (php5)
- Mysql : Mysql 5.0 (mysql-server-5.0)
- Webmail : IMP (imp4)
- Statistiques : 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.
