XHTML.net

Technology talks by Loïc d’Anterroches

News, articles, PHP, scripts, XHTML/CSS, …

  1. Home
  2. News

8 astuces pour bien développer une application web

The 2008-05-09 at 07:59 by Loïc d'Anterroches filed under News.

Voici une petite liste de choses auxquelles il faut bien penser quand on développe une application web. Cela provient de toutes les erreurs que j’ai faites, donc bon, si vous avez d’autres idées, n’hésitez pas à les mettres en commentaires :

  1. Avoir un serveur de production, un de test et un de développement. Ils peuvent être sur la même machine physique au besoin, mais faites la séparation code, fichiers de données et base de données.
  2. Pensez à la localisation dès le début. Dans la majorité des cas, cela ne prend pas de temps de le faire dès le début, mais le faire à la fin est une galère incroyable.
  3. Une méthode pour créer un projet propre en une ligne de commande. Supposez que vous faites une application web pour votre site web, en une ligne de commande vous devez pouvoir installer un nouveau site web avec aucun contenu (au moins pour la partie fichiers de données, code et base de données, la configuration du serveur peut se faire à la main).
  4. Une commande à taper pour mettre en ligne une nouvelle version ou revenir en arrière. Utilisez un bon script shell, Fabric, Capistrano pour cela.
  5. Un environnement de test propre. Idem, en une commande vous devez pouvoir vous créer un environnement de test propre pour tester votre application.
  6. Tests unitaires. C’est le plus dur, d’ailleurs je n’ai toujours une bonne méthode dans Pluf pour faire ces tests. Pour le moment, j’utilise twill pour tester les vues et PHPUnit pour la logique.
  7. Gestionnaire de révisions. C’est maintenant un standard, mais c’est bon de le répéter, utilisez Subversion, CVS, Bazaar, Git ou autre chose, mais utilisez un gestionnaire de révisions de votre code et utilisez aussi un système pour gérer les révisions de votre schéma de base de données.
  8. Payez vos dettes régulièrement. Vous ne devez pas laisser du mauvais code dans votre système, ce mauvais code est une dette que vous traînez…

En gros, automatisez votre méthode de développement pour limiter les freins à l’évolution de votre code.

D’autres points auxquels il faut penser ?

Votre site est accessible. Et vos cartes de visite, elles "braille" ?

The 2008-04-30 at 09:23 by Loïc d'Anterroches filed under News.

Cela faisait longtemps que je voulais faire cela, des cartes de visite accessibles. Tout d’abord, quand j’ai créé mes cartes pour Céondo Ltd, je suis allé à l’encontre des usages courants, je n’ai rien écrit en tout petit, cela permet donc même aux personnes ayant normalement des lunettes de facilement lire les informations importantes.

Mais je voulais aussi des cartes en braille, j’ai une tante aveugle, mon voisin de palier ces 2 dernières années était aveugle, le retour que j’ai pu avoir concernant l’utilisation de Plume CMS par des aveugles m’ont confirmé dans l’utilité de penser à tous. Malheureusement, à l’époque, je n’avais pas trouvé de solution pratique.

Puis, il y a quelques jours, je suis allé dans un musée de la technique, et là, il y avait une machine pour écrire en braille. J’avais une vieille carte de visite, je n’ai pas résisté, et je l’ai passé à la machine. Cela m’a remotivé pour faire la même chose avec mes autres cartes, voici donc ma nouvelle carte en braille :

Cartes de visite en braille

Un film plastique transparent portant le texte suivant est collé au dos de ma carte (sur le devant, cela gêne un peu trop la lecture) :

Dr Loic
d'Anterroches
Ceondo Ltd
loic at
ceondo.com

Yeah ! Pour le moment c’est un échantillon de test, je regarde pour une bonne commande, quand je reçois tout cela et si tout est ok, je vous donne toutes les infos pour vous permettre d’avoir aussi vos cartes de visite en braille !

Upgrade d'un serveur sous Hardy

The 2008-04-24 at 21:10 by Loïc d'Anterroches filed under News.

Hop…

loa@methane:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 8.04
Release:        8.04
Codename:       hardy

Moins de 10 minutes pour l’upgrade complet, il me reste à regarder pour faire l’upgrade de PostgreSQL de la version 8.2 à la 8.3. C’est une chose que je n’ai jamais faite, donc bon, là je vais y aller tout doucement.

Incroyable Google News

The 2008-04-19 at 07:43 by Loïc d'Anterroches filed under News.

Vraiment, par moments, Google fait de jolies choses. Allez sur le site Google News, faites une recherche sur Angela Merkel ou toute autre personnalité connue, vous trouverez une page qui ressemble à cela :

Citation d'Angela Merkel sur Google News

Si vous cliquez sur le nom de la personne et vous aurez alors une liste très importante de citations récentes… Simplement superbe. Un très joli traitement du langage. Via Google News Blog.

Ce n'est pas bon de dépendre de Google

The 2008-04-16 at 08:45 by Loïc d'Anterroches filed under News.

Pas bon du tout même.

Google Code Hosting en read only

Je ne peux pas mettre en ligne une nouvelle version de Pluf car leur site est en maintenance. Bien entendu, comme à leur habitude, on reste dans le brouillard le plus total en ce qui concerne le durée de la maintenance… 30s, 1h, qui sait ?

Comme j’utilise Pluf dans mon application de gestion de conférences, je fais directement un checkout du code sur mon serveur, quand je veux faire passer un fixe de Pluf sur mon serveur, Google est donc une étape… étape que je vais devoir enlever…

Spam, arg...

The 2008-04-11 at 09:54 by Loïc d'Anterroches filed under News.

Je suis bien ennuyé, il semble que les bots ont trouvé la technique pour soumettre des spams dans les commentaire sur ce site. Cela veut dire qu’il faut que je pense à une amélioration du système de prévention. Le besoin de la version 2 de Plume CMS commence sérieusement à se faire sentir. Le problème est qu’en ce moment je trouve beaucoup pour mon application de gestion de conférences, je n’ai presque pas de temps à consacrer pour le reste…

À vue de nez, je vais probablement devoir réorganiser mon emploi du temps pour consacrer chaque jour quelques heures pour le logiciel libre. J’ai une période de travail efficace d’environ 6h chaque jour. Grosso-modo, je code bien de 9h à 15h. Ensuite, je vais récupérer le petit bonhomme chez sa Tagesmutter et je peux donc me remettre au travail qu’après le dîner. Ce temps après le dîner est trop irrégulier pour le consacrer à un logiciel libre, c’est bien pour faire la paperasse de la boite, faire du networking etc., mais pour bien coder, c’est pas le mieux.

Je vais voir si coder pour le libre de 13h à 15h fonctionne,

Manger de la viande est son impact écologique

The 2008-04-09 at 10:29 by Loïc d'Anterroches filed under News.

Via un blog de Libération, je suis tombé sur un petit visuel intéressant. Un billet (au contenu globalement pauvre) m’a fait découvrir une plaquette sympa du Réseau Action Climat : Gaz à effet de serre dans mon assiette.

En gros, c’est une présentation de l’impact en GES de la consommation de viande. Par exemple, en faisant la comparaison avec le nombre de kilomêtres parcourus avec une voiture (je suppose une berline standard) :

  • 1kg de veau = 220 km
  • 1kg d’agneau = 180 km
  • 1kg de boeuf = 70 km
  • 1kg de porc = 30 km

Je me demande comment est fait ce calcul, car bizarrement pour faire 1kg de boeuf, il faut bien passer par 1kg de veau (le veau devient un boeuf), pourtant manger du boeuf semble plus économique. Est-ce le rapport masse transformable/masse totale qui change beaucoup, est-ce que le boeuf a une autre utilité avant l’abattage permettant de réduire son impact dans le bilan ? Je ne sais pas.

C’est intéressant de voir dans le bilan l’impact de la chaîne de production. Cela va dans le sens de nos habitudes à la maison. Nous n’achetons aucune viande en supermarché, mais uniquement au producteur du coin (3km de chez nous), qui produit tout localement et fait l’abattage lui-même (chose qui n’est plus autorisée en France il me semble), et, je ne mange presque pas de viande (une fois par semaine au grand maximum).

Par contre, je suis déçu que l’impact des produits laitiers ne soit pas spécifié. Je consomme beaucoup de fromage…

Premières impressions du scanner ScanSnap S510

The 2008-04-01 at 09:07 by Loïc d'Anterroches filed under News.

il y a quelques jours, je vous ai fait une aide pour l’installation du ScanSnap S510 avec Ubuntu, maintenant, voici mes premières impressions :

  • rapide ;
  • rapide ;
  • ai-je dis que ce scanner est rapide ?
  • Ne prend pas de place sur le bureau.

En fait, il est tellement rapide que par moment je me demande comme il fait pour scanner aussi rapidement. Ce scanner scanne le recto/verso en une seule passe et grosso-modo prend moins de 5 secondes pour un recto-verso en 150dpi (largement suffisant pour du papier administratif).

Replié, le scanner occupe la surface d’une petite feuille A4, il prend donc facilement place au fond à droite de mon bureau.

J’ai fait un petit script pour automatiquement faire un scan et convertir le résultat en un pdf multipage. Scanner une liasse de documents revient à faire :

$ mscan2pdf.py t-com-rechnung-2008-03.pdf

J’ai alors un joli fichier pdf de 8 pages dans le répertoire courant. Il me reste à faire une reconnaissance optique des caractères et inclure le résultat dans le fichier pdf. Pour le moment, je ne sais pas faire ça sous Python, mais avec Perl, gscan2pdf propose cela et bien plus encore.

Conclusion ? Je suis extrêmement content de ce scanner, on verra dans 1 an si il fonctionne toujours parfaitement.

Ajouter un utilisateur à un groupe

The 2008-03-27 at 10:56 by Loïc d'Anterroches filed under News.

Juste pour me souvenir. Pour ajouter un utilisateur à un groupe et garder ses autres groupes, il suffit de faire :

sudo usermod -a -G legroupe lelogin

Pour vérifier ensuite :

sudo id lelogin

Discussion surréaliste à la caisse de ma superette

The 2008-03-18 at 07:51 by Loïc d'Anterroches filed under News.

Hier soir, au moment où je passe à la caisse de ma superette, la caissière me pose la question quelle chanson je chante. Je réponds alors que je ne sais pas. En fait je savais, j’ai le premier concerto pour piano et orchestre de Tchaikovsky dans la tête ces derniers jours, mais bon j’ai été surpris par la question. S’en suis approximativement la discussion suivante :

Elle : Vous êtes français ?
Moi : Oui.
E : Je vois votre femme normalement. Vous savez j’aime beaucoup Versailles, vous êtes déjà allé à Versailles ?
M : Oui, comme presque tous les français.

Et à ce moment, la discussion tourne, ces grands yeux noirs se plongent dans les miens et les questions fusent. Comment les français considèrent aujourd’hui le fait d’avoir passé à la guillottine le Roi ? Comparaison avec les russes et le tsar. Discussion à propos de Danton et Robespierre, des dépenses de Louis XIV et des conséquences sur le monarchie et les raisons de la révolution.

Oups… j’ai du mal à m’imaginer la situation réciproque, une française à la caisse d’un super U dans une petite ville de province, qui voyant arriver un allemand, commence à lui demander ce qu’il pense de Bismarck et de son introduction des congés payés, de la sécurité sociale et de la retraite au XIX siècle en avance sur tout le monde.

En fait, depuis mon arrivée en Allemagne, je suis très régulièrement surpris par la connaissance de la France et du français qu’ont les allemands. C’est certain, ce n’est pas réciproque.

La vie est pleine de charmantes surprises, si on oublie les moins bonnes, la vie est belle.

Firefox 3 dit qui vous êtes à Google toutes les 30 minutes

The 2008-03-15 at 18:57 by Loïc d'Anterroches filed under News.

Arg… je viens de lire à propos de l’anti-malware de Firefox 3 sur le blog de Tristan Nitot et il écrit ceci :

Firefox va chercher toutes les 30 minutes une liste noire des sites infectés sur un serveur Google.

L’emphase est de moi. En plus, cette opération est activée par défaut ! Vraiment, je trouve cela un abus de position dominante. Comme Mozilla considère que c’est bon pour les utilisateurs, même si cela a des implications importantes par rapport à la vie privée, alors on le fait.

Grosso modo, cela veut dire Mozilla donne à Google la plage horaire d’utilisation d’Internet de presque 20% des internautes. Je me demande combien de millions ils vont faire avec cela. Google va tranquillement récupérer toutes les 30 minutes une adresse IP (donc position géographique etc.) avec bien entendu la version de Firefox, de l’OS, la vitesse de connexion (vitesse du download) et ceci même si la personne ne visite pas un site Google.

Je souhaite que chaque utilisateur se trouve avec un bon warning à la première utilisation de Firefox 3 avec comme choix par défaut si on fait un clic rapide de ne pas activer cette atteinte à la vie privée.

De retour en ligne et roulant en vélo

The 2008-03-09 at 18:35 by Loïc d'Anterroches filed under News.

Hop, juste une petite note pour dire que je suis de retour en ligne depuis mercredi. La mauvaise nouvelle est que le très bel appartement que nous avons trouvé ne dispose pas d’une connexion au DSLAM de qualité, conclusion, je suis limité à 2Mbits. Bon, en pratique je n’utilise la capacité de download pratiquement uniquement pour mettre à jour mon système, donc ce n’est pas très grave, mais cela donne aussi que 200kbits en upload et ça c’est plus ennuyeux. La bonne nouvelle est que Deutsche Telecom va passer tout le territoire, ou presque, en 16Mbits d’ici à la fin de l’année.

Bon, sinon, tout roule ou presque, le bureau est toujours en chantier avec encore trop de cartons, mais cela commence à prendre correctement forme. Je passe de 9m2 à 12 et un plafond à 2,52m à 2,75+ car sous le toit, c’est vraiment sympa.

Je continue aussi d’être écolo et je fais donc un petit 20km par jour en vélo (4x5km) pour poser Johannes chez la nounou et aller le reprendre. Comme le coin est vraiment en pente, grosso modo 2,5km de descente pour 2,5 de montée de l’autre côté du valon, tout le monde me prend pour un peu givré. En tout, je roule 1h40 par jour. En voiture, je roulerais environ 45/50 minutes. C’est donc plus long, mais maintenant mon cœur me dit merci car s’il cogne déjà au repos à 48 par minute, je vais je suppose bientôt passer en dessous de 45. Johannes est dans un petit chariot derrière le vélo, je n’ai pas lésiné sur la qualité avec un Cougar 2 (note, le site web de la société est nul, impossible de faire un lien direct, impossible d’accéder à une page d’information si on n’a pas flash et javascript d’activé… arg) et vraiment pour une utilisation quotidienne cela vaut la peine de faire l’investissement.

Cougar2 de Chariot Carriers

Au total, j’ai donc un vélo d’environ 13kg, le chariot 12kg, Johannes 10kg et moi, on va dire 70kg car je n’ai aucune idée en fait. Cela donne un peu plus de 100kg à déplacer et quand la pente est à 10/12%, je peux vous dire, je mange nettement plus ! Je produis donc plus de CO2, mais quand même moins qu’une voiture… Être écolo par moment cela nécessite de la volonté, mais dans ce cas là c’est aussi bon pour ma santé, alors…

Saviez-vous que pour quelqu’un qui fait du travail de bureau, il lui faut faire au minimum 3h30 de sport de manière intensive par semaine ? Faites du vélo ou de la marche, c’est bon pour votre santé et celle des autres !

Attention ça va coup...

The 2008-02-25 at 21:33 by Loïc d'Anterroches filed under News.

les quelques prochains jours vont être calmes au niveau de ma connexion internet. Mon opérateur a fait une erreur et donc ma connexion va être coupée pour ensuite être activée de nouveau. Conclusion, au lieu d’avoir un déménagement avec continuité de service, j’ai un déménagement avec tranquilité de service. Certains disent que de tout façon il y a mieux à faire que de passer son temps sur Internet, comme par exemple défaire 60 cartons, remonter je ne sais combien de meubles et bien entendu, refixer les lampes au plafond.

Bon, le truc sympa, c’est quand même que notre nouvel appartement est chouette. Une belle vue sur la ville, une pente à 16% pour mon futur trajet quotidien en vélo avec le petit dans un chariot derrière. Je vais finir par avoir une santé en béton, j’ai déjà le poul à 48, d’ici deux mois je pense bien réussir à franchir les 45. Ah, aussi, la bonne nouvelle c’est que notre fournisseur d’électricité sera maintenant un fournisseur vert, avec uniquement du courant provenant d’énergies renouvellables (eau, air. soleil). Là, j’en connais un qui se dit, pourvu que le pauvre ne se cogne pas les merdes que nous avons depuis notre changement de fournisseur…

Merci de pas casser l’Internet pendant mon absence et à bientôt.

Statistiques pour nginx

The 2008-02-20 at 10:20 by Loïc d'Anterroches filed under News.

Si vous aimez les jolis graphs et que vous utilisez nginx, vous avez deux possibilités qui donnent grosso-modo le graph suivant au final :

nginx rrd connection statistics

Si nginx vous intéresse, n’oubliez pas le paquet nginx pour Ubuntu.

Un très bon article sur les formulaires web

The 2008-02-10 at 20:42 by Loïc d'Anterroches filed under News.

Juste en passant, un très bon article sur les actions dans les formulaires. Les actions par exemple sauvegarder et annuler. Ce site propose un joli paquet d’articles de qualité.

C’est en anglais, bonne lecture et ne venez pas me dire ensuite que vous venez de passer 5h à lire et que vous être maintenant à la bourre !

Berlin et Copenhague cette semaine

The 2008-02-10 at 19:32 by Loïc d'Anterroches filed under News.

Si certains d’entre vous veulent me rencontrer dans un café/resto, je serai à Copenhague du 12 au 15 et à Berlin du 16 au 17. À Berlin, je vais bien entendu aller voir mon photographe favori ou peut-être viendra t’il à la maison. À Copenhague, je vais retrouver mes anciens collègues et amis de CAPEC et Atomistix.

Cela sera dense, mais j’arriverai bien à libérer du temps pour d’autres rencontres. Si cela vous botte, laissez-moi un email sur titoo (at) users.sourceforge.net.

SSD - Solid State Drive, c'est pas encore ça

The 2008-02-09 at 19:29 by Loïc d'Anterroches filed under News.

et Apple ne vous le dira pas. Si vous vous souvenez, j’ai eu le plaisir de travailler pour Atomistix une société proposant un logiciel de simulation de structures atomiques. Entre autre, cela permet de faire la simulation de disques SSD. Le problème de ces disques et qu’ils ne sont pas adaptés aujourd’hui pour une utilisation quotidienne dans votre ordinateur. Ou plutôt, ils sont adaptés si vous considérez comme normal de changer de disque tous les ans.

Et oui, le grand problème de la mémoire flash est la stabilité dans le temps après un grand nombre d’opérations d’écriture. C’est d’ailleurs pour cela que les appareils utilisant de la mémoire flash utilisent des algorithmes pour écrire de manière plus ou moins aléatoire l’information sur toute la surface disponible. Cela permet par exemple de ne pas toujours utiliser la surface du début de la carte (si par exemple vous n’utilisez qu’en moyenne 50Mo de votre carte de 2Go dans votre appareil photo numérique).

La stabilité est aujourd’hui entre 10 000 et 100 000 cycles d’écriture. C’est pas énorme… Pour en savoir plus, un article intéressant sur le blog de Lenovo.

Système supportant le crash d'un centre de données

The 2008-02-07 at 22:54 by Loïc d'Anterroches filed under News.

Vous avez compris, je joue avec puppet.

Pour Céondo, je fais de l’hébergement de services web. Il faut que ces services tournent tranquillement 24h/24 et 7j/7 toute l’année. Jusque là tout va bien, c’est normal. Maintenant, que se passe t’il si votre centre de données (datacenter, le lieu où sont vos serveurs) crâme ? Vous savez, la foudre au mauvais endroit au mauvais moment, un problème hardware ou une erreur humaine.

Pour pouvoir assurer la qualité de service, il faut donc avoir une infrastructure qui repose sur au moins 2 centres.

Voici donc l’architecture que je suis en train de mettre en place.

  • 2 centres avec dans chacun des centres la quantité suffisante de serveurs pour assurer la totalité du service si l’un des centres tombe (maximum 50% de charge), ce sont les centres app.
  • 2 serveurs dns dans 2 autres centres que les centres app.
  • 1 serveur de contrôle (puppetmaster) dans un autre centre que les centres app.
  • 2 serveurs de backup dans 2 centres distincts des centres app.

Le but est de fonctionner ainsi :

  • Les données entre les 2 centres app sont synchronisées, c’est à dire que un centre est le backup chaud de l’autre.
  • Les 2 serveurs de backup permettent de faire du backup mort avec une conservation des données sur les 15 derniers jours. En gros, les 15 derniers dumps quotidiens des bases de données et une copie du dépôt git qui permet de garder l’évolution des fichiers.
  • Le serveur de contrôle permet de contrôler la mise à jour des serveurs en utilisant puppet.
  • Les serveurs dns permettent de faire un transfert d’un centre à un autre en cas de plantage.

Pour le moment, j’ai un serveur applicatif, 2 serveurs de backup et un serveur de contrôle. Je suis en train de monter un deuxième serveur applicatif dans un autre centre de données et je dois passer le serveur actuel sous contrôle du puppetmaster. Cela représente un investissement assez important mais une fois bien mis en place et testé régulièrement, cela devrait me permettre de dormir tranquillement la nuit, en sachant que si cela plante grave, mon téléphone sonne et je peux en un clique passer sur le backup ou simplement attendre un peu.

Puppet, long mais satisfaisant

The 2008-02-07 at 13:50 by Loïc d'Anterroches filed under News.

C’est long, c’est très long d’écrire les recettes pour Puppet, mais au final c’est satisfaisant de savoir que l’on ne fait les choses qu’une fois et que par la suite il est facile de dupliquer ou mettre à jour un serveur très facilement.

Voici par exemple une recette pour PostgreSQL (il peut certainement y avoir des erreurs dedans) :

class postgresql {

       package { "postgresql-8.2": ensure => installed }

       group {"postgres":
             ensure => present,
             require => Package["postgresql-8.2"],
       }

       user {"postgres":
             ensure => present,
             require => Group["postgres"],
       }    

       # Init the pgdata directory
       file {"/home/pgdata":
             owner => "postgres",
             group => "postgres",
             ensure => directory,
             require => User["postgres"],
       }

       file {"/home/pgdata/main":
             owner => "postgres",
             group => "postgres",
             ensure => directory,
             require => File["/home/pgdata"],
       }

       exec {"initdb":
             command => "/usr/lib/postgresql/8.2/bin/initdb -D /home/pgdata/main -E UTF-8",
             group => "postgres",
             user => "postgres",
             creates => "/home/pgdata/main/base",
             require => File["/home/pgdata/main"],
       }

       # Symlink the new pgdata directory correctly
       file {"/etc/postgresql/8.2/main/pgdata":
             ensure => "/home/pgdata/main",
             require => Exec["initdb"],
       }       

       # Get the configuration file
       file {"/etc/postgresql/8.2/main/postgresql.conf":
             owner => "postgres",
             group => "postgres",
             mode  => 644,
             source => "puppet://puppet/files/postgresql.conf",
             require => File["/etc/postgresql/8.2/main/pgdata"],
       }

       file {"/etc/postgresql/8.2/main/pg_hba.conf":
             owner => "postgres",
             group => "postgres",
             mode  => 644,
             source => "puppet://puppet/files/pg_hba.conf",
             require => File["/etc/postgresql/8.2/main/pgdata"],
       }

       service {"postgresql-8.2":
               ensure => running,
               enable => true,
               # check for the main cluster here
               pattern => "/usr/lib/postgresql/8.2/bin/postgres -D /home/pgdata/main -c config_file=/etc/postgresql/8.2/main/postgresql.conf",
               require => User["postgres"],
               subscribe => [File["/etc/postgresql/8.2/main/pgdata"],
                             File["/etc/postgresql/8.2/main/postgresql.conf"],
                             File["/etc/postgresql/8.2/main/pg_hba.conf"],
                             Package["postgresql-8.2"]
                            ],
       }

       service {"postgresql-8.2-old":
               ensure => stopped,
               pattern => "/usr/lib/postgresql/8.2/bin/postgres -D /var/lib/postgresql/8.2/main -c config_file=/etc/postgresql/8.2/main/postgresql.conf",
               require => User["postgres"],
               before => Exec["initdb"],
               provider => base,
               subscribe => Package["postgresql-8.2"],
       }
}

Cette recette assure que le paquet de postgresql est installé et fait quelques accrobaties pour changer la position des données de /var/lib vers /home/pgdata. Ce sont ces accrobaties qui prennent du temps à définir car il faut qu’elles fonctionnent quelque soit le niveau d’installation du serveur. Par exemple, si initdb a déjà été lancé, il ne faut pas le relancer, etc…

Notez que la configuration est stockée sur mon serveur puppet, cela veut dire que si je mets à jour la configuration sur le serveur central puppet, mon serveur commandé va se mettre à jour automatiquement et redémarrer postgresql tout aussi automatiquement.

Les marionnettes font la fête

The 2008-02-06 at 12:42 by Loïc d'Anterroches filed under News.

Puppet, marionnette en Français, est un logiciel permettant de centraliser la configuration de vos serveurs.

Le principe est d’avoir un serveur central (oui, un point unique de défaillance, mais on peut toujours en avoir un autre au cas où) qui distribue les mises à jour de configuration aux autres serveurs/systèmes que vous gérez. Toutes les 30 minutes, chaque serveur va venir interroger le serveur central et vérifier si sa configuration doit changer.

Vous pouvez facilement avoir des configurations différentes pour chacun des serveurs. Par exemple, vous pouvez dire que le serveur 1.chezvous.com disposera de apache, php et mysql et le serveur 2.chezvous.com aura python, apache et mysql. Vous pourrez avoir donc 2 éléments de configuration communs pour les deux serveurs.

L’application est plutôt bien codée et facile à installer car disponible en paquets pour Debian/Ubuntu.

Je suis en train de l’utiliser pour réduire l’installation d’un nouveau serveur pour ConfOrganizer à :

  1. installation du système de base ;
  2. installation de puppet ainsi que configuration ;
  3. puis mise à jour automatisée via puppet sans intervention manuelle.

En gros, 3 étapes avec le minimum d’intervention humaine.

Next Page


Logo of Plume CMS