Latest posts

Serveur dédié OVH : deux IP fail-over sur la même VM KVM

Il y a maintenant quelques mois, j'ai travaillé à la mise en place d'une petite infrastructure haute-disponibilité à deux noeuds pour l'hébergement d'une application web. Tout fonctionnait parfaitement, jusqu'à ce que l'IP principale, d'un seul coup, ne réponde plus... Soupçonnant un problème de routage, nous avons contacté OVH pour savoir s'il se passait quelque chose de particulier de leur côté. Ils ont reconnu un problème ponctuel lors d'une mise à jour d'un routeur, mais ce problème aurait été corrigé et OVH a donc suggéré que le problème venait de la configuration de la VM. La vérité est entre les deux, mais le problème a bien pu être corrigé après quelques modifications de configurtion sur la VM.

Rappel de la configuration en place

  • Deux VMs en haute disponibilité, ayant chacune leur IP (une IP fail-over avec mac virtuelle) configurée sur eth0
  • Les VMs sont de type KVM (hôte Proxmox 2), OS Debian Squeeze (kernel 2.6.32)
  • Une IP-failover supplémentaire, avec sa mac virtuelle, est utilisée pour l'accès à l'application. En cas de défaillance du serveur 1, cette IP est basculée sur le serveur 2, pour la continuité de service. Cette IP principale est configurée sur eth1 sur les deux VM concernées (heartbeat gère lui-même l'activation de l'interface au besoin).

Explication du problème

La raison pour laquelle l'IP fail-over a cessé de fonctionné est lié aux règles de routages. Jusque là, nous n'avons pas mis en place de règle particulièrement exotique : les seules règles de routage mises en place correspondaient à ce qui est préconisé par OVH pour la mise en place d'une IP fail-over avec mac virtuelle, donc simplement une route par défaut vers l'IP du routeur lié au serveur (IP.DU.SERVEUR.254). Cette route par défaut pointait vers eth0 :

ip route

xx.xx.xx.254 dev eth0  scope link
default via xx.xx.xx.254 dev eth0

(xx reprend l'IP principale du serveur, par les IP-failover)

Cette configuration a fonctionné sans problème jusque là pour nous. Sur les forums OVH, certains utilisateurs semblent utiliser la même stratégie avec succès, tandis que d'autres avaient déjà le problème que nous avons rencontré ces derniers jours.

Il semblerait que selon les routeurs (ou selon leur configuration), les règles de routage 'simples' ne suffisent pas. Le problème est assez simple à comprendre : lorsqu'une requête arrive sur eth1 (par exemple un ping), la réponse à cette requête est transmise selon les règles de routage définies sur le système ; en l'absence de règles spécifiques, la réponse sera donc envoyée selon la route par défaut, qui passe par eth0. Pour protéger son réseau, OVH met en place des règles très strictes concernant la cohérence des informations présentes dans le traffic réseau émanant d'une machine. Si une réponse ayant pour IP source une IP différente de celle associée à l'adresse mac de l'interface par laquelle le traffic réseau est émis, le routeur va s'en rendre compte et ainsi bloquer le traffic avec un certain temps (quelques minutes en général). C'est en tout cas notre analyse après les histoires de ces derniers jours.

La solution : règles de routage avancées

La solution au problème est heureusement assez simple. Mais comme elle n'est documentée clairement nulle-part dans la documentation OVH, il nous a fallu un peu de temps !

Principe de la solution : avoir deux routes par défaut. Une route par défaut générale, et une route par défaut pour le traffic dont l'IP source est l'IP-failover, pour forcer ce traffic sur l'interface eth1, sur laquelle l'IP est configurée. Les outils fournis par iproute2 permettent de faire tout cela en quelques commandes très simples, mais ça ne marche pas toujours (voir plus bas). Attention par contre à ne pas faire d'erreur ! Quand on joue avec le routage à distance, on a vite fait de perdre la connectivé. Vous êtes prévenu, alors prévoyez bien une solution de secours (accès console).

1) Ajouter une table de routage personnalisée

echo "2 failover" > /etc/iproute2/rt_tables

2) Ajouter une route par défaut sur cette table de routage

ip route add default via IP.DU.SERVEUR.254 dev eth1 table failover

Attention à bien utiliser la bonne IP de base comme adresse du routeur. Il s'agit de celle du serveur et non de l'IP fail-over. Si vous ne spécifiez pas cette route, votre machine va envoyer sur cette interface des requêtes ARP inutiles (c'est au routeur de s'en occuper), et votre IP va être bloquée au bout de 48h.

Pour moi, la commande ci-dessus n'a pas fonctionné du premier coup. J'obtenais l'erreur suivante :

RTNETLINK answers: No such process

Il m'a fallu encore quelques heures et une exploration des forums Dedibox (pour changer...) avant de me souvenir que la commande 'ip' ne remplaçait pas encore en totalité les anciennes commandes (notamment la commande 'route'). Donc au moins sous Debian stable, la commande 'ip route add ...' spécifiée au-dessus ne fonctionnera sans doute pas dans le cas d'OVH (où les IP sont sur des subnets différents, et où il faut utiliser exactement la même route par défaut pour toutes les IP fail-over).

La solution est là encore très simple. Il faut utiliser la commande 'route' pour ajouter la route par défaut à la table de routage principale du kernel, qui ensuite la reconnaîtra correctement et nous laissera ajouter la route par défaut sur notre table de routage personnalisée.

route add -host IP.DU.SERVEUR.254 dev eth1

route add default gw IP.DU.SERVEUR.254 dev eth1

Maintenant si vous lancez la commande 'route' toute seule pour vérifier, vous devriez avoir quelque chose comme ça :

Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
vss-gw-6k.fr.eu * 255.255.255.255 UH 0 0 0 eth1
vss-gw-6k.fr.eu * 255.255.255.255 UH 0 0 0 eth0
default vss-gw-6k.fr.eu 0.0.0.0 UG 0 0 0 eth1
default vss-gw-6k.fr.eu 0.0.0.0 UG 0 0 0 eth0

 

Vous pouvez maintenant tenter à nouveau l'ajout de la route par défaut sur la table de routage personnalisée :

ip route add default via IP.DU.SERVEUR.254 dev eth1 table failover

 

3) Ajouter une règle pour utiliser la table de routage selon l'adresse source

ip rule add from IP.FAIL.OVER lookup failover prio 1000

Cela indique au kernel d'utiliser la table de routage failover pour les paquets réseaux émanant de l'IP fail-over, et donc d'utiliser la route par défaut définie dans cette table.

 

Un petit 'ip route flush table cache' permet ensuite de vider le cache de route et d'appliquer les modifications immédiatement.

Quelques liens qui m'ont été particulièrement utiles :

- http://guides.ovh.com/printPage/ConfigurerIpSupplementaire

- http://www.rjsystems.nl/en/2100-adv-routing.php

- http://blog.guiguiabloc.fr/index.php/2008/06/14/routage-avec-deux-cartes-reseaux/

- http://forum.ovh.com/archive/index.php/t-74430.html

- http://forum.online.net/index.php?/topic/1052-configurer-2-ip-sur-une-vm/?hl=rt_tables#entry6575

Déplacer une machine virtuelle KVM vers un autre serveur (hors cluster) avec dd

Dans le cadre d'une bascule de proxmox 1.9 à 2.2, nous avons préféré repartir d'une installation propre d'un cluster proxmox 2.2, sur des serveurs distincts, plutôt que de tenter une mise à jour depuis l'existant. Le risque de downtime en cas de problème est en effet élevé sur ce genre de manipulation à chaud.

En conséquence, impossible d'utiliser les outils de bascule internes à Proxmox pour envoyer les VM d'une machine à l'autre. Heureusement, transférer une machine virtuelle n'est pas vraiment difficile. Voici le scénario :

- création d'une VM aux caractéristiques identiques sur le nouveau cluster (attention surtout à utiliser la même taille de disque, car on va faire une copie bit à bit)

- extinction de la VM originale sur l'ancien cluster, éventuellement après avoir fait quelques modifications de configuration pour coller au niveau cluster (notamment si changement d'IP par exemple)

- copie du volume LVM avec dd par ssh (cf. commande plus bas)

- lancement de la VM sur le nouveau cluster et vérification de la configuration

La commande magique pour la duplication par ssh du volume LVM, avec suivi de progression :

dd if=/dev/pve/vm-103-disk-1 bs=4M 2>/dev/null | pv -tpreb -s 15g | ssh REMOTE_HOST dd of=/dev/pve/vm-105-disk-1 bs=4M 2>/dev/null

Vous devrez adapter les éléments suivants :

- le volume d'origine

- l'hôte de destination (ici REMOTE_HOST)

- le volume de destination

- la taille totale (ici 15g) du volume à transférer, pour que la barre de progression soit juste

Monitoring RAID avec nagios via SNMP sous Debian avec mpt-status

J'utilise Nagios (avec l'interface Centreon) pour réaliser du monitoring de services sur les serveurs que je gère. Il est également possible (et souhaitable) de surveiller l'état des array RAID, pour remplacer le plus tôt possible tout disque défaillant.

J'ai trouvé sur cette page une documentation en anglais expliquant comment mettre en place ce type de monitoring de manière simple, en utilisant sur le serveur monitoré un script analysant la réponse renvoyée par mpt-status, qui sera renvoyée par snmpd sur demande depuis le serveur de monitoring. En voici les grandes lignes, tirées directement de mon expérience.

Configuration utilisée : un serveur de monitoring basé sur FAN (fully automated nagios), une distrib CentOS préconfigurée avec Nagios, Centreon et tout ce qu'il faut. Serveurs à surveiller : diverses configurations matérielles, tournant toutes sous Debian 6, avec un démon SNMPD.

Configuration des clients à surveiller

Télécharger ce script et placez-le par exemple dans /usr/local/bin sur toutes les machines pour lesquelles vous souhaitez surveiller l'état du RAID.

Attention, j'ai modifié le script en question. Dans le cas d'un statut avec erreur, il n'y avait pas d'output du code d'erreur. J'ai donc rajouté une ligne print "CRITICAL - " de la manière suivante, ligne 78 :

        if (!$logical_is_optimal || !$phys_all_online) {
                print "CRITICAL - ";
                print $status_output;
                exit $ERRORS{'WARNING'};
        }

Pensez à bien donner les droits d'exécution sur le script en question :

chmod 755 /usr/local/bin/check_mptsas

Dans le fichier /etc/snmp/snmpd.conf, ajoutez la ligne suivante :

exec check_mptsas_raid /usr/local/bin/check_mptsas

Cela permet de définir une nouvelle commande snmpd que pourra solliciter nagios, et qui est déléguée au script que l'on a téléchargé plus haut.

Redémarrez le démon snmpd pour appliquer les changements.

Configuration du serveur nagios

J'utilise exclusivement Centreon pour toute la configuration. Mais il faut toutefois mettre en place un petit script qui va utiliser la fonction d'exécution à distance par SNMP. Vous pouvez télécharger ce script, qui vient de cette page.

Voici donc la démarche que j'ai suivie :

Installation du script ci-dessus dans /usr/lib/nagios/plugins/contrib

Modification dans le script de l'appel à utils.sh. Il faut faire pointer vers le bon chemin (dans mon cas /usr/lib/nagios/plugins/utils.sh).

Création d'une nouvelle commande nagios (depuis centreon), que j'appelle check_mptsas_raid, avec comme ligne de commande

$USER1$/check_snmp_exec.sh $HOSTADDRESS$ check_mptsas_raid

Et enfin création tout à fait classique d'un nouveau service de monitoring qui va appel à la commande check_mptsas_raid, que l'on pourra appliquer diférents hôtes à monitorer.

Cas particulier : contrôleurs raid Smart Array G6

Sur les Dedibox ENT HP se trouvent un contrôleur RAID qui n'est pas compatible avec l'outil mpt-status. Pour faire du monitoring, il faut donc utiliser l'outil hpacucli.

J'ai donc adapté le script mentionné plus haut (celui à mettre sur les clients), pour en produire un compatible avec hpacucli. Il n'est peut-être pas tout à fait aussi beau et complet que l'autre, mais il devrait fonctionner. Attention toutefois, je n'ai pas encore eu de problème avec ce RAID me permettant de valider définitivement l'outil. A vérifier donc !

#!/usr/bin/perl -w

# $Id$

# check_mptsas v1.0 - Check LSI Fusion RAID status
# Copyright (c) 2010, John Morrissey <jwm@horde.net>
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, 5th Floor, Boston, MA 02110-1301
# USA.

# Requires hpacucli from HP


use strict;

my %ERRORS = (
        'OK' => 0,
        'WARNING' => 1,
        'CRITICAL' => 2,
        'UNKNOWN' => 3,
        'DEPENDENT' => 4,
);

# You may need to update this if your mpt-status(8) is in a different
# location.
$ENV{'PATH'} = "$ENV{'PATH'}:/sbin:/usr/sbin";

if (!open(MPT_LOGICAL_STAT, 'sudo hpacucli ctrl slot=4 logicaldrive all show status |')) {
        print "ERROR: could not execute 'hpacucli'.\n";
        exit $ERRORS{'UNKNOWN'};
}

my $status_output;

while (<MPT_LOGICAL_STAT>) {
        if (!/logicaldrive ([0-9]+)/) {
                next;
        }

        if (!/OK$/){
                print "CRITICAL - ";
                print $_;
                exit $ERRORS{'CRITICAL'};
        }
        $status_output = $_;
}

if (!open(MPT_PHYSICAL_STAT, 'sudo hpacucli ctrl slot=4 physicaldrive all show status |')) {
        print "ERROR: could not execute 'hpacucli'.\n";
        exit $ERRORS{'UNKNOWN'};
}

while (<MPT_PHYSICAL_STAT>) {
        if (!/physicaldrive ([0-9]+)/) {
                next;
        }
        if (!/OK$/){
                print "CRITICAL - ";
                print $_;
                exit $ERRORS{'CRITICAL'};
        }
}

print "OK -";
print $status_output;
exit $ERRORS{'OK'};

 

MuseScore : logiciel libre d'écriture musicale

Je viens juste de trouver un logiciel libre multiplateforme (linux, mac, windows), multilingue (en tout cas anglais et français), simple et complet ! Ca s'appelle 'MuseScore', et ça se passe ici : http://musescore.org/fr

Je suis en train de tester, et ça m'a l'air plutôt bien parti.

Installer Proxmox V2 beta sur Debian Squeeze

Aujourd'hui, installation de proxmox sur un nouveau serveur (une grosse Dedibox). Etrangement, le système d'initialisation du serveur ne m'a pas proposé la distrib proxmox préconfigurée. Je suis donc parti sur une Debian 6 (squeeze) 64bits vierge, pour y installer ensuite proxmox manuellement.

Ma dernière installation remontant à un petit moment, j'ai refait un petit tour sur le wiki de Proxmox VE, et là surprise : une doc spécifique pour Squeeze, qui installe la V2 beta. S'agissant d'une config totalement à neuf, j'ai décidé de jouer le jeu et de suivre les instructions jusqu'au bout. Il faudra faire gaffe lors des mises à jour et bien suivre les changelogs, s'agissant d'une beta, mais ça semble déjà bien avancé.

J'ai donc suivi les instructions présentes sur la page dédiée à l'installation sur Squeeze, sans rencontrer de problème particulier. J'ai même été jusqu'à la configuration du bridge directement depuis l'interface, et là encore aucun souci. Le système de configuration du réseau pour le node est bien fait : il présente un diff du fichier /etc/network/interfaces qui sera appliqué seulement après reboot de la machine. Il est donc très simple de réaliser la configuration souhaitée, vérifier le fichier final, et redémarrer quand tout semble bon.

Pas de problème non plus pour l'ajout d'un volume group LVM pour le stockage. Les PV et VG LVM doivent pour l'instant être créées à la main, mais vu le formulaire, il est probable que la création depuis l'interface soit néanmoins prévue à terme.

Enfin pas de problème non plus pour la création d'une VM. Beaucoup plus d'options sont disponibles par rapport à la précédente interface, il va falloir que je me documente sur les optimisations possibles.

Dans l'ensemble donc une très bonne impression sur cette nouvelle interface, et l'ensemble est toujours aussi simple à installer et configurer. Prochaine étape : les outils de cluster et la gestion haute disponibilité (la vraie grosse nouveauté fonctionnelle promise pour Proxmox V2).

Un écologiste au deuxième tour des présidentielles (finlandaises !)

Je n'ai suivi que du coin de l'oeil la campagne des élections présidentielles, qui se déroulent en ce moment même. J'aurais peut-être du m'y intéresser d'un peu plus près, car hier soir la surprise était de taille : le candidat conservateur favori depuis le départ (Sauli Niinistö) sera opposé au deuxième tour à un écologiste (Pekka Haavisto).

En réalité, la surprise était un peu attendue. Les sondages donnaient bien une bataille serrée entre Haavisto et Värynen (arrivé troisième). Mais dans l'histoire politique finlandaise, c'est la première fois qu'un écologiste arrive au second tour, et également la première fois que la gauche "traditionnelle" n'y est pas représentée. Je ne suis pas encore assez informé sur les écologistes finlandais pour pouvoir les placer précisément, mais ils restent globalement à gauche tout de même.

Quoi qu'il en soit, ne nous laissons pas emporter par nos cadres habituels calqués sur le schéma politique français, tout cela doit évidemment être replacé dans le contexte finlandais. Commençons donc par un petit court de droit constitutionnel pour savoir de quoi l'on parle.

Les pouvoirs du Président ont été diminués par amendement constitutionnel en 1999, réduisant considérablement son influence sur la politique intérieure. Le pouvoir est ainsi partagé avec le Premier ministre, qui compose un gouvernement (souvent de coalition avec deux ou trois autres partis, car le système de représentation à la proportionnelle génère souvent des majorités relatives et de nombreux partis représentés au parlement). Concrètement, le président est essentiellement responsable de la représentation du pays à l'étranger, de la politique étrangère (en étroit partenariat avec le ministre des affaires étrangères et le premier ministre), dispose de divers pouvoirs de nomination, et est le chef des armées. Dans de nombreux cas, les décisions doivent être approuvées par le Parlement (le pouvoir législatif finlandais est unicaméral). Au final, le pouvoir du Président reste assez limité par rapport à ceux du Premier ministre. L'élection du Président se joue donc autant voir plus sur la personnalité du candidat que sur ses idées ou son parti.

Par opposition, le Premier ministre est généralement le porte-parole du parti majoritaire ou leader de la coalition, et émane donc directement des résultats des élections législatives, beaucoup plus politisées. Cela a une conséquence sur un des aspects de la perception du rôle du Président par les citoyens : selon la vie interne des partis et des gouvernements, la rotation du Premier ministre est régulière et peut être rapide ; le Président est alors perçu comme un élément de stabilité. A titre d'illustration, l'actuelle présidente (Tarja Halonen) a connu 6 gouvernements différents (avec 5 premiers ministres distincts) sur ses deux mandats (soit 12 ans au total). La personnalité du Président devra donc couvrir un double objectif de représentativité à l'extérieur et de solidité pour garantir la continuité du pouvoir, au-delà des rotations gouvernementales.

A première vue, la plupart des remarques ci-dessus pourraient être applicables à certaines mandatures présidentielles françaises. Mais il y a une différence fondamentale : la combinaison du mode de scrutin pour les élections législatives et l'organisation de la vie politique au sein des partis rend quasiment impossible une situation où le Président pourrait de fait disposer d'un pouvoir étendu, tandis qu'en France un Président chef de parti et disposant d'une majorité absolue à l'assemblée nationale et au sénat dispose de fait et par extension de pouvoirs considérables. Les modifications constitutionnelles de 1999 ont justement été apportées pour éviter ce type de situation ; auparavant, le Président disposait de par sa fonction elle-même de pouvoirs très étendus.

Après cette brève présentation institutionnelle, revenons à nos candidats finlandais. Tous deux sont pro-européens, ce qui a pour avantage de sceller une bonne fois pour toutes cette question, et surtout de libérer de l'espace de débat pour d'autres questions. La campagne avait jusque là beaucoup tourné autour des questions européennes, pour deux raisons : la première, évidente, liée à l'actualité ; la seconde tient à mon avis aux résultats des élections législatives de 2011, où le parti populiste des "Vrais Finlandais", prônant une sortie de l'Union Européenne, avait réalisé une impressionnante percée, rassemblant 19,1% des suffrages. En conséquence, en raison de l'échéancier, de l'actualité et de l'occupation de l'espace médiatique par Timo Soini (leader des Vrais Finlandais), tout était réuni pour concentrer une grande partie des débats sur les questions européennes. C'est en réalité paradoxal, car les questions européennes restent du ressort du gouvernement, et non du Président. Les résultats de ce dimanche devraient donc permettre de passer à autre chose, Timo Soini n'ayant cette fois-ci receuilli que 9,4% des voix.

Pour la suite, Niinistö est évidemment grand favori : vétéran de la politique Finlandaise, il était déjà présent au second tour des dernières présidentielles, et n'a perdu que de peu face à Tarja Halonen (51,8% contre 48,2%). Il possède donc tout ce qu'il faut de la stature Présidentielle. Après un petit tour sur son site internet, on sent bien qu'il dégage à la fois le sérieux requis par la fonction et la proximité populaire attendue par les citoyens. Il a monté pour la campagne tout un réseau de "Cafés Niinistö" dans le pays, qui lui ont servi de relais locaux, points de débats et de rencontres lors de ses déplacements. Sa communication est bien rôdée, efficace. Et tous les chiffres sont en sa faveur, tant les sondages depuis des mois que les résultats du premier tour (37% contre 18,6% pour Haavisto).

Néanmions, Haavisto a pour lui la jeunesse (53 ans, 10 ans de moins que Niinistö), la modernité, et surtout la compétence. Niinistö a été ministre de de la justice, ministre des finances et président du parlement. Ces fonctions ne sont pas particulièrement liées aux compétences attendues d'un Président. Haavisto de son côté a été ministre de l'environnement, mais a surtout travaillé pour les Nations Unies (au sein du PNUE, le programme environnemental, dans le cadre duquel il a exploré beaucoup de zones en crise) et l'Union Européenne, pour laquelle il a été négociateur de paix au Soudan et au Darfour. Ces expériences le placent certainement au-dessus de son adversaire du point de vue de la compétence brute. Est-ce que cela suffira ? C'est peu probable, mais pas totalement exclu.

Notez enfin que Haavisto est homosexuel (publiquement déclaré) et que son compagnon est un immigrant travaillant comme coiffeur ! Si cela ne peut s'intégrer dans aucun argumentaire, c'est néanmoins symboliquement fort, et le rapproche certainement du peuple (en tout cas des jeunes urbains, auprès desquels il a recueilli le plus de voix). Dans un pays qui par certains aspects peut être assez intolérant, le fait que Haavisto atteigne le second tour, avec la personnalité qu'il incarne et les valeurs qu'il porte, n'est pas anodin.

Autant j'étais dimanche dernier assez éloigné de l'effervescence électorale, autant je pense que dans deux semaines je serai bien au coeur des événements ! D'ici là, suivez l'actualité, même s'il est difficile de trouver des ressources francophones sur le sujet.

Début d'un petit guide administratif (pour particulier et dirigeants)

Je viens de commencer à publier quelques pages relatives aux démarches administratives auxquelles je suis soumis à la fois comme particulier et comme dirigeant de ma société. A terme, je souhaite documenter la totalité des démarches que je réalise tout au long de l'année.

Pour commencer, je viens de mettre en ligne les pages suivantes :

Je les complèterai au fur et à mesure, et posterai en actualité les mises à jour les plus importantes. Si tout se passe bien, et sous réserve de modifications légales en cours de route, je devrais avoir d'ici un an un guide administratif complet pour les résidents français en Finlande et pour les dirigeants de petites sociétés (SAS [société par actions simplifiée] dans mon cas).

Joyeux Noël !

Joyeux Noël à tous, depuis la Laponie !

[[{"type":"media","view_mode":"media_large","fid":"325","attributes":{"alt":"","class":"media-image","style":"display: block; margin-left: auto; margin-right: auto;","typeof":"foaf:Image"}}]]

C'est parti, nouveau site en ligne !

Après des mois de tâtonnements techniques, je lance enfin cette nouvelle version de mon espace perso sur internet. L'objectif est avant tout de me permettre de publier facilement des ressources à destination des amis et de la famille, et de conserver pour moi-même en archives divers types de ressources.

Et bien sûr, comme la plupart des blogs, j'envisage d'en profiter pour partager publiquement tout ce qui est plus ou moins proche de mes principaux centres d'intérêt.

Pour l'instant, c'est un peu vide... et je ne vais rien promettre quant à la régularité de mes contributions ! On verra sur le long terme. Je vous invite donc à passer par ici de temps en temps, ou bien à vous abonner au flux RSS.

Surtout n'hésitez pas à me donner votre avis et faire des suggestions sur le contenu, l'organisation et la mise en page de cet espace. N'oubliez pas enfin qu'il s'agit d'un site multilingue. Certains contenus seront traduits, mais d'autres ne sont disponibles que dans une seule langue ; pour les voir, vous devrez donc changer la langue courante (en haut à droite).

Un arbre, deux arbres, trois arbres...

Vu ce matin dans la forêt :

[[{"type":"media","view_mode":"media_large","fid":"14","attributes":{"alt":"","class":"media-image","typeof":"foaf:Image"}}]]

Bon courage, elle est grande, cette forêt... !

Tags:

Une bonne documentation pour créer un blog avec Drupal 7

Avant de me lancer dans la mise en place d'un nouveau site, j'ai du explorer une bonne dizaines d'approches. De la création from scratch à l'utilisation de CMS Rails et PHP, j'ai finalement opté pour Drupal. La prise en main n'est pas évidente, mais étant donné mes besoins (blog, albums photos, gestion avancée de droits d'accès pour les partages privés, cryptage, etc.) je pense que c'est le bon choix.

Pour démarrer, je me suis appuyé sur une excellente documentation (en anglais), destinée à mettre en place un blog fonctionnel avec Drupal 7. Vous la trouverez ici : http://learnbythedrop.com/drop/182

 

Tags:

S'abonner à Latest posts