Comme mon travail en tant qu’administrateur système dans une société Web me fait rencontrer de nouveaux problèmes chaques jours, je me suis dit qu'il fallait que le monde profite de mes solutions :).

 

Alternate USB et CD, la meeerde!

Putin. Ça fait 3 mois que j’ai rien publié. Ça craint. En même temps j’ai rien fait qui aurait pu justifié un GROS article. Et même pour celui là, j’ai un peu honte.

Aujourd’hui j’vais vous donner une petite astuce pour les alternates CD des distributions Ubuntu.

Pour rappel, les alternates CD, ce sont des CD d’installation Linux sans la possibilité de faire du LiveCD (et sans avoir a passer par elle pour installer le système). Elles trouvent leur utilité sur les vieilles bécanes. D’ailleurs, c’est assez mal foutu, puisqu’une distribution légère comme Xubuntu et Lubuntu, faites pour être installées sur de vieilles machines, n’arrivent pas (ou difficilement au prix d’heures de chargement) à tourner en LiveCD. Forcement, c’est des système qui, Ok, a partir du disque, peuvent se contenter de 512 MoRAM, mais en LiveCD, MEGAPURGE.

Bref, donc il existe des versions moches de liveCD, ou l’on se retrouve vers des écrans d’installation style 1985. C’est très OldScool, et les habitués de DéBian seront content de l’avoir.

Le problème que j’ai rencontré, via le créateur de CD de démarrage d’Ubuntu, c’est qu’une fois la clé USB remplie de la version Alternate de Xubuntu, pendant l’installation, il me demandait (ce gros baltringue) de mettre le CD de Xubuntu. C’est idiot. Mais chez Canonical, on en est plus a une connerie près (dédicace pour @Jee4404 ).

Le Wiki d’Ubuntu met a sa disposition une solution : http://doc.ubuntu-fr.org/installation_alternate en ajoutant cdrom-detect/try-usb=true à votre isolinux.cfg. Personnellement, pour moi ça n’a pas marché, et en plus visiblement la 12.04 de Xubuntu est déjà configurée comme ça par défaut.

Heureusement, ce dernier, après avoir lâchement abandonné l’installation, vous propose plusieurs choses, comme continuer l’installation (mais il va gueuler parce qu’il aura pas les fichiers) ou alors vous donner un accès au shell (dernier dans la liste des propositions).

Donc, il faut prendre l’accès au shell, et se retrouver avec le bon vieux shell old Unix.

~ #

On va donc TRUANDER. Ouai. Vraiment. On va lui raconter des cracks a Linux.

Déjà, il faut que vous connaissiez le périphérique de votre clé USB. Vous savez, dans /dev/, il y a plein de sda, sdb, sdc etc…, et bien il faut trouver celui de votre clé. Si vous n’avez qu’un disque dur et votre clé, ça devrait normalement être /dev/sdb, mais vérifiez si possible, c’est plus sur.

Suivez les commandes ci dessous, en remplaçant sdX par votre clé USB (par exemple sda, sdb ou autre), et je vous les explique après:

~ # cd /dev

~ # rm cdrom

~ # ln -s /dev/sdX /dev/cdrom

“Ok mec c’est quoi cette bouffonnerie?” vous dites vous. Et bien je me suis posé le problème a l’envers. “Si Linux veut un périphérique sur lequel pomper ses fichier, et bien on a qu’a lui donner”. De façon automatique, il cherchait visiblement a faire un mount /dev/cdrom /cdrom , je me suis donc dit qu’un point de montage est un point de montage, et qu’il fallait donc lui faire croire que la clé USB était un CD.

On supprime donc le périphérique du cdrom (qui est physiquement lui aussi un lien symbolique), et on le remplace par un autre lien symbolique, du même nom, qui pointe vers la clé USB.

Et là TADAAAA.

On reprend l’installation là ou il s’était arrêté (monter le CD), et on envoie. Et là miracle, il lance l’analyse du CD puis l’installation. Bon, c’est long par contre hein, on est sur du 512 MoRam et un intel Celeron Mobile. Faut pas le brusquer.

/me lance l’ordi par la fenêtre.

Voila voila. C’était cool non?

“Ouaaai, génial! 4ans pour installé Linux sur cette merde! Ça c’est cool!”

Comment faire des miracles avec un système de merde (Windows 7).

Bonjour à tous, petit tuto du matin qui porte sur un système d’exploitation un peu plus connu que GNU/Linux : Microsoft Windows 7.

Vous avez sans doutes eu le problème suivant un jour dans votre vie de nerd :

Vous avez acheté un nouvel ordi, ou une nouvelle carte mère pour votre ordi, dans le but de booster vos performances et pouvoirs dépasser les 15 FPS à Dalaran sur World of Warcraft. Vous l’installez, montez votre nouvelle carte, votre nouveau processeur, votre RAM, vous remontez votre disque dur, vous lancez l’ordi, et là, patatra, au lancement du système, votre Windows vous gratifie d’un merveilleux BSOD (Blue Screen Of Death), vous fais un joyeux fuck et s’éteint. Pour les systèmes plus récents, comme Vista ou Seven, qui accueillent un WinRE (partition de récupération Windows), le système va alors tenter de réparer l’erreur, et va, comme solution miraculeuse, vous demander de reformater votre partition système (si vous en avez une) ou tout votre disque (si vous n’aviez pas prévu le coup).

De rage, donc, vous projetez violemment votre nouvelle carte mère par dessus la rambarde de la fenêtre, et remontez tout votre ancien matériel afin d’effectuer une sauvegarde de vos précieux fichiers de porn personnels.

PAS DE PANIQUE!

Nakou à creusé la question, lui même confronté à ce problème hier soir. Mon dernier reformatage datant de moins de 6 mois, je n’avais aucune envie de reformater, et de perdre ainsi mon iTunes bien rempli, mes jeux et tout ce que je glandouille sur mon PC fixe, même si la perte n’aurait été que temporaire, vu que je fais des sauvegardes (Règle de l’Administrateur Système n°1 : Assurez vous toujours de la redondance de vos sauvegardes).

Avant propos et Explications

Il est important de comprendre déjà pourquoi est ce que Windows est si compliqué à ce niveau là, alors qu’un Linux peut se lancer simultanement sur plusieurs machines via un montage NFS, avec des materiels differents (carte mère, RAM, disques et carte graphiques) sans souci.

En fait tout deux sont d’une conception radicalement différente. Alors que Linux s’appuis sur son noyau modulaire, et sur sa capacité à configurer ses périphériques depuis la couche utilisateur, Windows lui inscrit lui presque tout en dur dans le système à l’installation.

Ce qui nous pose problème ici en fait, c’est l’inscription dans les clés de registres des contrôleurs, issues de la carte mère. Ces contrôleurs vont permettes à Windows d’utiliser son matériel, mais ces derniers ne correspondront plus au nouveau une fois transférer, ce qui nous pose problème ici.

Solution

La solution est donc la suivante. Nous allons utilisé un outil, inclus dans Windows 7, qui permet normalement d’initialiser un système Windows en vue de son déploiement sur un nombre important. Il était évident qu’il existait quelque chose chez Microsoft pour faire ça. Imaginez que vous ne puissiez jamais cloner un système, et qu’il vous faut le déployer sur une centaine de machine. Cela impliquerai donc de prendre le temps d’installer Windows sur toutes les machines. Impensable. En temps normal, on installe un seul et unique système, configuré et possédant les programmes nécessaires, puis on le déploie sous forme de clone dans le parc informatique.

J’ai donc trouvé cet outil. C’est l’outil “Sysprep” pour “System Preparation” qui permet, une fois une machine installée, de purger la base de registre et le magasin de Microsoft pour en extraire les valeurs correspondantes au matériel.

Ici nous allons détourner son utilisation afin de changer d’ordinateur ou de matériel sans changer de système.

Procédure

Uniquement pour Windows 7.

A ne faire qu’une fois la sauvegarde de votre système effectué correctement, sur support externe comme un disque dur externe ou une clé USB.

Donc démarrez votre Windows sur votre ancien matériel, allez dans le menu démarrer. Dans le champ recherche, tapez “cmd” et entré.

Vous voici dans l’invite de commande.

tapez :

cd c:\Windows\System32\Sysprep\

vous êtes maintenant dans le dossier du sysprep et vous devriez voir :

c:\Windows\System32\Sysprep>

maintenant vous allez taper :

> sysprep.exe -generalize -oobe

Une boite de dialogue va s’afficher pour lancer la purge de votre base de registre.

Une fois terminé, l’ordinateur va s’eteindre correctement.

Vous pouvez donc prendre votre disque dur système, et le transférer sur votre nouveau matériel.

Et maintenant priez. Priez très fort. Car il y a tout de même une chance que vous deviez réinstaller tout votre système.

Si le logo au dessus de “Démarrage de Windows” s’unifie et se forme correctement, et commence à pulser, c’est gagné, le chargement de la carte mère est en début de processus. Si ça plante après, c’est très certainement une autre partie de votre matériel qui déconne.

Au démarrage, il va démarrer comme un système tout neuf, vous demander un nom d’utilisateur et de machine :

PAS DE PANIQUE

Votre/Vos utilisateur(s) existe(nt) toujours, d’ailleurs si vous cherche à mettre un pseudonyme identique à celui que vous utilisez, il va vous envoyer péter disant qu’il est déjà pris, ce qui était pour moi, dans un moment de panique, un putin de bon signe. Une fois ce passage passé, le système va créer une nouvelle base de registre pour le matériel, et inscrire les partie effacée par le sysprep.

Il me semble qu’il y a un redémarrage et Tadaaa, votre session, vos fichiers et vos programmes sont de retours.

La suite

Sachez qu’après une telle opération, je conseille de faire quand même une défrag et un check disk, pour éviter que la vitesse de votre nouveau matériel ne pâtisse de la fragmentation désastreuse des systèmes microsoft =).
Sachez aussi que votre version de Windows ne sera plus considérée comme activée, il vous faudra donc faire clic droit sur “ordinateur” dans le menu démarré, propriété, et à descendre tout en bas de la page pour le réactiver.

https://twitter.com/#!/Nakou/media/slideshow?url=pic.twitter.com%2Fri98nH8Q
https://twitter.com/#!/Nakou/media/slideshow?url=pic.twitter.com%2FXGAeqPwU

Voila, votre système fonctionne, nous vous souhaitons, moi, Sykrim et ma grosse bestiole, bonne continuation, et à bientôt pour un nouvel article!

Popularité de GNU/Linux, jeux vidéos, bref, “Guys, DO YOUR F**KIN JOB!”

Je suis quelqu’un qui débat. Je débat sur tout et n’importe quoi, parce qu’il m’importe de faire passer des idées. Au delà de tout débat politique que je pourrai tenir, dans d’autres lieux que ce blog consacré à l’informatique, je veux ici aborder une idée reçue :

“Linux, ça sert a rien! Rien ne tourne dessus et c’est compliqué à utiliser!”

Cette phrase, je l’entends maintes fois prononcés par des utilisateurs déçus, des néophytes écurés par la complexité apparente des systèmes linux, souvent due à l’idée véhiculé par les médias. Elle est aussi prononcé parfois par des ignorants, mais ceux là sont pardonné par leur inculture totale du sujet. Ceux là je les ignore et les méprises, car ils n’ont pas fait l’effort, et donc méritent tout, sauf mon respect.

Dont panic! Linux is simple!*

Contrairement à l’idée que les gens s’en font, GNU/Linux, et la distribution issue de Debian, Ubuntu, sont aujourd’hui tellement simple que même votre grand mère pourrait l’utiliser.

Mais il y a un hic, et c’est là que les gens gueulent, c’est la difficulté de faire démarrer des éléments prévus pour Windows sur leur système Linux.

On pourrait se réjouir de la présence de Wine, qui permet tant bien que mal de faire démarrer quelques jeux, comme World of Warcraft, LoL et d’autres, en contrepartie de quelques efforts de configuration, qui sont, tout de même, de plus en plus assistés (notamment grâce à Winetricks). Le site de WineHQ annonce quand même plus de 5350 jeux supportés dont Skyrim en qualité “Gold et Platinium”, ce qui implique une gestion assez magistrale des jeux récents.

Au delà des jeux, c’est près de 12000 applications Microsoft que Wine peut faire tourner, avec plus ou moins de réussite, certes, mais quand même, ce n’est pas rien.

Mais maintenant, il y a quelque chose de vrai. Pour faire tourner un jeu sur Linux, il faut donc installer Linux + Wine + Dépendances + Eléments de Wine nécessaire au bon fonctionnement de jeu.

Comparativement à Windows, ou l’on insère le DVD, ou on télécharge le jeu (légalement bien sur), on prie pour que ça ne plante pas, et on joue.

Mais est-ce réellement la faute des utilisateurs?

Microsoft a gangrené le marché pendant 30 ans.

Il y a quelque chose que j’aimerai clarifier ici et briser pour certains une idée reçue : Ce n’est pas parce qu’un programme tourne sous GNU/Linux, qu’il est forcement gratuit, ou libre, ou Open source, qu’il respecte obligatoirement la License GPL. Certains programmes tournent sous copyright (même si ça déplais à Stallman) et coûtes des ronds. Ubuntu accueil d’ailleurs depuis la 11.10 des applications payantes dans sa logithèque en ligne. le business est donc possible sur Linux! Peut être même plus, compte tenu de l’économie réalisé par les consommateurs en se tournant vers un système d’exploitation entièrement gratuit.

Partant du principe qu’il existe donc un monde obéissant aux lois du capital dans l’univers du libre, que coûterait aux développeurs de jeux vidéo, pour compiler, compacter et sortir leurs jeux sur Linux?

Peut être un peu de temps, un peu d’argent, mais quand même, on ne dois pas le re-coder entièrement à ce que je sache! Rallonger d’un mois la sortie d’un jeu pour qu’ils soit portable sur tout les systèmes, c’est pourtant pas bien compliqué. Notch l’a compris en sortant un jeu multi-plateforme. De plus les langages propriétaires comme le C# seraient les seuls affectés par un manque de portabilité, mais on s’en fiche, c’est du Java! Y’a qu’a le transposer et lâcher définitivement le C# qui reste quand même une erreur colossale!

En plus pour le peu de jeu qui ont fait le choix du C#, une infime partie du panel de jeux actuellement sur le marché ne serait pas affectés.

Un effort commun

Mon propos est le suivant : Microsoft Windows, avec la sortie de sa version 8, va devenir de plus en plus privative : Contrôle totale sur la machine, désinstallation à distances des outils piratés, la menace d’un contrôle total sera peut être permanente sur ces systèmes, et les gens vont peut-être, je l’espère, avoir l’intelligence de chercher une alternative. Cette volonté qui viendra, j’en suis sur, de la part d’utilisateur aguerris mais pas forcement forcenés (je pense à ceux qui sont capables en temps normal de pirater un Photoshop CS5 en appliquant des patchs sur leur fichiers hosts) qui chercherons des solutions d’échapper aux contrôles, que ce soit par liberté de piratage, ou par envie d’être libre, tout simplement.

Il est pour moi donc important que la communauté des développeurs de jeux vidéos se mettent en ordre de marche pour assurer la portabilité des produits sur les plateformes GNU/Linux.

Valve Corporation, par le biais de Steam, avait suscité l’espoir en annonçant la sortie hypothétique d’un client Steam Linux, ouvrant ainsi la voie aux studios de pouvoir faire profiter aux utilisateurs de ce système, une partie de la bibliothèque dans laquelle ont retrouve une grande quantité des jeux PC actuel.

Il faut à tout pris soutenir et encouragé des projets de ce type, par le biais de sondages, et de réclamation pour montrer que le marché est là, et qu’il attend. il faut pousser aussi les autres, comme Origin pour EAGames, et des studios comme Ubisoft ,à lancer eux aussi la même initiative, et les pousser à sortir leurs jeux sous Linux.

Oui, ce billet est plus ou moins un appel, un appel d’un développeur et d’un joueur, tournant sous GNU/Linux depuis maintenant 5 ans, et qui aimerai beaucoup se débarrasser de Windows 7 sur son PC fixe, qu’il est obligé de lancer tout les jours pour jouer sur Steam :p.

*Pas de panique, Linux, c’est Simple!

Scripts et erreurs “bad substitution error”

Bonjour à tous.

Aujourd’hui pas de tuto mais une petite info.

Si un jour vous installer un script depuis une machine Debian vers un Ubuntu, ou vers une autre version de Gnu/Linux ou une version plus ou moins récentes, vous pouvez, à l’execution, vous retrouver devant l’erreur “Bad Substitution”.

PAS DE PANIQUE

Cette erreur est très souvent lié aux version du shell que vous utilisez en entête de votre script.

Donc pensez à tenter de remplacer 

#!/bin/sh

Par d’autres variantes de votre Shell comme par exemple 

#!/bin/bash

Ou comme je l’ai vu sur un forum 

#!/usr/bin/ksh

J’ai fais ce post car le problème s’est posé à moi, et je n’ai trouvé que peu de réponses sur le sujet. C’est plus ou moins du bricolage, mais ça passe! Et c’est pratique quand on a un script complexe à débugger alors que l’erreur se passe là.

Sur ce bonne journée!

“Gource” pour vos dépôts Git

Bonjour à tous!

Petit billet plein de légèreté et de beauté aujourd’hui. Vous, brillants administrateurs systèmes qui tombez par hasard sur ce blog en quête de réponses improbables, n’avez jamais rêvé d’un peu de couleur et de folie pour vos environnement de développement?

Donc aujourd’hui je vais vous parler d’un petit logiciel sympatoch nommé gource.

Gource est un logiciel de visualisation de projet git/svn qui permet de voir les dossiers, les branches, les commits et les membres à partir des logs sur le projet en question. Niveau professionnel, l’intérêt est plus que limité, mais d’un point de vue visuel, qu’est ce que ça en jette ;D.

Voici par exemple ce que des petits malins ont générés à partir des dépôts git de php. On y voit les contributions et les évolutions au fur et à mesure, comme la naissance de php 4 puis 5.

Pour vous amuser à visualiser vos projets, voici donc la marche à suivre :

Etape 1 : Installer les dépendances et les librairies.

Ce logiciel fonctionne avec les librairies SDL compilées en C++ (j’ai d’ailleurs été bien surpris de voir à quel point ces librairies commençaient à devenir intéressantes, ne se contentant plus de faire du 2D SNES, je devrais plus me tenir au courant).

Pour ce faire donc, sur une machine debian (Ubuntu 11.10 dans mon cas) envoyer la commande suivante :

sudo apt-get install build-essential libsdl1.2-dev libsdl-image1.2-dev libftgl-dev libpcre3-dev libpng12-dev libjpeg62-dev

Etape 2 : Installer “Gource”.

Les versions de “gource” sont disponibles à la page suivante : http://code.google.com/p/gource/downloads/list

Etant codé en C++, ces derniers nous gratifient joyeusement d’une versions Win32 ce qui satisfera nos chers utilisateurs de Microsoft :).

Une fois les sources décompressées, il s’agis maintenant de les compiler afin d’obtenir un exécutable. Les commandes classiques suffisent :

cd /Repertoire_de_Gource
./configure
make
sudo make install

Si vous n’avez pas fait de connerie, normalement, si vous envoyez dans votre terminal :

gource -h

Vous devriez voir apparaître la liste d’aide (assez complète) pour gource et donc que votre installation sera un succès.

Etape 3 : Utiliser “Gource”.

Maintenant que gource est installé, il ne vous reste plus qu’a vous rendre dans votre dossier ou siège votre clone local de git (le dossier qui contient le .git in fact).

cd Dossier_du_Projet

Et à lancer la commande suivante, qui est la commande standard pour avoir un rendu vif et dynamique :

gource —seconds-per-day 80 —auto-skip-seconds 0.1 —file-idle-time 500 —max-files 500 —multi-sampling -1280x720 —stop-at-end —elasticity 0.1 -b 000000  —hide filenames,dirnames  —disable-progress —user-friction .2 —disable-bloom

Les arguments de commande sont suffisament clair pour faire ce que vous voulez. Par défaut la visualisation est en fenetré, mais vous pouvez le faire facilement passer en plein écran (et épater vos colègues) avec l’argument supplémentaire

“-f” ou “—fullscreen”.

Voila, grâce à Gource, vous allez pouvoir faire tomber les filles en soirée en montrant “Voila ce que c’est qu’être développeur!”.

C’est comme jouer de la guitare mais en mieux.

Etape bonus : compresser votre résultat en vidéo.

Si vous voulez faire baver le monde devant vos réalisations et pouvoir les héberger sur YoupornTube, il faut donc envoyer tout ça en enregistrement vidéo.

Pour ça je vous conseil de consulter la page ici présente : http://code.google.com/p/gource/wiki/Videos

Elle contient toutes les indications pour encoder proprement vos vidéos en mp4.

Je ne fais pas de tuto détaillé là dessus pour la simple et bonne raison que je me suis complètement vautré dans l’installation de codecs ffmpeg et qu j’ai flingué une partie des lectures vidéos sur mon linux, ce sont des choses qui arrivent u_u’…

Donc je vous souhaite bon courage et une bonne journée à tous!

Gros problèmes entre le BTRFS et le NFSv4

Bonjour à tous.

Petit article aujourd’hui pour parler d’un souci, j’espère que ça servira d’avertissement pour certains qui tomberaient dans le même piège que moi.

Le ton est volontairement humoristique, car quand on a ce genre de couille, il vaut mieux en rire, ou du moins, essayer.

C’est assez relié avec les tutos sur les partages nfs déjà disponibles sur ce blog, donc pour ceux qui dormiraient au fond de la classe, prenez note.

Alors, comme vous avez pu le lire, j’ai récemment mis en place un système de partage assez simple mais néanmoins complexe (WTF?) au niveau de mon serveur de fichier et de mes systèmes là ou je travail en tant qu’administrateur système.

Alors comme ce matin j’ai vécu un véritable apocalypse et empêché une équipe de travaillé pendant 30 minutes, je préfère avertir les têtes brûlées qui voudrait un jour tenter de faire les mêmes conneries que moi. 

Ne faites pas comme moi, gardez toujours à l’esprit que quelque chose en développement, même si il parait très cool tout ça, N’EST PAS STABLE!

Quand j’ai formaté mon serveur à l’installation de Debian, j’ai pris la décision d’utiliser le BTRFS comme système de fichier. Pour ceux qui dormais ces 5 dernières années, le BTRFS est annoncé comme le successeur des systèmes journalisés comme la série des ext. Il est en développement depuis 2007 et considéré comme stable depuis mars 2009.
Oui mais… 

On peut se demande, pourquoi ce système si miraculeux, n’équipe donc pas toutes nos distributions linux actuelles? Lui qui annonces vers performance de +500% en compressé comparé à son camarade ext4, reste irrémédiablement dans l’ombre.

Le fait est que malgré tout le travail et les avancées faites sur son sujet, il n’en reste pas moins un système de fichier en développement, non complet et inapplicable à certaine situation.

Mon exemple est le suivant. Voici mon ancienne infrastructure, que vous connaissez bien, vous les deux ou trois qui suivez mon blog :

Comme vous le voyez, j’ai fais le choix du BTRFS et j’exporte en NFSv4 au cotés de la partition du Système linux, transportant la racine du système, sur une partition en XFS.

La première fois que j’ai tenté ce montage, j’ai été confronté à un problème assez étrange. En effet, la partition du NAS, en BTRFS, une fois monté en en NFS, provoquait un très très très gros ralentissement.
En temps normal, un hdparm -t sur la partition NAS donnait une vitesse de lecture variant entre 1 et 5 Mo/s, contrairement aux 110 Mo/s dont j’ai habitude.
Suspectant un problème inhérent au fait de dédoubler un lien nfs partant d’une même source et allant vers une même destination, je me suis donc décidé à essayer de ne tourner qu’avec une seule exportation, limitant dans le même coup les erreurs de démontages sur les postes clients, et j’ai donc donné vie au tutoriel d’hier (ou d’avant hier, je sais plus).

Bref, donc cette configuration fut modifiée et j’ai pu aboutir au bout de quelques recherches à l’ensemble suivant :

Hier soir je clos définitivement l’affaire, prépare à distance mes systèmes, et, prévoyant, met mon réveil plus tôt pour être premier au boulot, on sait jamais.

Ce matin, les 4 premiers postes démarrent sans encombre et je vais me fumer une cigarette, certes matinale mais néanmoins méritée pour célébrer ma victoire sur cette hérésie qu’est l’infrastructure de développement local standard des sociétés de développement web d’aujourd’hui.

En revenant de cette délicieuse cigarette, le 5e poste est allumé et… 


 

D’un coup, tout les systèmes commencent à ralentir.

Suspectant un ralentissement du réseau, je cherche d’abord dans ce sens, avant de me rendre compte que mes hdparm ne passent plus. Chaque consoles ouvertes avec lesquelles je lance un hdparm me lâchent, et me guide désespérément vers la triste réalité que me réserve le /var/log/syslog.

Pour la faire courte, toute la couche BTRFS avait sauté d’un coup à la suite de l’appel nfsv4 du 5e poste. Je me retrouve avec une énorme erreur kernel, révélée en fait par le hdparm.

Je me retrouve donc à devoir repasser sur notre vieux serveur de fichier, celui qui crash dès qu’une porte claque trop fort.

Ouaip, donc un conseil :

LE BTRFS EN NFSv4 POUR LE PARTAGE MASSIF, ON ÉVITE!

Et moi je reformate ma partition de serveur en ext4. Ça m’apprendra a faire des expériences.

Export de point de montage en NFS

Bonjour à tous!

Aaaahh, enfin un petit billet, ça faisait longtemps. En fait j’avais pas mal de boulot assez répétitif, et surtout pas intéressant en ce qui concerne le blog. Mais là, tout se clos petit à petit, donc du coups, il est temps de faire quelques tutos rapide de solutions simples et efficaces pour les problèmes que j’ai rencontré, car oui, la plupart du temps, les solutions qu’on met plusieurs semaines à trouver sont toutes connes, mais fallait trouver la bonne façon de les aborder.

Aujourd’hui on va donc parler d’un souci qui peut vous avoir été soumis, surtout si vous avez déjà suivit mes tutos sur le NFSRoot.

Voila, imaginez une situation lambda, vous avez un système bombardé en nfsroot, et vous possédez un autre serveur qui se monte dans ce système linux (en gros une architecture classique de développement avec un système et un serveur de fichier qui lui est raccordé.

Vous vous retrouvez donc avec, dans le système linux nfs, un bout de votre fstab qui ressemble plus ou moins à ça : 

nas:/nas /nas nfs4 1 0

C’est une configuration assez intéressante, simple a mettre en place, et loin d’être contestable. Au niveau de la fiabilité, elle est aussi contestable qu’une ou les systèmes serait interne aux machines, dans la mesure ou, en cas de panne du système, le serveur de fichier servirai à rien, et en cas inverse, un système sans serveur de fichier ne permettrait pas de bosser (ou peut être zoner sur Internet, et encore)

Bref, dans une logique de limitation des ressources, et pour en finir avec un serveur de fichier assez vieux et pantouflard, l’idée est venue de tout réunir au sein d’un même serveur. Le système et les données.

 

Pour ce faire, et éviter d’exporter depuis ce serveur les fichiers ET le système avec deux lignes dans le fichier d’exportation, on va faire une petite manip pour faire du deux en un.

Reprenons notre fichier d’exportation du système Ubuntu en nfsroot (voir tuto : http://dontpanicit.tumblr.com/post/11432209474/installation-dun-systeme-nfsroot-et-le-lancer-via ).

Imaginons qu’en temps normal, notre dossier de serveur de fichier soit à la racine  (monté comme cité plus haut) sous forme de :

/nas

Sa position dans le NFSR(NFSRoot), vue du serveur, serait donc ici :

/srv/ubuntu/nas

L’idée c’est donc de monter la partition qui contiens /nas (ou de monter le dossier en bind) directement dans ce dossier, et de lancer notre système, et penser à retirer de notre fstab de notre système ubuntu NFSR la ligne de montage NFS du nas.
Donc fstab du serveur :
/dev/sda42 /srv/current/nas filesystemtype defaults 1 1

Et plus de trace d’un montage du nas:/dns-nas dans le /srv/current/etc/fstab!

Si vous le faites, et que vous lancez votre système, il va démarrer, et un ls -al dans votre dossier /nas va vous montrer que … ça ne marche pas 8D.

PAS DE PANIQUE!

C’est tout a fait normal. Pour limiter les risques d’intrusion depuis le système jusqu’au serveur, GNU/Linux est justement configuré pour masquer les partitions montées ou disponibles du serveur depuis les clients. C’est une mesure de sécurité tout à fait logique de la part des concepteurs du système d’exports.

Il faut donc trouver les arguments qui vont bien pour justement by-passer cette sécurité en disant à l’exportation de se montrer nu comme un ver lors de son exploitation sur les machines clients.

C’est un lot de 3 options dans le man exportfs de Linux qu’il était important de repérer :

nohide - Première pierre angulaire de notre exportation, elle force les exportations à tout montrer. Nécessaire mais pas suffisante, elle a besoin du complément suivant.

crossmnt - Deuxième pierre, elle sert à montrer précisément les périphériques montés à la source, c’est à dire par le serveur.

Et enfin par mesure de précaution pour éviter les conflits de racine, on va poser un petit
fsid=0
Qui va quand même garantir la racine du système correctement, et rétablir un semblant de sécurité.

Donc au final notre ligne d’exportation va ressembler à ça : 
/srv/current/   192.168.0.0/24(rw,no_root_squash,async,subtree_check,nohide,crossmnt,fsid=0)

NB : Notez la nouvelle façon de noter l’IP, c’est elle la correcte :p. 

C’était vraiment bête comme idée, mais il fallait y penser.

C’est super pratique parce qu’on perd en complexité et on gagne en vitesse de traitement. Maintenant tout est empaqueté à la source, magique!


Voila c’est tout pour le tuto. Si vous avez des questions, n’hésitez pas. 
Spéciale bigup à @joellecorre qui ,lors de son bref passage parmi nous, m’a montré yEd, le logiciel que j’ai utilisé pour vous faire les jolis dessins ci dessus. Pensez à aller voir son blog, il est pas mal : Sublimigeek

 Bonne journée les gens :D.

NSCD et Upstart

Bonjour à tous!

Petit tuto aujourd’hui, plus précisément un complément de plus à l’utilisation d’un système nfsrooté.

Pour ceux qui auraient suivi le tuto sur l’installation du Linux en NFSroot, vous aurez peut être remarqué l’incapacité du système à démarrer des logiciels tels que Thunderbird, Skype etc…. Et bien c’est que ces système ont besoin d’une couche de cache que le NFSroot ne peux pas leur donner en natif (pour ceux qui auraient d’ailleurs lancé des débugs consoles sur ces applications, ont pu constater que leurs logs les gratifiaient d’un magique “SegFault”).

Ici on va voir comment y remédier.

Tout d’abord, il faut installer notre couche de cache, et pour cela, on va faire appel au paquet “nscd” (ou “Name Service Cache Daemon”).

Comme d’hab quand on installe une application, ont passe par apt-get :

~# sudo apt-get install nscd

Une fois l’installation terminé, on reboot tranquille, on se dit “Tout vas bien, pas d’erreur”, on clic que notre application Thunderbird et là… rien. Rien ne se lance.

PAS DE PANIQUE

Avant de me jeter des cailloux pointus à la gueule, dites vous bien que je me suis cassé le cul à plusieurs reprises (et je remercie encore “Ô mon Maitre” Yann pour me secourir dans des moments difficiles) en cherchant la source de l’erreur.
Après avoir longuement suspecter le script de démarrage de faire de la merde, j’ai ensuite compris finalement (via des echo tassés dans des fichiers) que le script n’était même pas appelé au démarrage du système.

En fait, depuis la 11.04 (voir même la 10.10 - 10.04 je crois), on ne passe plus par les runlevel de Système V pour démarrer des démons sous Linux, mais on utilise un nouveau système nommé UpStart. Ce dernier en fait prend la mains sur pas mal d’élément du démarrage, ce qui peux laisser perplexe quand on ne le sait pas.

Seulement, NSCD n’est pas fait pour démarrer par upstart, ce qui fait que ce dernier lui roule dessus au démarrage sans que NSCD puisse moufter sa sauce. Par conséquent il faut créer des scripts custom dans le répertoire de gestion d’upstart (comme on aurai pu faire avant dans les runlevels) afin de lui dire “Hey connard! T’es gentils, tu laisses les autres jouer!”.

voici donc le script a placer dans /etc/init/nscd.conf (Oui, le fichier n’existe pas, il faut le créer).

description	"name service cache daemon"

start on local-filesystems
stop on runlevel [06]

#expect fork
pre-start script
    mkdir -p /var/run/nscd
end script

exec /usr/sbin/nscd -f /etc/nscd.conf

Merci d’ailleurs à spidernik84 du forum Linuxquestions.org pour avoir trouvé ce script plus ou moins miraculeux.

Une fois ce script posé et enregistré, vous pouvez redémarrer votre linux et là, tadaaaa, Thunderbird se lance! Magique!

Reste cependant un dernier problème à résoudre : Cette solution est plus ou moins bonne car elle est faite main. Le délire c’est qu’il est possible qu’une mise a jour fasse sauter tout ça (upstart, nscd, ubuntu lui même). Si le problème ce représente, vous saurez cependant quoi faire!

NB : J’ai utilisé cette solution avec le paquet “unscd” mais techniquement tout devrait fonctionner correctement quand même avec la version nscd originale. Notez que pour “unscd” d’ailleurs, le fichier de conf est le même (et s’appelle aussi “nscd.conf”), puisque les binaires et les fichiers .conf de unscd se nomment nscd tout court. Donc le script est interchangeable.

INSTALLATION D’UN SYSTEME OPENWRT SUR UN SOEKRIS NET 4501

Bonjour à tous, et bienvenu pour un nouveau tutoriel qui, je l’espère, sortira certaines personnes de l’impasse.

Dans un précédent tuto, j’avais expliqué comment installer pfSense sur un Soekris net4501.
Mon choix pour pfSense était orienté pour plusieurs raisons :
-pfSense est fiable. On l’utilisait déjà dans ma boite sur l’ancien routeur, qui était en fait un ordinateur complet au service du routeur. Même dans sa version béta, il fonctionnait déjà très bien (exception faite d’un problème lors du redémarrage en cas de coupure de courant, qui oblige à rentrer à la main la commande de mount de la partition de root).
-Disposant de deux connexion internet, on avait un besoin vital de load balancing et de la gestion de deux Gateway pour notre réseau et nos serveurs internes, et contrairement à m0n0wall, son prédécesseur, pfSense le gère mieux que bien.
-Je pensais, à tord, que pfSense était un produit léger. En fait cette vision erronée était due au fait que je n’avais pas vu le faussé ce creuser entre les v1.x et les v2.x. Depuis la v2, pfSense nécessite plus de 128MoRAM.
-Le fait aussi de disposer du même système que l’actuel, je ne me pausai donc pas la question de la portabilité de la config.

Seulement voila, comme dit plus haut, pfSense a grossi, il est devenu gourmand en performance, et demande désormais plus de 128MoRAM. Épique déception car, au moment du tuto précédent, je disposai d’un Soekris net4501 disposant de 32MoRAM, soit trois fois en dessous du seuil critique.
C’est à sa première journée de mise en prod que les crash successif et les erreur 500 sur la page de gestion de config, m’ont fait réalisé mon erreur.

Il a donc fallu rechercher d’autres solutions.
Voici un peu mon cheminement et les raisons pour lesquelles je ne les ai pas sélectionnée :

-m0n0wall (freeBSD) : Petit, léger, pratique, l’interface web est assez simple et esthétiquement agréable (contraste radicalement avec le rouge/gris de pfSense assez agressif). Il ne dispose cependant pas de gestion du Dual-WAN/Load Balancing ni d’une prise de commande en SSH, ce qui pose un réel problème de configuration profonde, obligeant l’utilisation du port série. On peut s’amuser à ajouter des modules particulier, mais c’est une plaie. J’ai vite été découragé par l’absence totale d’activité en ce qui concerne le développement de nouvelles versions, qui avant me laisser envisager de possibles updates.
-netBSD pure (netBSD) : J’ai envisagé brièvement de monter un netBSD purement et simplement, et d’y incorporer les paquets nécessaires pour permettre de faire tourner ce qui devait tourner. Le problème était que, tournant sous linux, je n’avais pas vraiment de base pour débuter. Jugé trop long et trop complexe, l’idée a été abandonnée.
-LFS Linux From Scratch (GNU/Linux) : Dans le même raisonnement que pour netBSD, l’idée était assez séduisante, étant donné ma proximité avec le système linux et excellente documentation internet. Malgré l’enthousiasme que cette idée a suscité (création d’une distribution personnalisée et m’appartenant), l’idée a cependant été abandonnée à cause de la trop grande demande en temps et l’investissement personnel nécessaire à sa bonne réalisation.
-ipCop (GNU/Linux) : Une des distribution principales de routeurs. malgré l’absence de load-balancing pré-installé, l’idée de tourner sous linux est intéressante dans le sens ou, le système m’étant familier, je pouvais envisager, mieux que sur un BSD, l’hypothèse de charger moi même les paquets nécessaires. Malheureusement, ipCop n’est pas vraiment prévu pour fonctionner en embarqué. De plus le comportement agressif et l’aide minimale obtenue sur le forum de soutien de cette distribution m’ont réellement dérangé. Enfin, ipCop, dans son incapacité à dégainer une version embarqué facile d’installation pour CF, j’ai été dans l’incapacité de faire démarrer ne serai-ce que le bootloader.
-OpenWRT (GNU/Linux) : Au bord de la crise de nerf profonde, on est tombé par hasard sur une distribution prometteuse nommé “OpenWRT”. Fonctionnant sous Linux, gérant le Load Balancing, le multi-wan, ayant un protocole SSH et une interface web, et surtout spécialisé pour l’embarqué, le choix s’est donc imposé.

Matériel requit :


- Un routeur Soekris net4501
Je suis passé à une version légèrement au dessus pour cette installation. Il dispose du même processeur que le précédent, à la différence qu’il possède 64MoRAM. Je dois normalement faire un portage vers la version 32MoRAM (cf. Tuto Soekris pfSense), si jamais je rencontre un problème, je publierai une petite note.
-Un câble série.
-Un lecteur de carte CompactFlash (CF).
-Une carte CF d’au moins 128Mo.
-Les images de OpenWRT Backfire 10.03.1-RC6, à savoir :
—OpenWRT x86 generic combined jffs2 128k (contenant la partition de boot et l’image kernel)
—OpenWRT x86 generic combined ext2 (contenant les root systèmes)
Les images sont disponibles ici : http://downloads.openwrt.org/backfire/10.03.1-rc6/x86_generic/

Pourquoi la 10.03.1-RC6 ?

Et bien au moment ou j’écris ce tuto, c’est la version la plus récente.
Ensuite, faites l’expérience et chargez vos images dans votre CF, et bootez naïvement votre routeur.

Et bien vous aurez 2 problèmes :
-un bon gros “waiting for /dev/sda2”
-Et si vous passez cette étape, vous vous retrouverez devant un système qui ne reconnaîtra pas vos interfaces réseau. Gênant pour un routeur non?

PAS DE PANIQUE

La dernière version comporte des correctifs qui permettent de passer ces quelques blocages. De plus elle est stable, ce qui rajoute son intérêt.

Étape 1 : Configuration préalable de minicom et du BIOS routeur.

Tout d’abord, on commence par lancer minicom. Il faut le configurer en 19200n8 pour pouvoir se connecter au routeur (ce n’est pas sur, les vitesses pas défaut varie, surtout si ils sont de 2nd main).

# minicom /dev/VOTRE_PÉRIPHÉRIQUE_SERIAL

si vous utilisez comme moi un cable série-USB, ce sera /dev/ttyUSB0.

Une fois dans minicom, faites Ctrl+O, puis allez dans régler le port série, puis tapez sur E pour accéder à la vitesse de transmission. Une fois dedans, régler la vitesse.

Ensuite, branchez votre cable série sur le routeur, et alimentez le.

Une fois au terme du chargement du BIOS, avant que les 5 secondes ne soit écoulé, tapez “Ctrl+P”. Vous devriez avoir un prompt “>”.
Tapez :
> set ConSpeed=38400
puis
> reboot

Pendant que le routeur redémarre, retournez dans le menu Ctrl+O -> E -> et réglez la vitesse sur 38400. Voila, votre routeur, votre minicom ET bientôt votre système seront synchronisés sur la même vitesse, à savoir 38400 bauds.

Etape 2 : Installation des images en dd sur la CF.

Une fois vos images de OpenWRT téléchargées sur votre disques, et que vous connaissez leur emplacement absolu (histoire de ne pas se tromper), et que votre carte CF est correctement introduite dans le lecteur de carte, vous allez lancer les lignes de code suivante :

# dd if=chemin/openwrt-x86-generic-combined-jffs2-128k.img of=/dev/sdb
# dd if=chemin/openwrt-x86-generic-combined-ext2.img of=/dev/sdb

ATTENTION : Comme dit dans un tuto précédent, le dd est une arme absolue. Elle écrase tout et ecrit par dessus. Par conséquent, si jamais vous tappez quelque chose dans le genre /dev/sda au lieu de /dev/sdb, c’est votre disque dur qui y passe. Et là vous n’avez AUCUNE chance de récupérer le moindre fichier. C’est puissant, et par conséquent c’est a utiliser avec précaution.

Si tout c’est bien passé, normalement deux éléments sont apparus dans /dev/ : sdb1 et sdb2. C’est là toute la magie de faire du transfert d’image comme ça, il se démerde pour faire les choses bien.

Étape 3 : Installation de la CF et lancement du routeur.

Bon, bin maintenant on peut plugger la carte dans le port CF de votre soekris, lancer minicom, et mettre le soekris sous tension.

Le BIOS se lance, il annonce le lancement de grub, et là BAM! Caractères étranges en tout genre qui s’animent.

PAS DE PANIQUE

D’après mon expérience, le Soekris n et4501 banché en série ne supporte pas grub visuellement. Sur certains appareils, les comportements varient : Ils peuvent ne pas aller plus loin que grub, ou se lancer sans l’afficher correctement.

Heureusement, dans mon cas, j’ai été dans la 2e solution.

Après quelques secondes d’attentes, vous pouvez apercevoir le chargement du noyau. A la ligne : Please press Enter to open Terminal, n’appuyez pas dessus. Il va y avoir un module (NatSemi pour les interfaces réseau du soekris) supplémentaire qui va se lancer et qui risquerai de ne pas bien afficher la so cute présentation d’OpenWRT.

Et voila, maintenant cliquez sur Entrée et dites bonjour à OpenWRT embarqué =).

Notes :

Adresse IP : Par défaut, l’IP du routeur est définie par OpenWRT comme étant la 192.168.1.1. Au cas où comme moi vous auriez la nécessité de changer, les fichiers de configuration du réseau (et tant d’autres) sont ici :

# vi /etc/config/network

Puis ensuite allez dans l’interface eth0 et changez

ipaddr 192.168.1.1 en ipaddr 192.168.***.*** <- l’adresse IP que vous voulez.

Ensuite procédez à un reboot des interfaces via cette commande :

# /etc/init.d/network restart

Et voila, maintenant l’interface web de configuration est disponible en ligne à l’adresse IP indiquée !

ENJOY YOUR OPENWRT ROUTEUR!!

NFSroot depuis virtualBox via boot.iso

Bonjour à tous et bienvenu pour le tuto de la semaine!

Il faut le prendre en complément du tutoriel sur l’installation en NFSroot, par conséquent, je ne reviendrai pas sur la partie installation et configuration du serveur (sauf à un moment précis mais la modification est à la fois mineure et essentiel donc restez attentif).

Ok, nous y voila.

Donc la méthode est la suivante :
On va commencer par créer une image .iso qui va en fait servir d’alternative au boot grub, car ce dernier est non seulement invivable à installer seul sur une VM, mais de plus pause d’important problèmes au lancement du NFS (avalanche d’erreurs, montage partiel, erreur “need a path” et j’en passe).

J’espère que vous n’avez pas oublié la partie de changement du /etc/initramfs-tools/initramfs.conf dans le premier tuto, car c’est impératif. Si ce n’est pas le cas, retournez sur l’ancien et recréez la initrd.img correctement.

Etape 1 : Création de l’image boot.iso

En fait basiquement, on va réutiliser les fichiers vmlinuz et inird.img préconfigurés du NFS pour créer une image correctement configuré. Pour ce faire, il faut donc créer un dossier à la racine (pour plus de rapidité et ne pas péter un câble avec les chemins d’accès) qui sera donc /iso.

A l’intérieur il faut créer un dossier “linux” pour se retrouver donc avec l’architecture suivante :

/iso
   |
   linux

Ensuite, on va placer nos deux images vmlinuz et initrd.img dans le dossier linux. Ce sont les images que l’on avait utilisé dans le tuto précédent pour grub (ils étaient à l’époque stocké dans /boot/LAN du disque sur le poste client)
On va juste changer le nom de l’initrd :

mv initrd.img initrd

On va maintenant créer le fichier qui va servir de configuration à l’image iso :

cd /iso
touch isolinux.cfg
vi isolinux.cfg

Collez y ça (arrangé à votre sauce) :

default linux
 
label linux
  kernel /linux/vmlinuz
  append initrd=/linux/initrd root=/dev/nfs ip=dhcp(ou les paramètres IP de votre réseau local) nfsroot=(adresse_de_votre_serveur):(chemin_d’accès_vers_votre_racine_nfsroot),rw,nolock

Ça vous rappelle des choses? C’est normal! On dirait le lanceur de Grub2 dans l’autre tuto. C’est pas pour rien hein? Sauf que lui en fait il va lancer les éléments pour que le .iso soit correcte.

Donc une fois ça fait, on va aller fouiner dans notre ubuntu embarqué sur le serveur pour aller y télécharger isolinux.bin.

scp (nom_d’utilisateur_ssh)@(adresse_du_serveur):/(chemin_d’accès_vers_votre_racine_nfsroot)/usr/lib/syslinux/isolinux.bin /iso/

voila, on y est presque, maintenant on va créer l’image boot.iso (notez, il faut être dans /iso (faites un cd /iso pour être sur):

mkisofs -R -V “NFS Boot” -o ../boot.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .

Voila, maintenant que votre boot.iso fait pour le nfs est créé, on va configurer VirtualBox pour démarrer la machine.

Etape 2 : Configuration de VirtualBox

NB : Désolé pour les fans de VirtualBox OSE, mais il n’y a que la VirtualBox 4.1.4 qui permet la connexion par pont, et donc de permettre à la machine de démarrer avec les bonnes informations réseau. D’ailleurs, sous linux, il est possible que VirtualBox provoques de petites erreurs au démarrage, et demande l’emploi de certaines commandes setup. Faites les, c’est simplement certains modules de VirtualBox qui doivent être réinitialisés à chaque démarrage. C’est un bug connu.

Donc, lancez VirtualBox et créez une nouvelle machine, basé sous Linux Ubuntu. Donnez lui un peu de mémoire (minimum 512Mo, et encore, vous allez galérer. L’optimal c’est 1Go dédié de toute façon, et c’est d’autant plus valable pour une VM). Ensuite dans l’onglet réseau, sélectionnez “Accès par pont” et l’interface de votre carte réseau correcte (par défaut : eth0).

Ensuite allez dans “Stockage” et montez votre image boot.iso dans le lecteur CD.
Tien, maintenant essayez de booter. On pourrait se dire “Boarf, le serveur est configuré pour partager avec toutes les IP de mon domaine réseau (souvenez vous du 192.168.1.* qui couvre tout le domaine), il devrait se monter correctement”.
Miracle, votre noyau se monte correctement, les procédures se lancent, et là BAM!
Oh? Etrange! nfs-premount : acces denied error.
Patatra, je vois d’ici vos rêves et vos espoirs disparaître dans vos yeux, et la vie devenir plus sombre à chaque loop de “acces denied”.

PAS DE PANIQUE

Il y a des gens comme moi pour se prendre la tête avec ce genre de souci, et vous apporter la solution sur un plateau!
En fait, je n’ai pas tout a fait compris pourquoi, mais même dans le cas ou l’IP donné par le DHCP, accompagné de son masque et de sa passerelle, ne possède quand même pas les accès vers le serveur nfs.

Pour corriger ce problème, il faut vous rendre sur votre serveur, dans le fichier /etc/exports.
A l’époque, on avait marqué ça :

/srv/ubuntu IpdesClients(pour moi c’est 192.168.1.* pour couvrir toute la plage IP)(rw,no_root_squash,async,subtree_check)

Et bien il faut rajouter la ligne suivante :

/srv/ubuntu IPdelaVM/IDdumasque(24 pour 255.255.255.0, sinon faite la conversion)(rw,no_root_squash,async,subtree_check)

relancez votre serveur nfs

sudo service nfs-kernel-server reload

Et maintenant, sur votre PC client, relancez votre machine.

Tadaaaaaaaa! Ca marche. Cependant, pour les 11.04 et ulterieures, Unity nécessitant une accélération matérielle, il chargera l’ancienne interface gnome par défaut. Je n’ai pas réussis à stabiliser ça, mais bon, ça ne rentrait pas dans le cadre de ma demande.

D’ailleurs, l’installation de ce genre de chose tien plus du bricolage qu’autre chose, ce ne sont pas des machines très fiables, par conséquent, je conseil tout de même le Dual Boot de l’ancien tuto (a moins que ce soit pour une utilisation ponctuelle).

Voila, j’espère que ce tuto aura servi.
A plus les gens :).