Archive for the ‘french’ Category

Faire du POST/GET/HEAD en ligne de commande

Friday, January 14th, 2011

À l’heure des webservices RESTful, il est essentiel d’avoir des outils simples pour réaliser tous types de requêtes HTTP. Et l’outil indispensable c’est LWP (WWW Library for Perl), disponible sous tout système digne de ce nom (sous Debian c’est libwww-perl), qui met notamment à disposition des non-barbus les fabuleuses commandes HEAD, GET, POST. Rien de nouveau, mais l’infogérance Evolix utilisant quasi-quotidiennement ces commandes, il me paraît utile de s’assurer que ces commandes sont entre toutes les mains des développeurs avec lesquels on travaille (et des autres ;-).

Au delà de la Man Page voici quelques exemples pour vous convaincre :

$ HEAD www.evolix.fr
200 OK
Connection: close
Date: Tue, 28 Dec 2010 20:08:35 GMT
Server: Apache
Vary: Accept-Encoding
Content-Type: text/html
Client-Date: Tue, 28 Dec 2010 20:08:44 GMT
Client-Peer: 85.31.205.43:80
Client-Response-Num: 1

$ HEAD -U -H "User-Agent: Mozilla/4.8 [en] (Windows NT 5.1; fr; rv:BlogByGcolpart)" \
 -H "Referer: http://www.evolix.fr/" www.evolix.fr/serv/infogerance.html
HEAD http://www.evolix.fr/serv/infogerance.html
Referer: http://www.evolix.fr/
User-Agent: Mozilla/4.8 [en] (Windows NT 5.1; fr; rv:BlogByGcolpart)

200 OK
Connection: close
Date: Thu, 13 Jan 2011 23:14:13 GMT
Server: Apache
Vary: Accept-Encoding
Content-Type: text/html
Client-Date: Thu, 13 Jan 2011 23:14:13 GMT
Client-Peer: 85.31.205.43:80
Client-Response-Num: 1

$ GET http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.36.2.tar.bz2 > linux-2.6.36.2.tar.bz2

$ GET google.fr | grep charset= | sed 's@^.*charset=\([-a-Z0-9]*\)".*$@\1@'
ISO-8859-1

$ POST http://www.evolix.fr/contacts.html
Please enter content (application/x-www-form-urlencoded) to be POSTed:
from=jdoe%40example.com&contenu=Coucou&validation=nospam&soumettre=ok
Ctrl+d

$ echo -n "from=jdoe%40example.com&contenu=Coucou&validation=nospam&soumettre=ok" > /tmp/POST-DATA.txt
$ POST http://www.evolix.fr/contacts.html < /tmp/POST-DATA.txt

Note : Attention, pour envoyer interactivement des données en POST, il faut ensuite les valider avec Ctrl+d

Être jeune et entrepreneur : un pari si osé ?

Monday, December 6th, 2010

Le Startup Week-end MArseille (#SWMA), où j’ai eu l’honneur de faire partie du jury, m’a forcément rappelé la création d’Evolix il y a bientôt 8 ans. Et notamment le fait d’être jeune et entrepreneur.

On entend souvent qu’il est indispensable d’avoir de la bouteille pour se lancer dans l’aventure de la création d’entreprise. Je pense qu’au contraire, il y a certains avantages à entreprendre en étant jeune :

Vous avez le droit de vous rater
Votre carrière professionnelle n’est pas en jeu. Au pire si vous vous ratez, on dira que vous étiez trop jeune. Pas comme un salarié de 45 ans quittant sa boîte pour créer une startup en tant qu’expert dans son domaine : lui, il a pas le droit de se rater. Mais vous, vous êtes jeune, vous pourrez toujours rebondir. Et cela doit vous enlever beaucoup de pression.

Vous n’avez pas ou peu d’expérience
Ne pas avoir d’expérience, dans un certain sens, c’est un avantage ! Grâce à cela, vous lancez sans le savoir des projets impossibles. Impossible pour une personne expérimentée. Donc forcément originaux. Et c’est un bon moyen pour réussir : de nombreuses success story ont été lancées par de jeunes inconscients : ils ne savaient pas que c’était impossible, alors ils l’ont fait

Le sujet de votre projet est vraiment libre
Plus vous vieillissez, moins vous pourrez changer de vocation. Alors profitez d’être jeune pour tracer votre voie dans un sujet qui vous passionne.
Vous n’avez pas (encore) de clients, peu de background : profitez de cela pour vous lancer dans un projet qui vous plaît ! Et attention au piège de sacrifier votre passion sous pretexte de gagner rapidement de l’argent : vous avez l’occasion de faire partie des rares personnes qui aiment leur boulot… vous ne l’aurez qu’une fois !

Pour conclure, cette petite réflexion est en forme de contre-pied à certaines idées reçues… mais je ne dis pas non plus qu’il est facile d’entreprendre en étant jeune. Ni qu’il est facile d’entreprendre d’ailleurs. Dans tous les cas, il faut savoir s’entourer, se tromper, déléguer, se remettre en question, faire des semaines de 35h (de sommeil), etc. Enjoy.

Mise-a-jour WordPress par l’interface web via SSH

Wednesday, October 13th, 2010

J’ai eu l’occasion de m’intéresser à la mise-à-jour de WordPress par l’interface web, et notamment via SSH car un Pack Web Evolix active uniquement un accès SSH/SFTP/RSYNC pour un compte web par défaut. Pour cela, il faut installer le paquet php5-ssh2 (disponible sur http://pub.evolix.net/lenny/ en version amd64 pour Debian Lenny), ce qui active automatiquement la possibilité de choisir SSH2 pour la mise-à-jour. Attention, il faut également activer allow_url_fopen pour que cela fonctionne correctement (merci à ce blog-post). Bien sûr, cela permet également de réaliser les mises-à-jour des plugins comme Akismet par exemple.

Voilà, il ne reste plus qu’à rentrer votre identifiant et mot de passe lors d’une mise-à-jour (évidemment cela ne dispense pas de tester en pré-production, de faire des sauvegardes, de désactiver puis réactiver ses plugins, etc.)… vous n’avez donc plus de raison d’avoir une version de WordPress avec des failles de sécurité !

upgrade wordpress via sftp

Mon compte-rendu de DebConf 10 à New York

Wednesday, August 18th, 2010

DebConf est la conférence annuelle des développeurs du projet Debian. Cela permet aux développeurs et contributeurs de Debian d’assister à des présentations techniques, sociales et politiques, mais aussi de se rencontrer et travailler ensemble. Cette année, la 11e DebConf s’est tenue à New York du 1er au 7 août. Evolix a sponsorisé cette conférence et j’étais donc sur place, voici mon résumé de cette semaine.

Premiers pas plutôt festifs le vendredi soir avec le SysAdmin Day dans un bar à Manhattan puis direction Brooklyn pour une Debian Party organisée par NYC Resistor, un collectif local de hackers en électronique à l’origine de MakerBot, une imprimante 3D Open Source. Samedi c’est l’arrivée à Columbia University, l’université américaine qui accueille la DebConf 10. Une bonne partie des participants est hébergée sur le campus universitaire, dans des chambres avec accès haut-débit et une cafétéria à volonté.

C’est donc le dimanche 1er août que commence la DebConf avec des présentations orientées grand public pour cette première journée appelée le “Debian Day”. Un grand message de bienvenue pour un public plus large en ce premier jour, puis enchaînement des présentations. J’ai tout d’abord assisté à une présentation sur le sysadmin par François Marier qui a livré toutes ses astuces et une série de packages intéressants (unattended-upgrades, safe-rm, etckeeper, fcheck, fwknop, etc.). J’ai d’ailleurs pu échanger par la suite avec lui d’autres informations, sachant qu’il travaille dans une boîte similaire à Evolix : Catalyst située en Nouvelle-Zélande ! J’ai ensuite assisté à la présentation de Stefano Zacchiroli, l’actuel leader Debian, qui encourage fortement les développeurs à réaliser des NMU (Non Maintainer Upload), c’est-à-dire la publication d’un package par un autre développeur que celui responsable officiellement. J’ai ensuite poursuivi avec la présentation du Google Summer of Code 2010 de Debian : une présentation générale puis plusieurs “étudiants” expliquent leur projet en cours : Debian-Installer pour OpenMoko, GUI pour aptitude en QT, etc. D’autres présentations ont ensuite suivies, mais j’ai plutôt été découvrir le “hacklab” : une pièce pourvue de multiprises, switches et points d’accès afin de permettre à plusieurs dizaines de personnes de travailler/hacker. Le “Debian Day” a été un franc succès avec plusieurs centaines de participants. En soirée, c’est l’heure du coup d’envoi “officiel” de la DebConf par Gabriella Coleman, l’une des organisatrices de la DebConf 10, qui présente avec humour la semaine à venir, avec un petit retour en images sur les éditions précédentes.

Deuxième jour, on a le droit à un Bits from DPL en direct de la part de Stefano Zacchiroli (au lieu du traditionnel mail). Ensuite, il y a de nombreuses présentations. Durant DebConf, il y en aura plus de 100 au total, réparties dans 3 salles : Davis (avec vidéo), 414 Schapiro et Interschool (avec vidéo). Le choix est parfois difficile ! Pour ma part, j’ai assisté en fin de matinée à la présentation de la structure américaine à but non lucractif SPI : c’est elle qui gère les droits de la marque Debian, mais pas seulement : OpenOffice.org, Drupal, PostgreSQL, Alfresco, etc. de nombreux projets de logiciels libres utilisent cette structure légale ! Dans l’après-midi, c’est Mark Shuttleworth, fondateur d’Ubuntu et CEO de Canonical, qui nous présente le travail réalisé pour améliorer l’interface graphique des netbooks, notamment par l’intermédiaire du projet Ayatana. Puis, Jorge Castro, responsable chez Canonical des relations avec les développeurs extérieurs, parle de la collaboration entre Ubuntu et Debian. On notera que toute une équipe de Canonical est venue à DebConf et que les relations avec Debian semblent devenir plus sereines. Le soir venu, c’est l’heure de Wine&Cheese, un évènement devenu incontournable pour une DebConf : imaginez des centaines de fromages et alcools venus du monde entier (Italie, Allemagne, France, Mexique, Brésil, USA, Taïwan, Pologne, Kazhastan, Espagne, Nouvelle-Zélande, Corse, Vénézuela, Hollande, Marseille, Irlande, Angleterre, Japon, etc. etc.) et plus d’une centaine de développeurs Debian lâchés dessus pendant des heures… le résultat est… indescriptible ! Pour ma part, j’avais apporté un rosé Bandol, des bières La Cagole, du Banon et de la Tapenade… qui n’ont pas fait long feu.

Troisième jour et l’on débute par un talk d’Eben Moglen, avocat de la FSF, qui rappelle les dangers du Cloud Computing comme la gestion des données privées. Sa réponse : “Chacun devrait avoir un serveur chez soi” et il évoque la FreedomBox, une boi-boîte que tout le monde aurait chez soi pour faire office de petit serveur avec les fonctionnalités classiques (web, messagerie, VoIP). Cette idée rencontre un certain enthousiasme et plusieurs réfléchissent déjà à la réalisation de cette idée ! J’ai ensuite suivi une succession de présentations sur le thème de l’entreprise. On a parlé du déploiement de machines avec le logiciel Puppet, de l’installation automatisée de Debian avec FAI et Gosa, notamment présentée par Mickaël Bank, un développeur allemand très actif dans Debian. On a également des témoignages très intéressants : Russ Allbery, administrateur système et réseau à l’université de Standford en Californie, explique quels sont les arguments en faveur de Debian en entreprise et en profite pour présenter la gestion de Debian à Standford ; Faidon Liambotis, sysadmin chez GRNET (un opérateur public grec), présente leur utilisation de Debian mais aussi leurs choix en terme de déploiement (Puppet/FAI) ou de virtualisation (KVM/Ganeti). Pour terminer la journée, Guido Trotter de chez Google, nous parle des fonctionnalités réseau intéressantes sous Linux (VLAN, tunnels, routing, etc.). Une journée riche en idées et en informations ! En soirée, nous avons visualisé le film Open Source Sita Sings the Blues et Nina Paley nous a expliqué son choix d’une licence libre pour son film.

Le quatrième jour, c’est le Day Trip. Il s’agit classiquement d’une journée consacrée à des activités touristiques extérieures. Nous avons été visiter l’église Trinity Church à Manhattan où le drame du 11 septembre 2001 a mis un superbe orgue hors d’usage, remplacé temporairement par un orgue électronique “Powered by Linux”… qui a finalement été conservé en raison de sa qualité. Keith Packard, l’un des gourous de X.org employé chez Intel, a joué quelques minutes sur cet orgue. Ensuite, direction la plage de Coney Island. Puis un match de baseball où Stefano Zacchiroli lancera la première balle du match.

Cinquième jour, on reprend avec un BoF (un BoF=Birds of a Feather est une discussion informelle de groupe) sur la virtualisation où plusieurs personnes témoignent de leurs expériences et connaissances sur le sujet. Pas mal d’informations intéressantes, notamment sur le couple Ganeti/KVM pas mal mis en avant par Iustin Pop, l’un des développeurs de Ganeti employé chez Google. J’y apprends notamment que KVM gère une notion de mémoire partagée et ainsi démarrer une 2e machine virtuelle avec un même OS ne consommerait pas de mémoire supplémentaire sur le système hôte ! Suite des présentations, notamment une portant sur DebConf 12 qui pourrait peut-être se dérouler au Brésil. Et fin de la matinée avec François Marier qui présente le projet Libravatar permettant d’offrir une alternative à Gravatar, l’outil centralisé de gestion des avatars. Ses idées sont de se baser sur les DNS pour répartir les avatars pour chaque noms de domaine. Il a déjà commencé à développer une application en Django pour gérer cela. Suite de la journée avec un BoF sur Lintian (outil de vérification de la conformité des packages Debian) géré par Russ Allbery. Puis j’ai assisté à une présentation de Guido Günther qui a expliqué comment gérer son packaging avec Git et notamment git-buildpackage (très intéressant pour moi car je gère déjà mes packages Debian comme ça). Ensuite, petite pause sportive, car une dizaine de développeurs Debian a été participé à un cross de 5 kms dans le Bronx, avec des résultats honorables !

Sixième jour, on débute par Bits from Release Team qui déclare en direct que Squeeze, la prochaine version stable, est désormais freezée ! Un scoop à DebConf ! C’est ensuite Stefano Zacchiroli qui nous présente son travail en cours sur une amélioration de la gestion des dépendances, non seulement pour Debian mais aussi pour les autres distributions : plus de détails sur le site du projet Mancoosi. C’est ensuite la traditionnelle photo de groupe. En début d’après-midi, Margarita Manterola dresse un constat très lucide de l’état de Debian avec son talk Making Debian Rule, again. Puis en fin d’après-midi, c’est un BoF très apprécié mené par Joey Hess sur CUT (Constantly Usable Testing) qui explore les possibilités d’avoir une distribution Testing utilisable en permanence ! Le soir venu, c’est un BoF sur l’utilisation d’OpenPGP et la classique Keysigning Party qui a regroupé plusieurs dizaines de participants.

Septième et dernier jour, encore de nombreuses présentations. J’ai notamment assisté à celle de Philippe Kern, membre de la Release Team, qui a parlé du management de la version stable et de volatile. On notera par exemple qu’on peut désormais corriger des bugs en priorité “Important” dans les points de Release. La suite ce sont des fameux Lightnings Talks, une dizaine de présentations très courtes : une qui suggère d’arrêter complètement d’utiliser les mots de passe, une autre sur le logiciel runit, une autre sur les éclairs (lightnings !) ou encore l’historique en photos des Wine&Cheese Party ! Fun et instructif. Puis c’est l’heure de la conférence de clôture, où l’on remet des prix à ceux qui ont corrigé le plus de bugs mais surtout tous les volontaires sont vivement remerciés et j’en profite pour adresser une nouvelle fois mes remerciements à :
– L’équipe qui a organisé cette DebConf 10 : un travail impressionnant pour un résultat professionnel et communautaire à la fois : on frôle la perfection !
– L’équipe vidéo qui a fait un travail génial et vous pouvez ainsi retrouver l’ensemble des talks en vidéo,
– Les centaines de personnes sympas et passionnées qui contribuent à faire de Debian une distribution de grande qualité… et qui sait évoluer, la preuve avec les sujets abordés lors de cette DebConf !

Petite conclusion de cette semaine intensive, comme vous avez pu le lire : j’ai pu acquérir de nombreuses informations et faire le plein de nouvelles idées, mais aussi avoir des contacts réels avec d’autres développeurs et comprendre encore mieux le fonctionnement “social” de Debian. C’est donc très positif et cela va me permettre d’améliorer mon travail quotidien au sein d’Evolix, mais aussi réfléchir à d’autres projets et me motiver pour contribuer davantage à Debian. Debian rules !

Mon compte-rendu du FRnOG 16

Saturday, July 3rd, 2010


Vendredi 25 juin 2010, je me suis rendu au FRnOG 16, la rencontre des BOFH qui se déroule 2 fois par an à Paris. Le principe est de réunir tous les opérateurs de l’Internet français (Orange, SFR, Bouygues, Nerim, Iliad, Jaguar Network, TATA, Level 3, etc.) mais aussi des acteurs incontournables (AFNIC, RIPE NCC, Renater, etc.), des hébergeurs (OVH, Ikoula, GANDI, Euro Web, etc.), des sociétés de services (principalement la célébrissime société Evolix ;-), mais aussi Linagora, Witbe, etc.) et même des gros sites web (CyberCartes, Pixmania, etc.). Voici donc mon résumé du déroulement de l’après-midi :

  • Présentation commerciale d’Equinix (un des sponsors de la manifestation) qui possède notamment un gros datacenter à Saint-Denis où se trouvent pas mal d’hébergeurs et d’opérateurs français
  • Présentation de France-IX, une nouvelle entité dont le but est de monter un gros point d’échange français dans la lignée du FreeIX d’Iliad, du PANAP de Bouygues Telecom ou du Sfinx de Renater. Pour les non-initiés, un point d’échange sert notamment à favoriser le peering (échange de trafic souvent gratuit) entre les opérateurs. On y apprend notamment que France-IX a trouvé un accord avec le PANAP, et que Marseille va devenir une plaque-tournante du monde d’Internet grâce à l’arrivée des câbles sous-marins. Marseille, centre du monde, quoi de plus normal \o/
  • Nouvelles du Sfinx, le point d’échange de Renater. On a notamment des informations sur les évolutions prévues en terme d’équipements mais aussi sur les points de présence (notamment dans les DOM/TOM). Et ça parle encore de projets sur Marseille \o/
  • Talk d’Alix Guillard du RIPE NCC qui commence très fort : “je suis Alix et je ne suis pas un point d’échange”. Il présente les dernières discussions sur les mailing-lists, et surtout les outils du RIPE Labs : labs.ripe.net
  • Présentation technique de l’infrastructure mondiale de Level 3, un très gros opérateur. L’exposé est très technique et intéressant et traite notamment des flux trèèèèèès haut débit (jusqu’à plusieurs Tb/s), des câbles sous-marins, etc.
  • Exposé de Stéphane Bortzmeyer de l’AFNIC sur DNSSEC. Pédagogique, clair, l’exposé est génial ! Stéphane, avec un superbe T-Shirt isc.org Bind 1997, est un bon orateur. Il nous ré-explique pourquoi DNSSEC (sécurité, faille Kaminski). Extrait : “D’ici à 2012 plusieurs fins du monde sont prévues”. Puis il expose le planning de déploiement sur les serveurs racines et désormais les TLD. De nombreuses anecdotes amusantes, comme les déboires du .GOV suite à une relance de Barak Obama et l’invalidité pendant plusieurs semaines du .NOAA.GOV ou encore du .FBI.GOV. Pour le .FR c’est prévu pour septembre 2010 (l’AFNIC a commencé avec le .PM… le TLD de St-Pierre et Miquelon :-). Enfin, une question sur qui vérifiera les signatures DNSSEC : l’utilisateur final ou le FAI ? Stéphane répond que ça sera sûrement les deux : le geek vérifiera et le FAI vérifiera pour Mme Michu.
  • Pause publicitaire de la société BeFree
  • Présentation de la société Blade Network, un constructeur de switchs peu connu car il équipe des gros constructeurs (IBM, HP…) en marque blanche. Il nous parle notamment de ses switchs 10G.
  • Pause café
  • One-man-show de Jean-Michel Planche de Witbe. Au milieu des blagues, le sujet était le monitoring. JMP insiste notamment sur la nécessité de faire des mesures fiables et pertinentes sur les points significatifs (NDLR: certes…) et il parle de QoE (Qualité d’Expérience) en plus de la QoS (Qualité de Service). Pas mal d’évidences : “rien ne passe comme prévu”, “il faut automatiser ce qui peut l’être”, mais on reste un peu sur sa faim car on a l’impression qu’il manque une conclusion à son talk. En effet, il a parlé d’outils plus sérieux que les “Nagioseries”, mais sans dire de quoi il s’agissait (vous croyez qu’il peut s’agir d’outils propriétaires développés par sa société ? :-). Certes, je suis d’accord sur pas mal de choses, notamment que le monitoring ne consiste pas à faire des requêtes automatisées toutes les 3 minutes, et qu’il faut que les opérateurs arrêtent de proposer du pseudo-monitoring et confient les missions d’infogérance à des prestataires indépendants (comme Evolix par exemple ;-). Par contre, JMP généralise trop son exposé : tout le monde n’a pas des FAI comme clients qui doivent surveiller la qualité du débit/VoIP/IPTV de millions de Mme Michu ; et Nagios reste un très bon outil même si il en a touché les limites.
  • Exposé très pointu sur les cartes réseau 40G et 100G. Je dois avouer avoir un peu décroché… Zzzz…
  • Présentation des défis opérationnels d’IPv6 par Souissi (AFNIC) et Stevant (ENST). Parler d’IPv6 en présence de nombreux opérateurs… le terrain était miné. L’idée n’était pas de ré-expliquer l’intérêt d’IPv6 et la pénurie prochaine des IPv4, mais d’aborder des détails concrets comme l’obtention de préfixes IPv6 ou des expérimentations de futures connexions Internet sans IPv4 avec des tunnels, etc.

Voilà pour les conférences commerciales et techniques. À la fin, il y avait un tirage au sort pour gagner un iPad et des ballons de la Coupe du Monde. J’avais annoncé que si je gagnais l’iPad, je l’échangerai contre un ballon de foot (faut pas déconner non plus). Bon, je n’ai pas gagné l’iPad, mais j’ai justement gagné un Jabulani. Suite à cela, il y avait le beer event, dans un petit bar pris d’assaut. Mais j’ai à peine eu le temps de parler emailing avec EmailVision, Nagios avec Yann, et descendre une bière, que j’ai du filer vers mon TGV pour me ramener au centre du monde.

Vidéo de la conférence sur les différentes facettes du Logiciel Libre

Sunday, May 2nd, 2010

À l’occasion du salon marseillais TopT.I.C. il y a quelques mois, j’ai participé à une conférence sur les différentes facettes du Logiciel Libre. Différents sujets ont été survolés, comme le choix d’un Logiciel Libre et d’un prestataire. Vous pouvez retrouver cette conférence en vidéo (en 3 parties) :

http://www.dailymotion.com/video/xb3ebe_les-differentes-facettes-du-logicie_tech (Partie 1)

http://www.dailymotion.com/video/xb3enj_les-differentes-facettes-du-logicie_tech (Partie 2)

http://www.dailymotion.com/video/xb3exs_les-differentes-facettes-du-logicie_tech (Partie 3)

Autres exemples de migration Etch->Lenny [1]

Sunday, January 24th, 2010

La fin du support officiel de Debian Etch approchant, il est grand temps de migrer vers Lenny pour les machines pas encore à jour. Après un premier exemple de migration Debian Etch->Lenny, je poursuis la série avec des informations tirées de plusieurs migrations récentes sur des serveurs en production.

Je ne rappellerais pas toutes les précautions nécessaires (tests préalables, sauvegardes, désactivations des services, etc.) ni la classique question  sur  “quand faut-il migrer ?”, vous trouverez tout cela dans mes exemples précédents. Je rappelle simplement l’idée de base : prendre les précieuses Release Notes, mettre à jour le fichier sources.list, puis exécuter les commandes aptitude update && aptitude upgradex, puis mettre-à-jour les services les plus critiques via aptitude install <PACKAGE>, et enfin aptitude dist-upgrade && aptitude dist-upgrade (répéter dist-upgrade est souvent nécessaire).

Passons désormais aux différentes remarques sur ces migrations :

– PostgreSQL : on passe de la version 8.1 à 8.3. Notez qu’il s’agit de paquets différents, il est donc possible de garder la version 8.1 en Etch, et d’installer en parallèle la version 8.3, afin de faciliter encore plus la migration. Pour migrer les données, on réalisera un dump avec pg_dumpall qui sera réinjecté dans la nouvelle base. On pourra ensuite adapter le port dans postgresql.conf pour passer la version 8.3 en production.

– phpPgAdmin : avec PostgreSQL 8.3, on ne peut plus se connecter à la table template1 : c’est le comportement par défaut de phpPgAdmin, qu’on devra donc modifier en mettant postgres à la place (pour la variable $conf[‘servers’][0][‘defaultdb’] dans le fichier config.inc.php)

– Apache : la configuration de l’alias /icons/ est déplacé dans le fichier mods-available/alias.conf, il peut donc faire doublon avec la déclaration dans apache2.conf, ce qui sera signalé via le warning suivant : [warn] The Alias directive in /etc/apache2/apache2.conf at line 240 will probably never match because it overlaps an earlier Alias. Commenter les directives dans le fichier apache2.conf résoudra ce petit soucis.

– OpenLDAP : on passe d’une version 2.3 à 2.4, mais le plus marquant pour la migration est que cela force le processus à tourner avec un utilisateur/groupe dédié. Pour diverses raisons (dist-upgrade interrompu par exemple), on pourra rencontrer des soucis plus ou moins alarmants. Ainsi, j’ai pu rencontrer cette erreur :
bdb(dc=example,dc=com): PANIC: fatal region error detected; run recovery
bdb_db_open: database “dc=example,dc=com” cannot be opened, err -30978. Restore from backup!
backend_startup_one: bi_db_open failed! (-30978)
slap_startup failed
On veillera donc sur l’utilisateur/groupe propriétaire des fichiers dans le répertoire /var/lib/ldap et, au besoin, on ajustera : chown -R openldap:openldap /var/lib/ldap/
Mon conseil : mettre-à-jour le paquet slapd de façon spécifique avant le dist-upgrade

– Postfix : on passe de 2.3 à 2.5. On notera simplement la valeur par défaut de $smtp_line_length_limit characters qui passe à 990, ce qui coupe les lignes trop longues pour se conformer au standard SMTP. Si cela posait problème, on pourrait revenir à l’ancien comportement en positionnant smtp_line_length_limit=0

– SpamAssassin : l’utilisant en stockant la configuration des utilisateurs dans un annuaire LDAP, le daemon spamd s’est mis à râler : cannot use –ldap-config without -u
Le problème sera résolu en ajoutant l’option -u nobody, ce qui fera tourner spamd en tant que nobody (ce qui n’est pas une mauvaise chose, au contraire).

– Amavis : apparemment, lors de la détection d’un virus, le code retourné n’est plus 2.7.1 mais 2.7.0 : 2.7.0 Ok, discarded, id=13735-07 – VIRUS: Eicar-Test-Signature
Rien de bien grave, mais cela a nécessité d’adapter un plugin Nagios pour qu’il attende le bon code de retour.

– Courier-imapd-ssl : après une mise-à-jour gardant mon fichier /etc/courier/imapd-ssl actuel, j’obtenai des erreurs avec certains clients IMAP :
couriertls: accept: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number
En regardant de plus près, certaines directives changent dans ce fichier de configuration, et il est donc conseillé de repartir du fichier proposé par Lenny, et d’y apporter ses modifications (souvent, cela se limite à préciser le certificat).

– Horde : si vous utilisez une base de données pour stocker les paramètres ou autres, la paquet php-db (déjà en Recommends: en Etch) est d’autant plus nécessaire, sous peine d’obtenir l’erreur : PHP Fatal error:  _init() [<a href=’function.require’>function.require</a>]: Failed opening required ‘DB.php’ (include_path=’/usr/share/horde3/lib:.:/usr/share/php:/usr/share/pear’) in /usr/share/horde3/lib/Horde/DataTree/sql.php on line 1877

– Sympa : on attaque là le cauchemard de mes migrations. À chaque fois, tellement de soucis majeurs et mineurs, que j’ai l’impression d’être le seul à utiliser ce paquet. Voici en vrac tous les soucis rencontrés : les accents dans les descriptions ont sautés (une sorte de double encodage) et cela a nécessité des corrections manuelles, la table logs_table doit être créée à la main (j’utilise Sympa avec PostgreSQL), et enfin une typo surprenante un “GROUP BY” à la place d’un “ORDER BY” (j’ai ouvert le bug #566252 à ce sujet).

– Asterisk : on passe de la version 1.2 à la version 1.4. Lors de la migration, j’ai constaté un bug étrange, le fichier modules.conf qui charge les modules additionnels a disparu. Du coup, sans lui, Asterisk ne charge pas les modules nécessaires (SIP, etc.). Il a donc fallu le restaurer.

– udev : le meilleur ami des sysadmins (ou pas). Si les migrations douloureuses Sarge->Etch sont loin derrière nous, il reste néanmoins quelques blagues. La dernière en date a été un renommage des interfaces réseau : eth0->eth1 et eth1->eth2. Classique mais étonnant, ce genre d’humour est sensé être dépassé grâce aux “persistent rules” qui nomment les interfaces en fonction de l’adresse MAC. À rester vigilant sur ce point avant le redémarrage donc.

Voilà pour les remarques. Vous noterez que je n’ai pas abordé le noyau Linux. C’est parce que pour la majorité de nos serveurs, ils sont gérés de façons spécifiques (au lieu d’utiliser les noyaux officiels Debian). Ainsi, ils restent dans leur version actuelle (2.6.31 à cette heure) pendant la migration. Bien sûr, cela n’empêche pas d’effectuer un redémarrage de la machine suite à la mise-à-jour : cela permet de s’assurer que tout est bien en place et le sera toujours après un éventuel redémarrage d’urgence.

Rendez-vous pour de prochaines migrations !

“Quand je serai grand, je serai marseillais”

Monday, January 18th, 2010
Ca remonte au début des années 1990, et c’est (forcément) lié à l’OM. C’est l’époque où – dans ma classe de CM2 de banlieue parisienne – chacun choisissait un nom d’un joueur de l’OM pour jouer au ballon en mousse à la récré (pour la petite histoire, j’avais “écupéré “Dragan Stojkovic”). Je n’ai pas raté beaucoup de match télévisé de l’OM, que ça soit grâce à un précieux magnétoscope et des réveils à 6h du matin pour voir le match avant l’école, ou des matchs “en crypté” sur Canal Plus avec la radio à côté (je me souviens par exemple du OM-Milan AC de 1991 “entrevu” en plissant les yeux pendant 1 heure). Un peu plus tard, la folie de la Coupe d’Europe 1993 étant passée par là, c’est plus que l’OM, c’est Marseille qui me fascine : Notre-Dame-de-la-Garde, La Canebière, etc. En plus des posters de l’OM, j’ai mis dans ma chambre une belle photo du Vieux-Port. A 15 ans, j’ai enfin l’occasion d’aller à Marseille avec mon père, et de me rendre au Stade Vélodrome pour voir OM-Lille. Du virage Nord, j’assiste à un joli match gagné 5-1, mais surtout à une ambiance bleue et blanc : chants, écharpes, fumingènes, insultes, tout cela me plaît beaucoup. C’est décidé : “quand je serai grand, je serai marseillais”. Alors, quand en 2001 j’ai l’occasion d’aller poursuivre mes études à Marseille, je n’ai pas trop hésité. Et ne croyez pas que j’ai été déçu : entre le soleil, la mer, les degrés de température et la douceur de vivre, tout paraît beau quand on le voit avec un regard presque amoureux. On est loin du gris de Paris et des gens qui font la gueule dans les transports en commun. Certes, tout n’est pas parfait (embouteillages, trottoirs sales, etc.), mais je le prends comme des points à améliorer pour le futur : tout est dans la façon d’aborder les choses ! Presque 10 ans après mon arrivée, j’ai désormais pas mal d’attaches dans le port de Marseille : mes enfants y sont nés à Marseille, j’ai créé une boîte bien implantée sur la région, etc. Je suis toujours aussi fier d’écrire “Marseille” sur mes adresses postales, heureux de voir le ciel bleu à mon réveil, de me ballader sur le Vieux-Port, de rouler sur la Corniche, d’aller au Stade Vélodrome. Mon rêve de minot s’est réalisé. Mais j’en ai encore plein.

Ça remonte au début des années 1990, et c’est (forcément) lié à l’OM. C’est l’époque où – dans ma classe de CM2 de banlieue parisienne – chacun choisissait un nom d’un joueur de l’OM pour jouer au ballon en mousse à la récré (pour la petite histoire, j’avais récupéré “Dragan Stojkovic”). Je n’ai pas raté beaucoup de match télévisé de l’OM, que ça soit grâce à un précieux magnétoscope et des réveils à 6h du matin pour voir le match avant l’école, ou des matchs “en crypté” sur Canal Plus avec la radio à côté (je me souviens par exemple du OM-Milan AC de 1991 “entrevu” en plissant les yeux pendant 1 heure). Un peu plus tard, la folie de la Coupe d’Europe 1993 étant passée par là, c’est plus que l’OM, c’est Marseille qui me fascine : Notre-Dame-de-la-Garde, La Canebière, etc. En plus des posters de l’OM, j’ai mis dans ma chambre une belle photo du Vieux-Port. A 15 ans, j’ai enfin l’occasion d’aller à Marseille avec mon père, et de me rendre au Stade Vélodrome pour voir OM-Lille. Du virage Nord, j’assiste à un joli match gagné 5-1, mais surtout à une ambiance bleue et blanc : chants, écharpes, fumigènes, insultes, tout cela me plaît beaucoup. C’est décidé : “quand je serai grand, je serai marseillais”. Alors, quand en 2001 j’ai l’occasion d’aller poursuivre mes études à Marseille, je n’ai pas trop hésité. Et ne croyez pas que j’ai été déçu : entre le soleil, la mer, les degrés de température et la douceur de vivre, tout paraît beau quand on le voit avec un regard presque amoureux. On est loin du gris de Paris et des gens qui font la gueule dans les transports en commun. Certes, tout n’est pas parfait (embouteillages, trottoirs sales, etc.), mais je le prends comme des points à améliorer pour le futur : tout est dans la façon d’aborder les choses ! Presque 10 ans après mon arrivée, j’ai désormais pas mal d’attaches dans le port de Marseille : mes enfants sont nés à Marseille, j’ai créé une boîte bien implantée sur la région marseillaise, etc. Bref, je suis toujours aussi fier d’écrire “Marseille” sur mes adresses postales, heureux de voir le ciel bleu à mon réveil, de passer sur le Vieux-Port, de rouler sur la Corniche, d’aller au Stade Vélodrome. Marseillais d’adoption mais fier de l’être ! Mon rêve de minot s’est réalisé… mais ne vous inquiétez pas, j’en ai encore plein d’autres (qui a dit trop ?).

Organisation technique du développement web

Friday, November 27th, 2009

À l’occasion d’un petit déjeuner organisé par Evolix, en partenariat avec Libertis, la région PACA, le Prides SCS et le FEDER, dans les locaux de Marseille Innovation au Pôle Média Belle de Mai (oui, c’est un peu long mais je me dois de citer tous les partenaires), j’ai pu animer une présentation sur l’organisation technique du développement web. Vous pouvez télécharger les slides de la présentation (format PDF, 2.2 Mo).

Cette présentation a permis de faire un point sur les différentes organisations en place dans des sociétés clientes ou proches d’Evolix. Je remercie d’ailleurs les responsables techniques qui ont répondu à mes questions ces derniers jours. Globalement, il se dégage une forte tendance à l’utilisation d’Eclipse comme IDE, que ça soit pour les projets en Java ou PHP. Au niveau SCM, on retrouve CVS et majoritairement SVN, avec une gestion des branches plus ou moins avancée. En terme de bugracker, c’est assez divers : Trac, Mantis ou Bugzilla. Pour le développement, c’est souvent http://localhost qui est utilisé. Une mise en préproduction est ensuite effectuée, puis une bascule en production, à l’aide de scripts personnalisés s’appuyant sur le SCM. En terme de méthodes, plusieurs sociétés utilisent des méthodes agiles (tests unitaires, sprints, etc.) de façon plus ou moins avancées. En général, l’organisation en place est informelle et reprend les bonnes idées adaptées à son projet. Les benchmarks et tests de performance sont plutôt effectués dans une seconde phase (en préproduction voire en production), sauf dans certains cas où ils sont intégrés aux tests unitaires (ce qui est une très bonne pratique). Enfin, en terme de framework, on distingue deux tendances : l’exploitation d’un framework existant et reconnu, ou l’utilisation d’un framework développé en interne.

Bien évidemment, ce petit inventaire n’a pas la prétention d’être exhaustif ou de définir une organisation idéale. C’est plutôt un passage en revue de bonnes pratiques, permettant de les découvrir … ou de s’assurer qu’on ne passe pas à côté de certains outils.

Mise-à-jour WordPress et sécurisation basique

Thursday, August 13th, 2009

Une faille de sécurité sur le logiciel WordPress permet de réinitialiser le mot de passe d’un utilisateur connu (admin par exemple…). Cela consiste à faire une requête du type http://SERVERNAME/wp-login.php?action=rp&key[]= (soumettre une key[] vide permet apparemment de rendre inutile la vérification par mail). Il est donc conseillé de mettre à jour WordPress en version 2.8.4 (voici le patch pour passer de la version 2.8.3 à 2.8.4).

J’en profite pour rappeler quelques notions basiques pour sécuriser une installation d’un logiciel PHP, surtout quand il est très répandu : si possible, limiter les accès aux parties backoffice via Apache (restriction par adresses IP et/ou authentification HTTP), utiliser des identifiants originaux (pas forcément admin…), des mots de passes complexes, éviter les modules/plugins non fiables, suivre les notifications de mises-à-jour et les appliquer rapidement (cela implique de limiter les modifications intrusives empêchant des futures mises-à-jour, ou du moins les préparer sous forme de patch pour les ré-appliquer très rapidement), etc. Pour le premier point, voici un exemple de sécurisation de WordPress via Apache :

<LocationMatch "^/wordpress/wp-(admin|login)">
Deny from all
Allow from YOUR_IP
</LocationMatch>