# articles

feed_id: http://blog.nicolargo.com/?p=6318
title: Des outils de test pour stresser votre système
uri: Des-outils-de-test-pour-stresser-votre-système
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/67YmThT0_CU/des-outils-de-test-pour-stresser-votre-systeme.html

content:
<p><a
href="http://blog.nicolargo.com/wp-content/uploads/2012/09/load.jpg"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-6322" title="load" src="http://blog.nicolargo.com/wp-content/uploads/2012/09/load.jpg" alt="" width="277" height="182" /></a>Le développement logiciel nécessite des phases de test et de validation qui sont souvent menées sur des machines non chargées. Je vous propose donc de découvrir, dans ce billet, une série de petits logiciels permettant de simuler une charge sur votre système et qu'il faudra donc lancer en parallèle de vos applications à valider. J'ai uniquement sélectionné des logiciels libres, légers, en ligne de commande et disponible dans les dépôts Ubuntu standards.</p><h1>Comment stresser une machine ?</h1><p>Plusieurs leviers permettent de "stresser" une machine:</p><ul><li>consommation CPU</li><li>utilisation de la mémoire MEM</li><li>entrée/sortie IO</li><li>lecture/écriture disque DISK</li><li>entrée/sortie réseau NET</li></ul><p>L'utilisation conjointe de ces leviers permet de simuler une charge sur une machine cible. L'amplitude des paramètres appliquées à ces leviers est bien sûr à adapter à votre configuration hardware et système.</p><p><span
style="color: #993300;"><strong>Note</strong>: l'utilisation des logiciels décrits si-dessous peut entraîner le plantage pure et simple de votre machine (cela m'est arrivé pendant mes tests...). Je vous conseille donc vivement de ne pas les appliquer sur une machine en production...</span></p><h1>Fuzz</h1><p>Le premier logiciel est <a
href="http://manpages.ubuntu.com/manpages/precise/man1/fuzz.1.html">Fuzz</a>. Contrairement aux autres solutions, ce dernier ne génère pas de "stress" par lui même mais demande à d'autres programmes de le faire.</p><p>Ainsi, la ligne de commande suivante:</p><pre class="crayon-plain-tag">fuzz grep foo</pre><p>va lancer 10.000 fois la commande "<em>grep foo</em>" en lui donnant en entrée des données factices. Ainsi votre machine va chercher la chaîne de caractère <em>foo</em> dans un flot de données. Nous pouvons donc voir, grâce à <a
href="http://nicolargo.github.com/glances/">Glances</a> (un peu de pub...),  que la charge CPU (recherche de sous-chaine) et IO (entrée-sortie disque) augmentent.</p><p
style="text-align: center;"><a
href="http://blog.nicolargo.com/wp-content/uploads/2012/09/fuzz-glances.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6319" title="fuzz-glances" src="http://blog.nicolargo.com/wp-content/uploads/2012/09/fuzz-glances-580x143.png" alt="" width="580" height="143" /></a></p><p>Le nombre d’exécution (-r par défaut 10.000) et le time-out (-t par défaut 120 secondes) sont bien-sur paramétrable en ligne de commande (voir le <a
href="http://manpages.ubuntu.com/manpages/precise/man1/fuzz.1.html">man</a>).</p><p>Si vous connaissez les applications qui tourneront en parallèle de la votre, il est facile de simuler votre environnement cible. Il manque par contre un peu de finesse pour tester votre application avec des contraintes pré-définies (par exemple avec une charge CPU de 75%).</p><h1>Spew</h1><p>Développé par HP et mis à disposition de la communauté, <a
href="http://linux.die.net/man/1/spew">Spew</a> est spécialisé sur le stress par entrée-sortie disque. Il permet d'écrire et/ou de lire des fichiers de test sur votre disque.</p><p>Pour générer un fichier de 5 Go nommé /tmp/bibi:</p><pre class="crayon-plain-tag">$ spew 5G /tmp/bibi
WTR:    90320.56 KiB/s   Transfer time: 00:00:58    IOPS:   180641.12</pre><p>La même commande mais en forçant la relecture du fichier à la fin de l'écriture:</p><pre class="crayon-plain-tag">$ spew --read-after-write 5G /tmp/titi
WTR:    74740.25 KiB/s   Transfer time: 00:01:10    IOPS:   149480.49
RTR:  1761227.45 KiB/s   Transfer time: 00:00:02    IOPS:  3522454.90</pre><p></p><div>On peut voir une montée en charge globale de la machine (LOAD) mais juste avec des entrées/sorties (IO):</div><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2012/09/capture_023.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6321" title="capture_023" src="http://blog.nicolargo.com/wp-content/uploads/2012/09/capture_023-580x173.png" alt="" width="580" height="173" /></a></p><p><span
style="color: #808080;"><strong>Note</strong>: pensez à supprimer vos fichiers de test (/tmp/bibi)...</span></p><h1>Stress et StressAppTest</h1><p>Deux logiciels qui font fonctionnellement la même chose (jouer sur l'ensemble des leviers permettant de stresser une machine) mais de manière différente...</p><p><a
href="http://linux.die.net/man/1/stress">Stress</a> est une application permettant de générer des processus (worker) ayant des caractéristiques communes:</p><ul><li>CPU (consommation de la CPU grâce à l’exécution de la commande <a
href="http://www.cplusplus.com/reference/clibrary/cmath/sqrt/">sqrt</a>)</li><li>MEM (avec exécution des commandes malloc et free)</li><li>IO (avec execution de la commande sync)</li><li>DISK (execuiyon des commandes read et write)</li></ul><p>Avec la commande suivante:</p><pre class="crayon-plain-tag">stress -m 10 --vm-bytes 512000000 -t 30</pre><p>On se retrouve donc avec 10 processus consommant chacun 512 Mo:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2012/09/stress-cpu-mem-glances.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6324" title="stress-cpu-mem-glances" src="http://blog.nicolargo.com/wp-content/uploads/2012/09/stress-cpu-mem-glances-580x199.png" alt="" width="580" height="199" /></a></p><p>Contrairement à Stress, <a
href="http://code.google.com/p/stressapptest/">StressAppTest</a> ne génère par défaut qu'un seul processus qui va regrouper les caractéristiques de stress souhaitées.</p><p>Ainsi, la commande:</p><pre class="crayon-plain-tag">$ stressapptest -s 30 -M 256 -m 8 -C 8 -W
Log: Commandline - stressapptest -s 30 -M 256 -m 8 -C 8 -W
Stats: SAT revision 1.0.3_autoconf, 64 bit binary
Log: buildd @ allspice on Wed Jan 11 17:38:51 UTC 2012 from open source release
Log: 1 nodes, 4 cpus.
Log: Prefer plain malloc memory allocation.
Log: Using memaligned allocation at 0x7f9e9f157000.
Stats: Starting SAT, 256M, 30 seconds
Log: Region mask: 0x1
Log: Seconds remaining: 20
Log: Seconds remaining: 10
Stats: Found 0 hardware incidents
Stats: Completed: 458960.00M in 31.10s 14756.72MB/s, with 0 hardware incidents, 0 errors
Stats: Memory Copy: 458960.00M at 15298.83MB/s
Stats: File Copy: 0.00M at 0.00MB/s
Stats: Net Copy: 0.00M at 0.00MB/s
Stats: Data Check: 0.00M at 0.00MB/s
Stats: Invert Data: 0.00M at 0.00MB/s
Stats: Disk: 0.00M at 0.00MB/s
Status: PASS - please verify no corrected errors</pre><p>Donne:</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2012/09/stressapptest-01-glances.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6325" title="stressapptest-01-glances" src="http://blog.nicolargo.com/wp-content/uploads/2012/09/stressapptest-01-glances-580x164.png" alt="" width="580" height="164" /></a></p><p>Je vous invite à consulter <a
href="http://code.google.com/p/stressapptest/wiki/UserGuide">la documentation officielle du projet</a> pour y découvrir les nombreuses options.</p><h1>Pour finir...</h1><p>Cette liste est très loin d'être exhaustive. L'idée étant de partager votre savoir...</p><p>Quel logiciel utilisez vous pour faire vos test de performances sur des machines chargées ?</p><p>Avez-vous des solutions multi-plateforme ?</p><p>A vos claviers <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Cet article <a
href="http://blog.nicolargo.com/2012/09/des-outils-de-test-pour-stresser-votre-systeme.html">Des outils de test pour stresser votre système</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=67YmThT0_CU:eTQK7tRCPpw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=67YmThT0_CU:eTQK7tRCPpw:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/67YmThT0_CU" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6311
title: Quelques nouvelles de Glances (et sa version 1.4.1)
uri: Quelques-nouvelles-de-Glances-(et-sa-version-1-4-1)
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/-soPjUhk3Xk/quelques-nouvelles-de-glances-et-sa-version-1-4-1.html

content:
<p
style="text-align: justify;">Cela faisait un moment que je ne vous avais pas parlé de <a
href="http://nicolargo.github.com/glances/">Glances</a>, mon petit logiciel en Python pour surveiller l'état du système des machines. Il y a quelques jours, il a été mis sur le devant de la scène en apparaissant sur la première page de <a
href="http://news.ycombinator.com/item?id=4470590">Hackers News</a>. Quelques centaines d'★ et une bonne dose de "pull request" plus tard, j'ai décidé de publier la version 1.4.1 qui apporte, en plus de la classique correction de bug, quelques nouveautés que nous allons détailler ici.</p><h1>Affichage de la consommation CPU "par coeur"</h1><p>Jusqu'à la version précédente, l'affichage de la consommation CPU se présentait ainsi:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" title="CPU short view" src="https://github.com/nicolargo/glances/raw/master/doc/cpu.png" alt="" width="149" height="76" /></p><p>Maintenant et si votre fenêtre est assez large, vous aller avoir le détail par "CPU Core":</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" title="CPU long view" src="https://github.com/nicolargo/glances/raw/master/doc/percpu.png" alt="" width="393" height="82" /></p><p>Il est bien sur possible de passer d'un mode à l'autre en appuyant sur la touche '1' (mais seul le choix de l'affichage global sera possible si votre fenêtre est trop petite).</p><h1>Plus d'informations sur les processus</h1><p>Grâce au travail <a
href="https://github.com/asergi">d'Allesio Sergi</a> et un peu de ma part, le nombre information sur les processus a augmenté. A noter que comme pour la CPU, l'affichage s'adapte à la largeur de la fenêtre.</p><p>La liste est suivante:</p><ul><li>VIRT: Virtual memory size (in byte)</li><li>REST: Amount of resident memory (in byte)</li><li>CPU%: % of CPU used by the process</li><li>MEM%: % of MEM used by the process</li><li>PID: Process ID</li><li>USER: Process user ID</li><li>NI: Nice level of the process</li><li>S: Process status</li><li>IO READ and WRITE: Per process IO read and write</li><li>TIME+: Cumulative CPU time used</li><li>NAME: Process name or command line</li></ul><p>Sur une petit console/fenêtre cela donne:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" title="Process short view" src="https://github.com/nicolargo/glances/raw/master/doc/processlist.png" alt="" width="442" height="264" /></p><p>et sur une grande:</p><p
style="text-align: center;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" title="Process long view" src="https://github.com/nicolargo/glances/raw/master/doc/processlist-wide.png" alt="" width="644" height="207" /></p><p>Pour finir, voici un screenshot de la version 1.4.1 en action:</p><p
style="text-align: center;"><a
href="https://github.com/nicolargo/glances/raw/master/screenshot-wide.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" title="Glances 1.4.1 screenshot" src="https://github.com/nicolargo/glances/raw/master/screenshot-wide.png" alt="" width="649" height="410" /></a></p><p>Je vous laisse consulter <a
href="http://nicolargo.github.com/glances/">la page officielle</a> pour les procédures d'installations / mises à jour selon votre système d'exploitation.</p><p>Si vous avez d'autres idées à soumettre pour améliorer Glances, les commentaires sont là (ou encore mieux <a
href="https://github.com/nicolargo/glances/issues">directement sur GitHub</a>).</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/09/quelques-nouvelles-de-glances-et-sa-version-1-4-1.html">Quelques nouvelles de Glances (et sa version 1.4.1)</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=-soPjUhk3Xk:xh-ymogrfnE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=-soPjUhk3Xk:xh-ymogrfnE:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/-soPjUhk3Xk" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6294
title: Interview de Jean Gabes pour la sortie de Shinken 1.2
uri: Interview-de-Jean-Gabes-pour-la-sortie-de-Shinken-1-2
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/EI1SsbgujKE/interview-de-jean-gabes-pour-la-sortie-de-shinken-1-2.html

content:
<p
style="text-align: justify;"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-6295" title="logo-small" src="http://blog.nicolargo.com/wp-content/uploads/2012/09/logo-small.png" alt="" width="196" height="75" />Pour la sortie de Shinken 1.2, Jean Gabes a eu la gentillesse de répondre à quelques questions que je me posais sur cette nouvelle monture.</p><p
style="text-align: justify;"><strong>Salut Jean et tout d’abord merci de nous consacrer un peu de ton temps.</strong></p><p
style="text-align: justify;">Mais c’est bien normal !</p><p
style="text-align: justify;"><strong>C’est un été plutôt chargé pour toi avec la finalisation de la version 1.2 de Shinken et la rédaction du numéro spécial du GNU Linux Magazine. Comment arrives-tu à gérer cela en parallèle de tes activités professionnelles ?</strong></p><p
style="text-align: justify;">Ce n’est pas simple, et ça l’est de moins en moins en fait. Avec le recul, même si la rédaction du hors série a pris du temps, c’est surtout la gestion du projet qui est la plus consommatrice en ce qui me concerne. Il y a de plus en plus d’intérêts pour le projet, ce qui est bien, et avec eux de plus en plus de contributeurs, ce qui est encore mieux.</p><p
style="text-align: justify;">Mais ceci à un coût en terme de temps de gestion, pour faire le “portier“ sur les patchs proposés, et demander (gentiment) par exemple, de revoir ce qui est proposé. Les forums sont de plus en plus actifs, heureusement, on a de plus en plus d’utilisateurs de la première heure qui prennent part au support sur le forum, et c’est une grande aide que j’apprécie vraiment.</p><p
style="text-align: justify;">Vue la progression de l’activité, je ne pourrais pas rester 100% administrateur et suivre le rythme, je vais devoir faire des choix pas très simples prochainement.</p><p
style="text-align: justify;"><strong>A titre personnel, je trouve que la principale évolution de cette version est apportée par le module de configuration (découverte automatique, gestion par “packs” et SKonf). Peux-tu nous en dire plus sur ce que cela va apporter aux utilisateurs ?</strong></p><p
style="text-align: justify;">C’est également mon avis. Si l’on regarde bien, au tout début le projet était orienté pour les “power users” de Nagios, avec des modes distribués, plus de performances, des améliorations qui portent sur les très gros environnements. Je pensais que seuls ces utilisateurs avaient de gros soucis. Or ce n’est pas le cas.</p><p
style="text-align: justify;">Un peu dans la même philosophie que l’interface de visualisation “simple” WebUI, cette nouvelle interface de configuration est une réponse pour la majorité des administrateurs. Même si certains ne lâcheront pas leur sed, vi ou emacs, d’autres seront râvis de pouvoir ajouter dans la supervision une nouvelle machine en quelques secondes, avec des “tags” automatiques comme “Linux”, “Mysql” ou “DMZ”.</p><p
style="text-align: justify;">Cette tâche était si ingrate et complexe avec les anciens outils de configuration qu’elle était laissée à l’administrateur de la supervision (par exemple moi dans la société où je travaille...). Désormais tout le monde va pouvoir le faire très simplement et en quelques secondes. C’est un peu emprunté de l’esprit DevOps : l’administrateur de supervision va pouvoir définir des “règles” qui vont permettre de tagguer ses machines (par exemple : port 80 ouvert? -&gt; tag http) et d’associer des services à ces tags (tag http? on lance la commande check_http). Les autres administrateurs vont désormais pouvoir ajouter “simplement” leurs hôtes sans avoir à se soucier des (nombreux!) paramètres de supervision, ni même savoir ce qu’est une sonde de supervision.</p><p
style="text-align: justify;">Un but avoué de l’outil est de ne plus avoir à s’occuper de notions de “services”. Seuls les hôtes et les templates d’hôtes (nos tags) sont importants dans la vie de tous les jours (demander à un administrateur système ce qu’il retient des notions d’hôtes et services Nagios, vous verrez qu’il aura beaucoup de mal au début avec les services, alors que pour l’hôte ce sera immédiat). Le but est donc de rentrer sa liste d’hôte, avec leurs propriétés (liste des volumes disques par exemple), et c’est tout...</p><p
style="text-align: justify;">Vu que l’outil se base sur la librairie de découverte, ce mode de fonctionnement peut être automatisé, comme par exemple “rescanner” des hôtes rajoutés précédement pour mettre à jour leur liste de volume disques, voir l’intégrer à un workflow automatique de création de machine virtuelle.</p><p
style="text-align: justify;">Les Packs sont également issus d’un constat que dans le microsome “Nagios” le partage de sondes est central, mais il n’en est rien de la bonne manière de les mettre en place et les utiliser. Si on prend comme exemple la supervision d’un serveur MySQL distant, la plupart des utilisateurs vont s’orienter vers la sonde check_mysql_health.pl, il y a alors beaucoup de manières de la mettre en place, de gérer les comptes et mots de passes, les seuils, etc. De même, comment bien représenter ces informations sur des outils comme PNP4Nagios ou Graphite et avec quel template ?</p><p
style="text-align: justify;">Les “packs” Shinken sont là pour cela. Ils sont un “concentré de bonnes pratiques” dans un fichier zip. Basiquement ce sont des fichiers de configuration, des icônes et des templates pour les graphiques, il n’y a rien de complexe ou de magique là dedans. C’est juste que lorsque l’on débute dans la supervision ou que l’on a un nouveau système d’exploitation ou autre, il est tout de même plus simple de partir d’un exemple de supervision que d’une page blanche. Les packs sont là pour que l’expérience des uns serve également au reste de la communauté.</p><p
style="text-align: justify;">Je suis donc tout à fait d’accord sur le fait que la gestion de configuration est bien l’élément central de cette version, bien plus que la page “dashboard” par exemple. Ce point sera encore central un bon moment, car cela reste la problématique N°1 des administrateurs aujourd’hui.</p><p
style="text-align: justify;"><strong>Par rapport à la version 1.0, on sent une certaine maturitée lors de l’utilisation de l’interface graphique de Shinken (WebUI). Quelles sont pour toi les axes d’améliorations encore possible ?</strong></p><p
style="text-align: justify;">Question intéressante. Si l’on met de côté la nouvelle page de “dashboard”, il n’y a pourtant pas eu de profonds changements dans la manière de montrer les informations. C’est justement tout ce qui fait la complexité des interfaces graphiques. Il y a bien sûr les concepts centraux comme mettre en avant les problèmes importants pour le métier (et non pas la myriade d’impacts), ou encore de baser les droits sur les attributions des notifications pour les contacts.</p><p
style="text-align: justify;">Mais le ressenti des utilisateurs est également question de “détails” de présentations. Les détails seront par exemple la position des boutons d’actions pour lancer des actions sur la page d’hôte ou de service. Or ce que je nommais “détail” lorsque j’ai débuté WebUI n’en sont pas, et la question est là pour le prouver. Ils sont primordiaux dans le ressenti de l’utilisateur, sur la qualité même de l’interface.</p><p
style="text-align: justify;"><a
href="http://blog.nicolargo.com/wp-content/uploads/2012/09/webui_widgets.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-6300" title="webui_widgets" src="http://blog.nicolargo.com/wp-content/uploads/2012/09/webui_widgets-300x144.png" alt="" width="300" height="144" /></a></p><p
style="text-align: justify;">Outre quelques nouvelles pages et widgets, la prochaine version sera encore améliorée un peu partout en terme d’ergonomie, pour que son utilisation soit la plus “naturelle” possible, si tant est qu'utiliser un outil de supervision puisse être “naturel” pour les utilisateurs. Disons qu’elle doit être là pour apporter le plus d’efficacité possible à ses utilisateurs, avec par exemple le fait d’avoir les boutons d’actions facilement utilisables sans que l’utilisateur ait besoin de les chercher un peu partout?</p><p
style="text-align: justify;"><strong>Quels sont les avantages apportés par les nouvelles fonctions de trigger par rapport aux classiques sondes ?</strong></p><p
style="text-align: justify;">Pour rappel, les triggers sont du code Python fourni par l’utilisateur qui va être exécuté “en interne” de Shinken pour lire des états ou des données de performances d’hôtes et services puis pour ensuite lancer des actions, changer d’autres états ou créer des notifications.</p><p
style="text-align: justify;">C’est une très bonne question qui revient souvent dès que l’on a commencé à évoquer les triggers. Ils ne sont pas là pour remplacer les sondes de mesure de CPU ou d’espace disques, même si c’est techniquement possible. Dans 95% des cas de supervision, les bonnes vieilles sondes “à la Nagios” seront bien plus efficaces que les triggers, ne serait ce que du fait qu’il est facile des les tester (contrairement aux triggers).</p><p
style="text-align: justify;">Ils vont être utiles principalement pour deux choses :</p><ul><li>la corrélation avancée</li><li>le traitement de données passives</li></ul><p
style="text-align: justify;">Dans le premier cas, il est parfois utile d’agréger des informations en un seul indicateur. Par exemple si je veux présenter à mon responsable l’état du service mail fourni aux utilisateurs, je ne vais pas lui présenter la dizaine de serveurs et de services qui le composent. Je vais faire une règle “métier” avec des ET et des OU. Mais parfois ce genre d’opérateurs ne suffisent plus, et il faut sortir l'artillerie lourde qui compare des seuils les uns avec les autres pour savoir à quel point la situation est grave pour les utilisateurs. Ici les triggers vont permettre d’utiliser toute la puissance de Python pour “coder” une telle règle.</p><p
style="text-align: justify;">Dans le second cas, historiquement dans le monde Nagios, les commandes externes permettent de traiter des états envoyés par d’autres outils. Cependant, l’état doit déjà être calculé (comme OK ou CRITICAL). Il n’était pas possible d’importer une information et de l’analyser (comme par exemple un texte d’une TRAP SNMP). Désormais, des outils tiers peuvent envoyer des informations, la “vérification” sera alors faite en interne par Shinken.</p><p
style="text-align: justify;">Ce qui est intéressant lorsque l’on mélange les deux cas d’utilisation c’est que l’on obtient la définition de certains de l’Hypervision (en gros absorber des données d’outils de supervision, les traiter, les normaliser et en faire des états agrégés). Le plus drole c’est que le code qu’il a fallu pour ajouter les triggers au code de Shinken est ridiculement petit.</p><p
style="text-align: justify;"><strong>L’ouverture de Shinken vers des données recueillies par Collectd est très intéressante. N’as-tu pas peur de multiplier ainsi les interfaces et de complexifier l’administration ?</strong></p><p
style="text-align: justify;">Dans le cas de Collectd, si ça alourdi la charge de développement, je ne pense pas que ceci ajoute une charge pour l’utilisateur. Il pourra choisir sa méthode de collecte de donnée favorite, et n’aura pas à utiliser les deux. Ce module était plus pour démontrer ce qu’il est possible de faire avec les triggers que pour remplacer les sondes classiques de supervision. Je ne pense pas que collecter les données de performances toutes les 10 secondes soit utile, donc je pense que beaucoup ne vont pas aller regarder du côté de Collectd, et vont se simplifier la vie en restant avec de la supervision “active”.</p><p
style="text-align: justify;">Le principe est cependant valable pour tout le reste du projet, et on tente d’avoir des fonctionalités le plus “ortogonales” possibles, donc qui ne se recoupent pas. Certains souhaitaient par exemple ajouter dans la configuration par défaut un “pack” linux basé sur le plugin check_by_ssh en plus de celui basé sur SNMP. J’ai refusé une telle chose car la plupart des utilisateurs vont devoir faire un choix qui est loin d’être simple. J’ai déjà raconté le temps qu’il m’avait fallu pour configurer mon premier Nagios (1 semaine pleine pour avoir une configuration convenable !) et je ne souhaite pas que les débutants de 2012 aient à passer par un tel “bizutage”...</p><p
style="text-align: justify;"><strong>Avec la nouvelle procédure d’installation en une ligne de commande, tu sembles vouloir prendre soin de tes utilisateurs. La phase de configuration initiale du réseau est encore longue et relativement complexe, vas-tu proposer des outils pour les aider ?</strong></p><p
style="text-align: justify;">Grâce au gros travail de David Guenault, l’installation est désormais triviale, et c’est déjà une énorme victoire !</p><p
style="text-align: justify;">Ensuite vient la phase de configuration qui se passe en deux étapes:</p><ul><li>identifier les types d’éléments que l’on a (linux, windows, mysql, mssql, exchange, etc etc) et pour chacun mettre en place des sondes de supervision</li><li>lister ses machines, et les entrer dans l’outil avec les bons types pour qu’elles aient toutes la bonne supervision adaptée et complète (car les soucis viendront toujours de quelque chose que l’on a oublié de supervisé, c’est bien connu).</li></ul><p
style="text-align: justify;">C’est justement dans cette optique que nous avons développé les “packs” de supervision et la librairie de découverte avec son interface sKonf. Dans un environnement “classique” (linux, windows, mssql, mysql, apache, oracle …), une fois l’installation effectuée, il reste à lancer un scan de son réseaux et à configurer les bons mot de passe pour que l’on ait une supervision “acceptable”. Il restera toujours une phase d’adaptation, mais là où bon nombres d’administrateurs auraient déjà abandonnés avec un Nagios, là ils auront leur premiers résultats, et pourront commencer leur processus d’amélioration continue avec la supervision.</p><p
style="text-align: justify;"><strong>On passe à quelques questions plus générales. Pourquoi avoir choisi la licence Affero GPL pour la diffusion de Shinken ?</strong></p><p
style="text-align: justify;">Dans bon nombre d’entreprises, la supervision est externalisée à une société de service, sur un serveur fourni par cette entreprise. Avec uniquement la license GPL, les utilisateurs n’auraient pas eu accès aux sources de l’application qui les surveille. Grâce à l’Affero, ils peuvent en exiger les sources, donc même si cela a fâché certaines personnes comme l’auteur de Nagios, j’ai préféré mettre le maximum de droits dans les mains des utilisateurs.</p><p
style="text-align: justify;"><strong>En face de toi, tu as une concurrence qui dispose de gros moyens commerciaux, marketing et de support technique. Comment te positionnes tu par rapport aux clients professionnels qui peuvent s’inquièter de la péréniter de Shinken ?</strong></p><p
style="text-align: justify;">Heureusement pour le projet Shinken l’effet “communauté” tourne à plein régime et nous n’avons pas à rougir de l’activitéque ce soit en nombres de commits ou de commiters !</p><p
style="text-align: justify;">Le marketing et l’aspect commercial sont cependant deux points faibles. Ce n’est peut être pas un hasard car si je regarde bien, ceci reflète bien mes propres points faibles...</p><p
style="text-align: justify;">Or (malheureusement?) la technique ne fait pas tout. Il est bien plus logique pour un décideur d’aller vers une solution bien vendue avec des “petits déjeuners”, de jolies tablettes de présentations et un discours marketing bien rodé, que de prendre des “risques” et partir vers une solution pleinement communautaire, même si elle réponds au besoin.</p><p
style="text-align: justify;">La seule solution est de monter une structure professionnelle derrière le projet qui permette de rassurer les décideurs avec du support et une assurance de la perénité des produits. Or c’est bien plus complexe que l’on pourrait le croire, car monter un business dans le monde Open Source d’un point de vue “éditeur” est très difficile lorsque l’on se rapproche de la technique comme ici (même si voir la supervision comme de la pure technique est une erreur qui mène un projet de supervision à sa perte soit-dit en passant).</p><p
style="text-align: justify;">On a l’habitude de dire que la solution vient des “services”, surtout de l’intégration quand on écoute bien. Mais si l’on souhaite monter un pur “éditeur”, là la relation intégrateur-éditeur est très vite déséquilibrée pour l’éditeur, avec des intégrateurs qui vont vendre un pack de support complet avec leur intégration. L’éditeur n’a donc plus que la ressource de développement à la demande, quand ce n’est pas un intégrateur qui s’en occupe <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p
style="text-align: justify;">Une solution simple serait de faire comme l’auteur de Nagios ou d’autres éditeur de supervision “open source” en proposant une surcouche graphique ou des modules sous licenses proprietaires et payantes. Si je comprends parfaitement comment ils en sont arrivés à une telle position, je n’ai pas envie de tomber dans le même piège. Je préfèrerai encore rester un simple administrateur de campagne que de faire de même <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p
style="text-align: justify;">La problématique est complexe, car monter une société n’est pas déjà pas simple, mais quand c’est monter une offre “éditeur” dans ce domaine, c’est carément un défi ! Heureusement les mentalités commencent à bouger, et le projet d’entreprise Shinken est par exemple lauréat du concours de création d’entreprise innovante 2012 du ministère de la recherche!</p><p
style="text-align: justify;">D’autres solutions existent, comme par exemple monter une offre SaaS, ou la gestion à la RedHat avec un projet communautaire (fedora) et une version toujours libre (RedHat 6 par exemple) mais supportée quelques années. Trouver la solution idéale est l’activité qui occupe le peu de temps libre que j’ai encore. J’avoue que pouvoir travailler à 100% sur Shinken m’intéresse plus que fortement (ndlr: avis aux sponsors !)</p><p
style="text-align: justify;"><strong>Pour finir cette interview, peux-tu nous donner, en avant première mondiale, une ou deux nouveautées que tu souhaites intégrer dans la prochaine version de Shinken ?</strong></p><p
style="text-align: justify;"> La curiosité est un très bon défaut <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p
style="text-align: justify;"> Outre un gros effort pour “finir” sKonf (par exemple le fait qu’il puisse relancer Shinken serait intéressant....), il va y avoir de nouvelles pages dans WebUI, sur la supervision “End user” à la Cucumber, et une autre sur de la géolocalisation. Les plus curieux peuvent déjà en voir les premières versions déjà présentes dans le code <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p
style="text-align: justify;">Plus proche du coeur de l’outil, une problématique me taraude l’esprit depuis quelques temps : comment changer ses seuils de supervision pendant certaines périodes de temps, genre augmenter les valeurs critique de charge pendant les backups? Un des membres du projet (Olivier Hanesse) a proposé une solution particulièrement élégante qui me plais tellement que je pense qu’elle va arriver très rapidement.</p><p
style="text-align: justify;"><strong>Un petit mot pour finir ?</strong></p><p
style="text-align: justify;">J'aimerais remercier tous ceux qui font vivre le projet, que ce soit avec des remontées de bugs, des patchs, de la documentation ou même un petit merci par mail, car sans eux un projet ne pourrait pas tenir aussi longtemps et se serait sûrement arrété à la phase de la preuve de concept, il y a près de 3 ans.</p><p
style="text-align: justify;">S’il y en a qui souhaitent prendre part à cette belle aventure, qu’ils n’hésitent pas à me contacter !</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/09/interview-de-jean-gabes-pour-la-sortie-de-shinken-1-2.html">Interview de Jean Gabes pour la sortie de Shinken 1.2</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=EI1SsbgujKE:4SpoHyvf8xU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=EI1SsbgujKE:4SpoHyvf8xU:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/EI1SsbgujKE" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=5950
title: Puppet, installation et première configuration
uri: Puppet-installation-et-première-configuration
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/s6oWOO9maLg/puppet-installation-et-premiere-configuration.html

content:
<p>Il s'est écoulé quelques mois depuis <a
href="http://blog.nicolargo.com/2012/03/en-route-vers-puppet-chef-cfengine.html">mon premier billet</a> sur les logiciels libres de gestionnaires de configurations de machines. Ce laps de temps m'a permis de consulter un nombre important d'articles, de forum et de littérature. Il est donc maintenant temps de partager cela avec vous.</p><p
style="text-align: justify;">J'avais initialement prévu de faire un seul gros article, mais devant le nombre important de choses à dire et la complexité du sujet, j'ai préféré le découper en plusieurs parties.</p><p
style="text-align: justify;">La première, que vous êtes en train de lire est une introduction à Puppet ou l'on va détailler <strong>l'installation (serveur et cliente) et la configuration initiale</strong> du système. Viendront ensuite des billets spécifiques sur <strong>la définition des sites et noeuds</strong> puis un ou plusieurs autres sur <strong>les modules</strong>.</p><h1>Introduction</h1><p
style="text-align: justify;">Puppet est donc un "gestionnaire de configurations de machines". Derrière ce terme un peu barbare se cache la possibilité de <strong>centraliser la configuration système de vos machines au sein d'un référentiel unique</strong>. Le procédé peut très bien s'appliquer à une seule machine ou à un parc important et hétérogènes.</p><p
style="text-align: center;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6274" title="Puppet" src="http://blog.nicolargo.com/wp-content/uploads/2012/08/Puppet.png" alt="" width="425" height="343" /></p><p
style="text-align: justify;">Puppet fonctionne sur le principe de <strong>clients</strong> (installé sur les machines de votre parc) et d'un <strong>serveur</strong> (installer sur un ou plusieurs serveurs de votre réseau). Puppet permet ainsi de s'assurer qu'à un <em>instant t</em>, toutes les machines clients sont dans un état de configuration défini sur le serveur.</p><p
style="text-align: justify;">Pour des besoins de tests il est tout à fait envisageable d'héberger à la fois le client et le serveur sur une seule et même machine. J'ai choisi, pour illustrer cet article, d'une architecture un peu plus proche de la réalité:</p><div
id="attachment_6280" class="wp-caption aligncenter" style="width: 499px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><img
class="size-full wp-image-6280" title="Puppet &quot;testbed&quot;" src="http://blog.nicolargo.com/wp-content/uploads/2012/09/Puppet-testbed.png" alt="" width="489" height="415" /><p
style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Puppet "testbed"</p></div><p>Pourquoi <strong>Puppet </strong>et non pas Chef ou CfEngine ?</p><p
style="text-align: justify;">Tout simplement la solution qui m'a semblé la mieux documentée et avec un nombre important de ressources (blog / forum) sur le sujet. Chaque solution a ses avantages, je vous laisse chercher sur votre moteur de recherche préféré les différents articles permettant de les comparer et de choisir celle qui s'adaptera le mieux à vos besoins et surtout avec votre manière de fonctionner.</p><h1>Installation du serveur Puppet (aka PuppetMaster)</h1><p>La version 2.6.6 est disponible dans les dépôts officiels de la Debian 6 (Squeeze) au moment de la rédaction de ce billet. Afin de permettre une utilisation avec les clients en 2.7 (version actuellement packagée sous Ubuntu 12.04), il est nécessaire de passer par <a
href="http://backports-master.debian.org/">le dépôt backports</a> que l'on installe de la manière suivante:</p><pre class="crayon-plain-tag"># sudo vi /etc/apt/sources.list.d/backports.list
deb http://backports.debian.org/debian-backports squeeze-backports main</pre><p>L'installation du serveur (module PuppetMaster) et de ses dépendances se fait sur une distribution GNU/Linux Debian 6 via les commandes suivantes (en root ou précédée de sudo):</p><pre class="crayon-plain-tag">sudo apt-get update
sudo apt-get -t squeeze-backports install puppetmaster</pre><p>Une commande permet de s'assurer que le serveur est bien lancé:</p><pre class="crayon-plain-tag">$ sudo service puppetmaster status
master is running.</pre><p><span
style="color: #ff0000;">Attention</span>: Si votre serveur est protégé par un Firewall alors il faut penser à ouvrir le port <strong>TCP/8140</strong> qui est le port par défaut, sinon les clients n'arriveront pas à le joindre. Si votre serveur est hébergé derrière un réseau NAT, il faudra également rediriger le port TCP/8140 vers votre machine.</p><h1>Installation d'un client Puppet (Debian ou Ubuntu)</h1><p>Encore plus simple est l'installation d'un client <strong>Debian</strong> (sur laquelle le dépôt backport a été ajouté):</p><pre class="crayon-plain-tag">sudo apt-get -t squeeze-backports install puppet</pre><p></p><div> ou <strong>Ubuntu</strong> en utilisant la commande suivante (en root ou précédée de sudo):</div><p></p><pre class="crayon-plain-tag">sudo apt-get install puppet</pre><p>Pour fonctionner, le client Puppet a besoin de connaitre l'adresse du serveur (PuppetMaster). On doit donc éditer, sur la machine cliente, le fichier <strong>/etc/puppet/puppet.conf</strong> et y ajouter la ligne suivante <strong>dans la section [main]</strong>:</p><pre class="crayon-plain-tag">server=&lt;@IP ou NOM du serveur&gt;</pre><p><span
style="color: #ff0000;">Attention</span>: si vous utilisez un nom, ce qui est conseillé, il faut bien s'assurer que la résolution s'effectue correctement à la fois sur le serveur et sur les clients.</p><p>Pour sécuriser la connexion entre les clients et le serveur, Puppet utilise des <a
href="http://fr.wikipedia.org/wiki/Transport_Layer_Security">tunnels SSL</a>. Ces derniers nécessitent une phase d'initialisation à faire seulement une fois lors de la configuration du client. On commence par lancer la commande suivante sur le client (en root ou précédée de sudo):</p><pre class="crayon-plain-tag">client$ sudo puppetd -t -v -w 60
info: Caching certificate for ca
info: Creating a new SSL certificate request for optiplex790
info: Certificate Request fingerprint (md5): E2:D6:FB:1C:7C:36:96:D8:45:92:84:E3:71:F4:C6:BD
info: Caching certificate for optiplex790</pre><p>On demande ensuite, sur le serveur, la liste des certificats SSL en attente de validation (en root ou précédée de sudo):</p><pre class="crayon-plain-tag">serveur$ sudo puppetca --list
  &quot;optiplex790&quot; (E2:D6:FB:1C:7C:36:96:D8:45:92:84:E3:71:F4:C6:BD)</pre><p></p><div>Nous avons donc une machine identifié par le nom "optiplex790" (le nom de ma machine cliente) qui nécessite d'être autorisé par le serveur. Pour effectuer cette tache d'autorisation, on doit valider son certificat (en root ou précédée de sudo):</div><div><pre class="crayon-plain-tag">serveur$ sudo puppetca --sign optiplex790
notice: Signed certificate request for optiplex790
notice: Removing file Puppet::SSL::CertificateRequest optiplex790 at '/var/lib/puppet/ssl/ca/requests/optiplex790.pem'</pre></div><p><span
style="text-decoration: underline;">Remarque</span>: il est également possible de forcer l'authentification pour une plage d'adresses IP donnée. Cela représente tout de même une faille de sécurité qui est difficilement acceptable sur une réseau en production.</p><p>Il ne reste plus, sur le client, qu'à éditer le fichier /etc/default/puppet pour automatiser le lancement de Puppet au démarrage de la machine:</p><pre class="crayon-plain-tag"># Start puppet on boot?
START=yes</pre><p>Et enfin à relancer le daemon du client en tache de fond:</p><pre class="crayon-plain-tag">sudo /etc/init.d/puppet start</pre><p>Pour les phases de tests (par exemple lors de la mise en place de nouveaux modules), il est conseillé de désactiver le demon sur les clients...:</p><pre class="crayon-plain-tag">sudo /etc/init.d/puppet stop</pre><p></p><div>... et de le lancer à la main et en mode "verbeux":</div><div><pre class="crayon-plain-tag">sudo puppetd -t -v</pre></div><h1>Et sous Windows ?</h1><p
style="text-align: justify;">Puppet propose <a
href="https://downloads.puppetlabs.com/windows/">un client open-source sous Windows</a>.</p><p
style="text-align: justify;">La procédure d'installation <a
href="http://docs.puppetlabs.com/windows/installing.html">se trouve ici</a>. Sous Winddows 7, le fichier de configuration <strong>puppet.conf</strong> ou il faudra configurer l'adresse du PuppetMaster se trouve dans le répertoire <strong>C:\ProgramData\PuppetLabs\puppet\etc</strong>.</p><p
style="text-align: justify;">Pour lancer Puppet client, il suffit ensuite de lancer une premier fois Puppet à partir du <strong>menu Démarrer &gt; Programmes &gt; Puppet &gt; Run Puppet Agent</strong>. Ce dernier va afficher un message comme quoi le serveur n'arrive pas à l'identifier. On doit, comme pour les client GNU/Linux forcer l'authentification avec la commande suivante sur le serveur:</p><p></p><pre class="crayon-plain-tag">sudo puppetca --sign win7</pre><p>Le prochain lancement de Puppet (menu Démarrer &gt; Programmes &gt; Puppet &gt; Run Puppet Agent) devrait se faire sans problème.</p><p>Et hop passons aux choses sérieuses...</p><h1>Configuration de votre référence: le serveur Puppet</h1><p
style="text-align: justify;">Toute la configuration (référentiel) de Puppet est centralisé dans l'arborescence<strong> /etc/puppet</strong> de votre serveur fraichement installé. Dans le <a
href="http://projects.puppetlabs.com/projects/puppet/wiki/Puppet_Best_Practice2">"best practice" de Puppet</a>, il est fortement conseillé de gérer ce répertoire (et ce qu'il contient) en configuration (sous CVS, SVN ou GIT). C'est dans ce répertoire que nous allons définir notre site (réseau), nos noeuds (machines) et les modules (actions) à appliquer lors de la mise en configuration.</p><p>Commençons par une rapide description des fichiers contenus dans ce répertoire:</p><ul><li><strong>/etc/puppet/</strong><strong>manifests/site.pp:</strong> C'est le premier fichier analysé par PuppetMaster pour définir son référentiel. Il permet de définir des <strong>variables globales</strong> et d'<strong>importer des modules</strong> (ensembles de classes) ainsi que des fichiers <strong>templates</strong> et <strong>noeuds</strong> de votre réseau. Attention de ne pas définir directement les templates et les noeuds dans ce fichier... C'est techniquement faisable mais pas très propre à maintenir.</li><li><strong>/etc/puppet/</strong><strong>manifests/template.pp:</strong> (optionnel) Permet de définir ou d'étendre (notion d'héritage comme en POO) des classes spécifiques à votre réseau.</li><li><strong>/etc/puppet/</strong><strong>manifests/node.pp:</strong> Permet de définir les noeuds (machines) de votre réseau. Il est conseillé de défini le nom d'un noeud par le nom <a
href="http://fr.wikipedia.org/wiki/Fully_qualified_domain_name">FQDN</a> de la machine. Si votre réseau est important (plusieurs centaines de machines à gérer), il est tout à fait possible de créer une arborescence dédié avec un fichier node.pp par sous-réseau.</li><li><strong>/etc/puppet/</strong><strong>modules/<em>&lt;module&gt;</em>/:</strong> Sous répertoire contenant la définition du module (action). Un fichier <strong>&lt;module&gt;/manifests/init.pp</strong> contient la définition du module (en clair c'est ici que l'on va définir ce que l'on doit faire sur la machine cliente) et le répertoire <strong>&lt;module&gt;/files/</strong>l'ensemble des fichiers nécessaires à l’exécution de ce module. Voyons maintenant le détail de ces fichiers.</li></ul><h2>Définition de votre site (réseau Puppet)</h2><p>Idéalement, le fichier <strong>site.pp</strong> ne doit contenir que des lignes import (permettant d'importer les autres fichiers de configuration) et la définition des variables globales (nécessaire à plusieurs modules).</p><pre class="crayon-plain-tag">filebucket { 'main': server =&gt; 'puppet.nicolargo.com' }
File { backup =&gt; 'main' }
import "node"</pre><p>Les deux premières lignes définissent <a
href="http://docs.puppetlabs.com/references/latest/type.html#filebucket">les paramètres permettant aux client d'accéder au serveur de fichier PuppetMastert</a> en indiquant notamment le nom FQDN du serveur Puppet (à adapter à votre configuration). Attention de bien vérifier que les machines clients arrive bien à résoudre le nom FQDN en question. La troisième ligne demande au serveur de prendre en compte tous les noeuds disponibles dans le fichier <strong>node.pp</strong>.</p><h2>Définition de vos noeuds (machines clientes Puppet)</h2><p>Nous allons utiliser le fichier <strong>node.pp</strong> pour définir les configurations à appliquer sur les machines clientes de notre réseau. Par exemple pour définir le noeud nommé optiplex790 (machine dont nous avons validés l'authentification dans le chapitre précédant) et y appliquer le module dummy, il faut éditer le fichier <strong>/etc/puppet/</strong><strong>manifests/node.pp </strong>en y ajoutant les lignes suivantes:</p><pre class="crayon-plain-tag">node 'optiplex790' {
	include dummy
}</pre><p>Le module dummy va être défini dans le paragraphe suivant.</p><h2>Définition des modules (actions à appliquer sur les machines clientes Puppet)</h2><p>Chaque module dispose de son propre répertoire sous <strong>/etc/puppet/modules/&lt;module</strong>&gt;. Ainsi on commence par créer l'arborescence du module <strong>dummy</strong>:</p><pre class="crayon-plain-tag">mkdir -p /etc/puppet/modules/dummy/manifests
mkdir -p /etc/puppet/modules/dummy/files</pre><p>Le premier répertoire (manifests) va contenir la définition de l'action. Le second (files), les optionnels fichiers permettant d'effectuer cette action. On défini l'action dummy en créant le fichier <strong>/etc/puppet/modules/dummy/manifests/init.pp</strong> avec le contenu suivant:</p><pre class="crayon-plain-tag">class dummy {
        file { "/etc/puppet.txt":
                owner =&gt; root,
                group =&gt; root,
                mode =&gt; 644,
                source =&gt; "puppet:///dummy/puppet.txt"
        }
}</pre><p>Le module <strong>dummy </strong>va donc vérifier:</p><ul><li>l'existence sur la machine cliente d'un fichier <span
style="color: #008000;"><strong>/etc/puppet.txt</strong></span></li><li>appartenant à l'utilisateur <span
style="color: #008000;"><strong>root</strong></span></li><li>appartenant au groupe <span
style="color: #008000;"><strong>root</strong></span></li><li>avec les droits <span
style="color: #008000;"><strong>644</strong></span></li><li>et dont le contenu doit être égal au fichier <span
style="color: #008000;"><strong>/etc/puppet/modules/dummy/files/puppet.txt</strong></span> disponible sur le serveur</li></ul><h2>Prise en compte de la nouvelle référence par le serveur</h2><p>Pour que PuppetMaster prenne en compte al nouvelle référence que nous venons de définir, il faut relancer le démon avec la commande (en root ou avec sudo):</p><pre class="crayon-plain-tag">sudo service puppetmaster restart</pre><p></p><h1>Forcer la mise en configuration sur vos clients Puppet</h1><p>Pour tester la configuration, nous allons lancer la commande suivante sur le noeud optiplex790 (machine sous Ubuntu 12.04):</p><pre class="crayon-plain-tag">sudo puppetd -t -v</pre><p>Si vous rencontrez l'erreur suivante sur votre client:</p><pre class="crayon-plain-tag">err: Could not retrieve catalog from remote server: Error 400 on SERVER: No support for http method POST
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run</pre><p>C'est probablement que vous utilisez une version du client Puppet supérieure à PuppetMaster (par exemple un Puppet client 2.7 avec un PuppetMaster 2.6). Un bug report <a
href="https://groups.google.com/forum/?fromgroups=#!topic/puppet-users/jCfFRazduvo">est disponible ici</a>. Avec la même version des deux cotés et si tout ce passe bien le message suivant devrait s'afficher:</p><pre class="crayon-plain-tag">info: Caching catalog for optiplex790
info: Applying configuration version '1346169168'
notice: /Stage[main]/Dummy/File[/etc/puppet.txt]/ensure: defined content as '{md5}1425249a5cbdea520b7a1a23f7bc2153'
info: Creating state file /var/lib/puppet/state/state.yaml
notice: Finished catalog run in 0.64 seconds</pre><p>Dans le cas ou tout se passe correctement, vous devriez alors trouver un nouveau fichier puppet.txt  dans votre répertoire /etc:</p><pre class="crayon-plain-tag">$ ll /etc/puppet.txt
-rw-r--r-- 1 root root 35 août  29 15:02 /etc/puppet.txt</pre><p></p><h1>Ne pas réinventer la roue...</h1><p
style="text-align: justify;">Maintenant que vous avez les bases permettant d'associer des actions à des machines, seule votre imagination vous posera des limites. Cependant, avant de partir bille en tête dans le développement de nouveaux modules, je vous conseille de regarder du coté <a
href="http://forge.puppetlabs.com/">de la Forge Puppet</a> qui est un site communautaire permettant de partager, rechercher et récupérer des modules pour un nombre très important de cas. C'est également un très bon moyen d'apprendre le langage utilisé par Puppet en récupérant et lisant le code des modules.</p><p
style="text-align: justify;"> <img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6281" title="capture_001" src="http://blog.nicolargo.com/wp-content/uploads/2012/09/capture_001.png" alt="" width="514" height="410" /></p><p>Pensez également à partager vos modules !</p><h1>En cas de problèmes...</h1><p>Si vous rencontrez un problème lors de la configuration de votre Puppet Master, le plus simple est d'ouvrir une console et de surveiller la log des demons en filtrant un peu la sortie:</p><pre class="crayon-plain-tag">serveur$ tail -f /var/log/daemon.log | grep puppet</pre><p>et de lancer la commande coté client en mode debug:</p><pre class="crayon-plain-tag">client$ sudo puppetd -t -v -d</pre><p></p><h1>Conclusion</h1><p>Nous venons donc de faire nos premiers pas dans le très compl[et|exe] monde de Puppet. L'investissement nécessaire à l'administrateur est à la hauteur du gain de temps, de traçabilité et d'efficacité qu'il obtiendra en fin de projet.</p><p>A très vite pour la suite des billets sur Puppet !</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/09/puppet-installation-et-premiere-configuration.html">Puppet, installation et première configuration</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=s6oWOO9maLg:bIivptw_Tis:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=s6oWOO9maLg:bIivptw_Tis:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/s6oWOO9maLg" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6257
title: Sauvegarde incrémentale et automatisé de votre compte Gmail
uri: Sauvegarde-incrémentale-et-automatisé-de-votre-compte-Gmail
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/31TMvuM3hAI/sauvegarde-incrementale-et-automatise-de-votre-compte-gmail.html

content:
<p><a
href="http://blog.nicolargo.com/2012/08/sauvegarde-incrementale-et-automatise-de-votre-compte-gmail.html/gmail1" rel="attachment wp-att-6260"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-thumbnail wp-image-6260" title="gmail1" src="http://blog.nicolargo.com/wp-content/uploads/2012/08/gmail1-150x150.png" alt="" width="150" height="150" /></a>Les prophètes du Web avaient prédit la fin des mails avec l'arrivée des réseaux sociaux. Force est de constater que la messagerie électronique "classique" est toujours bien ancrée dans les moeurs.  Pour une utilisation personnelle, la messagerie GMail de Google fait office de leader sur le marché. J'ai personnellement plus de 3 Go d'archives de mail sur mon compte personnel. Bien que très stable, le service de Google n'est pas à l'abri d'une perte de vos précieux messages. Nous allons donc voir dans ce billet comment conserver une archive locale de votre compte Gmail en utilisant le logiciel libre GetMail. GetMail est distribué sous licence GPL version 2 et il est disponible dans les dépôts des principales distributions GNU/Linux.</p><p>La procédure suivante va nous permettre de faire une sauvegarde incrémentale (seul les nouveaux messages sont téléchargés) d'un compte Gmail accessible via le protocole IMAP sur une machine Debian Squeeze (mais la procédure est la même sous Ubuntu).</p><h1>Installation et configuration initiale de Getmail</h1><p>On commence par installer le logiciel:</p><pre class="crayon-plain-tag">sudo apt-get install getmail4</pre><p>On créé ensuite les sous-répertoires suivants (à adapter à votre configuration):</p><ul><li>~/.getmail: va contenir les fichiers de configuration de Getmail (un fichier par compte)</li><li>~/backup/gmail: est le répertoire de destination ou la sauvegarde va être faite</li></ul><p>En utilisant les commandes suivantes:</p><pre class="crayon-plain-tag">mkdir ~/.getmail
mkdir ~/backup/gmail</pre><p>On passe ensuite à la création du fichier de configuration (~/.getmail/getmail.gmail) pour notre compte Gmail. Ce dernier doit contenir les lignes suivantes:</p><pre class="crayon-plain-tag">[retriever]
type = SimpleIMAPSSLRetriever
server = imap.gmail.com
username = user@gmail.com
password = password
mailboxes = ("inbox",)
port = 993
[destination]
type = Mboxrd
path = ~/backup/gmail/user.mbox
[options]
received = false
delivered_to = false
read_all = false
verbose = 0</pre><p>Je vous laisse modifier ce fichier avec vos propres informations.</p><p>On s'empresse de protéger ce fichier des regards extérieurs:</p><pre class="crayon-plain-tag">chmod 700 ~/.getmail/getmail.gmail</pre><p>Comme vous pouvez le voir dans cette même configuration, j'ai choisi d'utiliser le format <a
href="http://en.wikipedia.org/wiki/Mbox">Mboxrd</a> qui est un standard reconnu par la plupart des logiciels. Getmail doit disposer d'une archive vide avec les bons droits avant de le lancer pour la première fois. On utilise donc la commande suivante pour le satisfaire:</p><pre class="crayon-plain-tag">touch ~/backup/gmail/user.mbox</pre><p></p><h1>Lancement initial de Getmail</h1><p>Je vous conseille de faire le premier lancement de Getmail depuis une console pour voir les éventuels messages d'erreurs.</p><pre class="crayon-plain-tag">getmail -r ~/.getmail/getmail.gmail</pre><p>Il est possible, notamment si vous lancé Getmail depuis un serveur n'ayant jamais fait de connexions clientes IMAP vers GMail, que Google bloque l'accès et que Getmail retourne un message du style:</p><pre class="crayon-plain-tag">IMAP error during logout (command CLOSE illegal in state AUTH, only allowed in states SELECTED)</pre><p>Pour résoudre se problème il faut se connecter sur votre compte Gmail (à partir de n'impote qu'elle machine) puis de cliquer sur le bandeau rouge en haut de l'écran:</p><p><a
href="http://blog.nicolargo.com/2012/08/sauvegarde-incrementale-et-automatise-de-votre-compte-gmail.html/capture_064-2" rel="attachment wp-att-6258"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6258" title="capture_064" src="http://blog.nicolargo.com/wp-content/uploads/2012/08/capture_064-580x43.png" alt="" width="580" height="43" /></a></p><p>Puis de valider votre connexions:</p><p><a
href="http://blog.nicolargo.com/2012/08/sauvegarde-incrementale-et-automatise-de-votre-compte-gmail.html/capture_065-2" rel="attachment wp-att-6259"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6259" title="capture_065" src="http://blog.nicolargo.com/wp-content/uploads/2012/08/capture_065-580x368.png" alt="" width="580" height="368" /></a></p><p>Vous avez alors 10 minutes pour relancer la première commande de ce paragraphe.</p><p>Si il n'y a pas d'erreur, alors le téléchargement des fichiers vers votre archive (fichier unique) devrait commencer. vous pouvez aller prendre un café, ou plusieurs, selon la taille de votre compte GMail. Je vous conseille de prévoir <strong>un espace disquelégérement supérieur à l'information donnée par Gmail</strong> en bas du WebMail (fichier archive de 4 Go pour 3 Go affiché dans Gmail). En effet, l'archivage implique l'ajout d'un "overhead" assez important.</p><p><span
style="color: #808080;"><span
style="text-decoration: underline;">Note</span>: Même depuis mon serveur OVH connecté à 100 Mbps sur Internet, je ne dépasse pas les 1 Mbps lors de l'archivage, surement une limite des serveurs Google et/ou du protocole IMAP.</span></p><h1>Automatiser la sauvegarde</h1><p
style="text-align: center;">"Sauvegarder, c'est bien, automatiser la sauvegarde c'est mieux." [Nicolargo]</p><p>Une petite ligne ajoutée à votre crontab système va permettre d'automatiser la sauvegarde incrémentale de votre compte Gmail. Personnellement, je la déclenche toutes les nuits à 1h du matin.</p><pre class="crayon-plain-tag"># crontab -e
0 1 * * * getmail -r ~/.getmail/getmail.gmail</pre><p>Vous voilà maintenant plus tranquille avec une archive bien à vous de vos (g)mails !</p><p>&nbsp;</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/08/sauvegarde-incrementale-et-automatise-de-votre-compte-gmail.html">Sauvegarde incrémentale et automatisé de votre compte Gmail</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=31TMvuM3hAI:cM8S6RpIxeQ:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=31TMvuM3hAI:cM8S6RpIxeQ:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/31TMvuM3hAI" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6253
title: Quelques liens glanés pendant l&#8217;été
uri: Quelques-liens-glanés-pendant-l-été
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/Pv0oq9zluHA/quelques-liens-glanes-pendant-lete.html

content:
<p>De retour de congés après 3 semaines de sevrage de clavier et de souris. Tel un aventurier solitaire avec mon smathphone comme couteau de commando, voici les liens intéressants que j'ai étoilé pour moi et maintenant pour vous.</p><ul><li>Pas mal de mouvement du coté des <strong>WAF</strong> (Web Application Firewall) pour NGinx avec notamment <a
href="http://www.modsecurity.org/projects/modsecurity/nginx/index.html">ModSecurity</a> qui débarque. Je pense prochainement faire un billet sur son grand concurrent Français, j'ai nommé <a
href="http://code.google.com/p/naxsi/">Naxsi</a>. Preuve que le secteur est en pleine ébullition, même Korben, notre DDOS Generator propose <a
href="http://korben.info/nginx-comment-bloquer-les-attaques-les-plus-courantes.html">une configuration statique de Nginx</a> pour se protéger de quelques attaques.</li><li><a
href="http://yunohost.org/?lang=fr">YunoHost</a>, une distribution GNU/Linux basée sous Debian propose toutes les briques pour un <strong>serveur professionnel</strong> administrable par une interface Web. Une démo est <a
href="http://yunohost.org/demo/?lang=fr">disponible</a> en ligne.</li><li><a
href="https://github.com/textmate/textmate">Textmate 2</a> passe sous licence <strong>GPL v3</strong>. Vu <a
href="http://blog.macromates.com/2012/textmate-2-at-github/">les raisons invoqués</a> par le créateur, je ne pense pas que cela face beaucoup avancer les choses pour les logiciels libres...</li><li>Le partage des configurations du <strong>prompt</strong> Shell est très à la mode, j'adore celui là: <a
href="http://linuxfr.org/news/liquidprompt-version-1-0">LiquidPrompt</a>.</li><li><a
href="http://www.gluster.org/">GlusterFS</a>, le <strong>système de fichiers</strong> nativement distribués est disponible en version 3.3. Encore un prochain sujet de billet.</li><li>Si vous devez faire un site Web, plutôt qu'une bête feuille <strong>CSS</strong> de reset, je vous propose d'utiliser <a
href="http://necolas.github.com/normalize.css/#v1">Normalize.css</a>.</li><li>Vous êtes un utilisateur de <strong>Syslog-ng</strong> ? Alors <a
href="http://codeascraft.etsy.com/2012/08/13/performance-tuning-syslog-ng/">cet article devrait vous plaire</a>.</li></ul><p>De mon coté, quelques activités durant le mois de juillet:</p><ul><li>la mise à disposition de <a
href="http://nicolargo.github.com/glances/">Glances en version 1.4</a>.</li><li>mise à jour du script de <a
href="https://github.com/nicolargo/debianpostinstall">post-configuration de Debian</a></li><li>mise à jour des scripts d'auto-installation de <a
href="https://github.com/nicolargo/nagiosautoinstall">Nagios</a> et de <a
href="https://github.com/nicolargo/shinkenautoinstall">Shinken</a></li></ul><p>Bonne reprise aux chanceux qui ont pris des vacances !</p><p>&nbsp;</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/08/quelques-liens-glanes-pendant-lete.html">Quelques liens glanés pendant l&#8217;été</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=Pv0oq9zluHA:m27TtAyJtgc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=Pv0oq9zluHA:m27TtAyJtgc:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/Pv0oq9zluHA" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6243
title: Hébergements des blogs du Planet Libre
uri: Hébergements-des-blogs-du-Planet-Libre
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/wAzCBg1DOoA/hebergements-des-blogs-du-planet-libre.html

content:
<p>Dans <a
href="http://blog.nicolargo.com/2012/07/comment-sont-heberges-les-blogs-francais.html">mon dernier billet</a>, j'avais utilisé <a
href="https://github.com/nicolargo/blogostat">des scripts</a> pour récupérer automatiquement un certain nombre d'informations sur les blogs Français. J'ai donc adapté ces scripts pour recueillir ces mêmes informations sur les blog du Planet Libre (<a
href="https://github.com/nicolargo/blogostat/blob/master/planet-libre-liste.txt">liste des blogs</a> datées du mois de juillet 2012).</p><p>Les informations suivantes sont analysées :</p><ul><li>le nom de l'hébergeur</li><li>le type de serveur Web utilisé et si le blog utilise un proxy/cache <a
href="http://blog.nicolargo.com/?s=varnish">Varnish</a></li></ul><p
style="text-align: center;"><a
href="https://github.com/nicolargo/blogostat/raw/master/planet-libre-201207.png" rel="lightbox[6243]"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" title="Hébergement des blogs - Planet libre - 07/2012" src="https://github.com/nicolargo/blogostat/raw/master/planet-libre-201207.png" alt="" width="622" height="611" /></a></p><p
style="text-align: left;">Sur l'hébergement, OVH arrive en tête. Par contre et contrairement aux autres types de blogs, le nombre de serveurs auto-hébergés arrive en troisième position (13%, à égalité avec Online.fr).</p><p
style="text-align: left;">Sur les serveurs Web, Apache domine Nginx (pourtant très à la mode) avec plus de 70% des blogs. On peut aussi noter la faible proportion de blogs utilisant Varnish (environ 2%).</p><p
style="text-align: left;"><p>Cet article <a
href="http://blog.nicolargo.com/2012/07/hebergements-des-blogs-du-planet-libre.html">Hébergements des blogs du Planet Libre</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=wAzCBg1DOoA:rJ8z4TH0RTU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=wAzCBg1DOoA:rJ8z4TH0RTU:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/wAzCBg1DOoA" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6234
title: Comment sont hébergés les blogs Français ?
uri: Comment-sont-hébergés-les-blogs-Français
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/cv96TEkFioo/comment-sont-heberges-les-blogs-francais.html

content:
<p
style="text-align: justify;">On annonce régulièrement que l'avènement du Web 3.0 sonnera comme la fin des blogs, du moins dans la forme dont on les connait actuellement. En attendant cette révolution, les blogs restent, de mon point de vu, la source d'information la plus intéressante sur la World Wide Web. La France n'est pas à la traîne et dispose d'une blogosphère dynamique. Nous allons dans ce billet nous intéresser aux techniques d'hébergements qu'utilisent ces sites.</p><p
style="text-align: justify;">J'ai compacté les grandes tendances des données obtenues dans le diagramme suivant:</p><div
class="wp-caption aligncenter" style="width: 632px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><img
class=" " title="La french blogosphère et son hébérgement en 2012" src="https://github.com/nicolargo/blogostat/raw/master/blogostat-201207.png" alt="La french blogosphère et son hébérgement en 2012" width="622" height="611" /><p
style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">La french blogosphère et son hébérgement en juillet 2012</p></div><p
style="text-align: justify;"> J'ai donc chercher, pour les blogs appartenant au <a
href="http://labs.ebuzzing.fr/top-blogs">TOP 300 du classement eBuzzing de juillet 2012</a>, les informations suivantes:</p><ul><li>le nom de l'hébergeur</li><li>le type de serveur Web utilisé</li><li>si le blog utilise un proxy/cache <a
href="http://blog.nicolargo.com/?s=varnish">Varnish</a></li></ul><p
style="text-align: justify;">Pour cela, j'ai écrit des scripts shell (disponible <a
href="https://github.com/nicolargo/blogostat">sur le GitHub suivant sous licences LGPL</a>) permettant de récupérer automatiquement la liste des blogs sur le site eBuzzing, de chercher dans la base Whois chez qui le blog est hébergé et enfin d'étudier l'header HTTP renvoyé pour avoir des informations sur le type de serveur Web et l'utilisation éventuelle de Varnish, le proxy/cache à la mode.</p><p
style="text-align: justify;">Les résultats bruts sont dans ces deux fichiers CSV: <a
href="https://raw.github.com/nicolargo/blogostat/master/tophebergeur.csv">hébergeur</a> et <a
href="https://raw.github.com/nicolargo/blogostat/master/topwebserveur.csv">type de serveur Web</a>.</p><p
style="text-align: justify;"><strong><span
style="text-decoration: underline;">Note importante:</span></strong></p><p
style="text-align: justify;">Les informations données dans ce graphe sont à prendre avec certaines précautions. En effet, concernant les hébergeurs, l'utilisation de service comme <a
href="https://fr.cloudflare.com/">CloudFare</a> (utilisé notamment par <a
href="http://korben.info/">Korben.info</a>) masque l’hébergeur. Pour le type de serveur Web, il est tout à fait possible à un administrateur, pour des raisons de sécurité, de masquer ou de transformer les informations renvoyées par l'en-tête HTTP.</p><h1 style="text-align: justify;">Les hébergeurs</h1><p
style="text-align: justify;"><a
href="http://www.ovh.com/fr/index.xml">OVH</a>, Le leader Français de l'hébergement trône en haut de la plus haute marche du podium avec 21% des blogs parmi le TOP 300 eBuzzing. Il est suivi avec 19% des blogs, par la plate-forme <a
href="http://www.over-blog.com/">OverBlog</a> qui permet de créer sont blog en quelques clicks. Enfin, dans le même esprit, on retrouve 14% des blogs hébergés par la plate-forme <a
href="http://www.blogger.com/home">Blogger</a> de Google (a noter que pour ce dernier, l'hébergeur est masqué, mais on voit que ces blogs utilisent le serveur Web GSE, solution spécifique à Google).</p><p
style="text-align: justify;">Dans les autres hébergeurs, on peut noter la très bonne 6em place du très professionnel hébergeur <a
href="http://www.typhon.com/fr/">Typhon</a> avec 3% des blogs.</p><h1 style="text-align: justify;">Les types de serveur Web</h1><p
style="text-align: justify;">Pas de grosses surprises. <a
href="http://www.apache.org/">Apache Web Serveur</a> arrive en tête avec 71% des blogs. Bien qu'il existe des solutions plus légères, surtout pour héberger un simple blog, Apache conserve une solide réputation en terme de fiabilité et de facilité d'administration grâce aux nombreuses sources d'informations que l'on peut trouver sur le Web. Vient ensuite, avec 17% des blogs, <a
href="http://nginx.com/">Nginx</a> le challenger qui monte. Un solution également très stable mais beaucoup plus légère <a
href="http://blog.nicolargo.com/2011/08/installation-pas-a-pas-dun-serveur-de-blog-wordpress-sur-debian-squeeze.html">que j'utilise personnellement</a> depuis quelques années sur ce blog. Enfin, on retrouve, avec 14% des blogs, le serveur GSE de Google, utilisé sur sa plate-forme Blogger (à noter qu'il en existe <a
href="http://google-opensource.blogspot.fr/2009/01/opengse-released.html">une implémentation open-source</a> sous licence Apache 2).</p><h1 style="text-align: justify;">Varnish or not Varnish</h1><p
style="text-align: justify;">J'ai été surpris par le nombre assez important (26%)  des blogs utilisant cette superbe solution de proxy/cache qu'est <a
href="http://blog.nicolargo.com/2010/10/booster-votre-blog-wordpress-avec-varnish.html">Varnish</a>. En regardant ce chiffre de plus près, il faut noter que la plate-forme OverBlog le met en place par défaut sur l'ensemble de ses serveurs. Vu le gain de performance et l’allègement des ressources CPU qu'il procure sur les blogs à fort trafic, je pense que ce chiffre va fortement évoluer dans les prochains mois.</p><h1 style="text-align: justify;">Et pour les blogs libristes ?</h1><p
style="text-align: justify;">J'ai également exécuté les même scripts de statistiques sur les blogs traitant des <a
href="http://labs.ebuzzing.fr/top-blogs/logiciels_libres">logiciels libres en me basant sur le classement Wikio</a> (limité au 60 premiers blogs). Vous pouvez consulter et exploiter les données qui sont disponibles dans les deux fichiers suivants: <a
href="https://raw.github.com/nicolargo/blogostat/master/top60librehebergeur.csv">hébergeurs</a> et <a
href="https://raw.github.com/nicolargo/blogostat/master/top60librewebserveur.csv">type de serveur Web</a>.</p><p
style="text-align: justify;">Et vous lecteurs/blogueurs, vous êtes chez quel hébergeur ? Quel serveur Web ? Varnish ?</p><p
style="text-align: justify;">Partager tout cela avec nous dans les commentaires !</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/07/comment-sont-heberges-les-blogs-francais.html">Comment sont hébergés les blogs Français ?</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=cv96TEkFioo:-M_htJIkfNc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=cv96TEkFioo:-M_htJIkfNc:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/cv96TEkFioo" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6184
title: Modèles de présentations HTML5 pour remplacer PowerPoint
uri: Modèles-de-présentations-HTML5-pour-remplacer-PowerPoint
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/wM7l8VpYTS4/modeles-de-presentation-html5-pour-remplacer-powerpoint.html

content:
<p
style="text-align: justify;">Suite à <a
href="http://www.nicolargo.com/press/sophiaconf2012/index.html">mon track sur la supervision</a> lors de la première journée de <a
href="http://www.telecom-valley.fr/blog/sophiaconf2012">SophiaConf 2012</a>, j'ai eu pas mal de question par mail sur le logiciel utilisé pour concevoir mon support. J'ai en fait utilisé une présentation 100% HTML5 basée sur <a
href="http://bartaz.github.com/impress.js">l'outil Impress.js</a>, lui même inspiré de <a
href="http://prezi.com/">Prezi</a>. Je ne trouve que des avantages à ce type de présentation. En effet, en mettant de coté le dynamisme et l'aspect "fun", on manipule un format standard, lisible sur n'importe quel navigateur digne de ce nom (je dois avouer que Impress.js, fonctionne beoucoup plus fluidement sur Chromium que sur Firefox).</p><p
style="text-align: justify;">Nous allons dans ce billet découvrir un panel de solutions équivalentes permettant, moyennant une bonne connaissance du langage HTML et de CSS, de concevoir des présentations originales sans avoir à installer aucun logiciel sur votre machine mis à part un éditeur de texte et un navigateur Web. Bref une solution 100% libre, basée sur des standards !</p><p><a
href="#comments">Les commentaires</a> sont bien sûr là pour compléter cette liste et nous faire partager vos expériences sur le sujet !</p><h1>Impress.js</h1><p><a
href="http://blog.nicolargo.com/2012/07/modeles-de-presentation-html5-pour-remplacer-powerpoint.html/capture_051-2" rel="attachment wp-att-6205"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-6205" title="capture_051" src="http://blog.nicolargo.com/wp-content/uploads/2012/07/capture_051-300x214.png" alt="" width="300" height="214" /></a></p><p
style="text-align: center;"><a
class="button" href="http://bartaz.github.com/impress.js/">Démonstration</a></p><p
style="text-align: center;"><p
style="text-align: center;"><a
class="button" href="https://github.com/bartaz/impress.js/blob/master/index.html">GitHub</a></p><p
style="text-align: left;">C'est par cet outil que j'ai découvert les alternative possible à la grande maladie des entreprises du 21em siècle: PowerPoint.</p><p
style="text-align: justify;">L'exemple fourni sur le GitHub permet de bâtir simplement un jeu de slide. Pour être un peu plus original, il faudra aller éditer le fichier CSS. Impress.js s'occupe de tout le reste: transition entre les slides, vu d'ensemble des slides, animations. C'est un projet perpétuellement en évolution, à surveiller sur GitHub.</p><p
style="text-align: justify;">Personnellement, j'ai "forké" le projet <a
href="https://github.com/nicolargo/impress.js">sur mon espace GitHub</a>, puis je génère une branche par présentation. Cela me permet d'avoir toujours les présentations sous le coude. A noter <a
href="https://chrome.google.com/webstore/detail/oapbogjabkejljhahpfmmmkankeojjki">GitHTML</a>, l’excellente extension à Chrome/Chromium , qui vous permet de visualiser directement vos fichiers HTML  et donc votre présentation à partir de GitHub.</p><h1>Deck.js</h1><p
style="text-align: center;"><a
href="http://blog.nicolargo.com/2012/07/modeles-de-presentation-html5-pour-remplacer-powerpoint.html/capture_052-2" rel="attachment wp-att-6206"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-6206" title="capture_052" src="http://blog.nicolargo.com/wp-content/uploads/2012/07/capture_052-300x127.png" alt="" width="300" height="127" /></a></p><p
style="text-align: center;"><a
class="button" href="http://imakewebthings.com/deck.js/">Démonstration</a></p><p
style="text-align: center;"><p
style="text-align: center;"><a
class="button" href="https://github.com/imakewebthings/deck.js">GitHub</a></p><p
style="text-align: justify;">Projet débuté en mars 2011, il propose une alternative sérieuse à Impress.js. Moins "fun", les présentations générés sont cependant claires et je trouve le code HTML plus propre.</p><h1>Html5Rocks</h1><p
style="text-align: center;"><a
href="http://blog.nicolargo.com/2012/07/modeles-de-presentation-html5-pour-remplacer-powerpoint.html/capture_053" rel="attachment wp-att-6207"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-6207" title="capture_053" src="http://blog.nicolargo.com/wp-content/uploads/2012/07/capture_053-300x172.png" alt="" width="300" height="172" /></a></p><p
style="text-align: center;"><a
class="button" href="http://slides.html5rocks.com/#landing-slide">Démonstration</a></p><p
style="text-align: left;"><p>Distribué sous licence Apache 2.0, ce jeu de slides est initialement conçu pour présenter les nouveautés du langage HTML5. Sa structure peut permettre de bâtir simplement votre propre présentation avec en prime des exemples de fonctions HTML5 déjà toutes faites.</p><h1>Html5Slides par Google</h1><p
style="text-align: center;"><a
href="http://blog.nicolargo.com/2012/07/modeles-de-presentation-html5-pour-remplacer-powerpoint.html/capture_054-4" rel="attachment wp-att-6213"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-6213" title="capture_054" src="http://blog.nicolargo.com/wp-content/uploads/2012/07/capture_054-300x199.png" alt="" width="300" height="199" /></a></p><p
style="text-align: center;"><a
class="button" href="http://html5slides.googlecode.com/svn/trunk/template/index.html">Démonstration</a></p><p
style="text-align: center;"><p
style="text-align: center;"><a
class="button" href="http://code.google.com/p/html5slides/">Google Code</a></p><p
style="text-align: justify;">Difficile de faire un billet sur un tel sujet sans parler de Google qui y va de son <a
href="http://code.google.com/p/html5slides/source/browse/trunk/template/index.html">modèle</a> de présentation compatible HTML5. Pas de surprise ici. C'est simple et sobre avec un code HTML facilement compréhensible, même pour un béotien. A noter que le modèle est sous licence Apache 2.0.</p><h1>Reveal.js</h1><p>&nbsp;</p><p
style="text-align: center;"><a
href="http://blog.nicolargo.com/2012/07/modeles-de-presentation-html5-pour-remplacer-powerpoint.html/capture_055" rel="attachment wp-att-6214"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-6214" title="capture_055" src="http://blog.nicolargo.com/wp-content/uploads/2012/07/capture_055-300x138.png" alt="" width="300" height="138" /></a></p><p
style="text-align: center;"><a
class="button" href="http://lab.hakim.se/reveal-js/#/">Démonstration</a></p><p
style="text-align: center;"><p
style="text-align: center;"><a
class="button" href="https://github.com/hakimel/reveal.js">GitHub</a></p><p
style="text-align: justify;">Bien que présenté comme un modèle CSS de présentation 3D, Reveal.js est plus un modèle HTML permettant de faire des présentations sous la forme de matrice en deux dimensions. On peut, si on le souhaite et si la présentation a été faite pour, se déplacer en haut, en bas, à gauche et à droite pour passer d'un slide à l'autre. Ce mode de navigation, un peu perturbant n'est pas forcement adapté pour un track mais plutôt pour un présentation "à tiroirs".</p><h1>Shower</h1><p
style="text-align: center;"><a
href="http://blog.nicolargo.com/2012/07/modeles-de-presentation-html5-pour-remplacer-powerpoint.html/capture_056-2" rel="attachment wp-att-6219"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-6219" title="capture_056" src="http://blog.nicolargo.com/wp-content/uploads/2012/07/capture_056-300x146.png" alt="" width="300" height="146" /></a></p><p
style="text-align: center;"><a
class="button" href="http://pepelsbey.github.com/shower/en.htm#Cover">Démonstration</a></p><p
style="text-align: center;"><p
style="text-align: center;"><a
class="button" href="https://github.com/pepelsbey/shower">GitHub</a></p><p
style="text-align: justify;">Ce modèle de présentation permet de faire rapidement une présentation au format HTML5. On peut noter la possibilité de voir les miniatures des slides avant de commencer la présentation. Les transitions sont simples et rapides. On dispose également de fonctions intéressantes pour, par exemple<a
href="http://pepelsbey.github.com/shower/en.htm?full#FitToWidth"> adapter les images automatiquement à la taille de l'écran</a> ce qui peut être sympa pour une présentation basée sur des photos.</p><h1>RoboDeck</h1><p
style="text-align: center;"><a
href="http://blog.nicolargo.com/2012/07/modeles-de-presentation-html5-pour-remplacer-powerpoint.html/capture_057-2" rel="attachment wp-att-6220"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-6220" title="capture_057" src="http://blog.nicolargo.com/wp-content/uploads/2012/07/capture_057-300x83.png" alt="" width="300" height="83" /></a></p><p
style="text-align: center;"><a
class="button" href="http://robodeck.herokuapp.com/#slide-0">Démonstration</a></p><p
style="text-align: center;"><p
style="text-align: center;"><a
class="button" href="https://github.com/jessecravens/robodeck">GitHub</a></p><p
style="text-align: justify;">Le principal intérêt de ce modèle de présentation est que si la présentation est disponible en ligne alors il est possible de synchroniser les visiteurs sur le slide en cours. Pour cela, le serveur sur lequel les slides sont hebergés va envoyer (via Web Socket) les informations NEXT et PREV. Je trouve par contre les présentations pas très sexy... A suivre quand même pour des présentations massivement en ligne.</p><h1>Slides par Brian Cavalier</h1><p
style="text-align: center;"><a
href="http://blog.nicolargo.com/2012/07/modeles-de-presentation-html5-pour-remplacer-powerpoint.html/capture_058-3" rel="attachment wp-att-6221"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-6221" title="capture_058" src="http://blog.nicolargo.com/wp-content/uploads/2012/07/capture_058-300x160.png" alt="" width="300" height="160" /></a></p><p
style="text-align: center;"><a
class="button" href="http://briancavalier.com/code/slides/#0">Démonstration</a></p><p
style="text-align: center;"><p
style="text-align: center;"><a
class="button" href="https://github.com/briancavalier/slides">GitHub</a></p><p
style="text-align: justify;">Sur ce modèle, les transitions se font par un très agréable fondu enchaîné. J'aime beoucoup le CSS par défaut qui est sobre et clair. A réserver à des présentations sérieuses.</p><h1>Slides par Brian Cavalier</h1><p
style="text-align: center;"><a
href="http://blog.nicolargo.com/2012/07/modeles-de-presentation-html5-pour-remplacer-powerpoint.html/capture_059-4" rel="attachment wp-att-6222"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-6222" title="capture_059" src="http://blog.nicolargo.com/wp-content/uploads/2012/07/capture_059-300x134.png" alt="" width="300" height="134" /></a></p><p
style="text-align: center;"><a
class="button" href="http://leaverou.github.com/csss/#intro">Démonstration</a></p><p
style="text-align: center;"><p
style="text-align: center;"><a
class="button" href="https://github.com/LeaVerou/CSSS">GitHub</a></p><p
style="text-align: justify;">Comme le précédent modèle, les transitions se font par un très agréable fondu enchaîné, mais la comparaison s'arrête là. Ici on est dans un style de présentation plus "fun" et très bien adapté aux développeurs (avec notamment le syntax highlight). A bookmarker !</p><h1>Pour conclure</h1><p
style="text-align: justify;">De nos jours et en mettant à part les présentations qui doivent passer entre les mains de personnes sachant uniquement utiliser PowerPoint, je ne comprends pas que l'on utilise pas plus se genre de modèle de présentation. En effet, elles n'ont que des avantages: simple à éditer (avec un éditeur de texte), facilement transportable sur une clés USB ou l'on peut ajouter une version Chromium ou Firefox portable et avec nativement une mise en ligne optimisée (c'est du HTML <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> !). Alors ciao PPT et bonjour HTML.</p><p>Et vous chers lecteurs vous en êtes ou avec la cure de désintoxication de PowerPoint ?</p><p>D'autres modèles à nous conseiller ?</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/07/modeles-de-presentation-html5-pour-remplacer-powerpoint.html">Modèles de présentations HTML5 pour remplacer PowerPoint</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=wM7l8VpYTS4:Ni0h9mkRwOU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=wM7l8VpYTS4:Ni0h9mkRwOU:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/wM7l8VpYTS4" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6180
title: Simuler un réseau WAN entre deux réseaux LAN
uri: Simuler-un-réseau-WAN-entre-deux-réseaux-LAN
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/oqZaZMCWXzw/simuler-un-reseau-wan-entre-deux-reseaux-lan.html

content:
<p>A partir de sa version 2.6, le noyau Linux dispose d'une fonction permettant de simuler certaines caractéristiques comme un délais de transit, une perte de paquets ou même un débit maximal sur une simple interface réseau locale. J'avais déjà parlé de ce sujet il y a quelques temps pour simuler une liaison WAN entre une machine et son réseau. Suite à une question d'un lecteur, voici un billet dans lequel nous allons mettre en place un simulateur de liaison WAN entre deux réseaux LAN. Cette infrastructure pourra être utile à toutes personnes devant valider sur table une architecture inter-site.</p><h1>De quoi avons nous besoin ?</h1><p>Pour bâtir cette infrastructure, nous avons besoins de deux réseaux LAN (mais deux PC peuvent suffirent) et d'une machine GNU/Linux disposant de deux interfaces réseaux permettant de faire un pont entre ces deux LAN. Le choix d'une architecture en pont (bridgé) permet d'insérer facilement le simulateur dans une architecture réseau existante.</p><p><a
href="http://blog.nicolargo.com/2012/06/simuler-un-reseau-wan-entre-deux-reseaux-lan.html/simulwan" rel="attachment wp-att-6181"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6181" title="simulwan" src="http://blog.nicolargo.com/wp-content/uploads/2012/06/simulwan-580x336.png" alt="" width="580" height="336" /></a></p><p>&nbsp;</p><h1>Configuration du bridge</h1><p>Personnellement, j'ai utilisé une distribution GNU/Linux Debian Squeeze pour mettre en place le simulateur. Mais toutes les distributions GNU/Linux avec une version de Kernel &gt;= 2.6 peuvent faire l'affaire.</p><p>Après une installation standard du système d'exploitation Debian, il faut ajouter le paquet <a
title="DebPkg" href="http://packages.debian.org/bridge-utils">bridge-utils</a> pour permettre à ce dernier de créer le pont entre les deux interfaces réseaux:</p><pre class="crayon-plain-tag">sudo aptitude install bridge-utils</pre><p>Il faut ensuite éditer le fichier de configuration <em>/etc/network/interfaces</em> de la manière suivante:</p><blockquote><p>auto lo</p><p>iface lo inet loopback</p><p>iface eth0 inet manual</p><p>iface eth1 inet manual</p><p>auto br0</p><p>iface br0 inet dhcp</p><p>bridge_ports eth0 eth1</p></blockquote><p>Puis on fait prendre en compte cette configuration par le système:</p><pre class="crayon-plain-tag">sudo /etc/init.d/networking restart</pre><p>Note: il faut attendre une trentaine de seconde lors de l'initialisation.</p><p>On vient donc de créer une nouvelle interface virtuelle (br0) qui fait un pont entre les deux interfaces physiques (eth0 et eth1).</p><p>Si vous connectez en l'état le simulateur entre vos deux LAN, tout le trafic transitera de manière transparente à la vitesse maximale de vos interfaces eth0 et eth1.</p><h1>Configuration du simulateur</h1><p>On passe maintenant à la partie intéressante de ce billet: comment simuler un lien WAN à partir de notre simulateur.</p><p>Vous allez voir que c'est relativement simple. Nous allons utiliser un script de configuration automatique qui va activer / désactiver le simulateur à la demande. Les caractéristiques du WAN à simuler seront codées en dur dans la section configuration du script. A vous de l'adapter à vos besoins.</p><p>Voici le script en question (<a
href="https://github.com/nicolargo/simulwan/blob/master/simulwan-bridge.sh">également disponible sur mon GitHub</a>):</p><pre class="crayon-plain-tag">#!/bin/bash
#
# simulwan-bridge.sh
# Nicolargo - 2012
#
##############################################################################
# Nom des interfaces ou l'on doit faire les simulations
# eth0 cote LAN local
# eth1 cote LAN distant
IF=eth1
# Liaison sortante (UPLOAD) a appliquer sur IF
# Debit sortant
BWU=8mbit
# D&eacute;lai de transit sortant
DELAYU=15ms
# % de paquets perdus sortant
LOSSU=0.0001%
# Liaison entrante (DOWNLOAD) a appliquer sur IF
# Debit entrant
BWD=1mbit
# D&eacute;lai de transit entrant
DELAYD=15ms
# % de paquets perdus entrant
LOSSD=0.00001%
##############################################################################
start() {
    modprobe ifb
    ip link set dev ifb0 up
    tc qdisc add dev $IF ingress
    tc filter add dev $IF parent ffff: \
    protocol ip u32 match u32 0 0 flowid 1:1 \
    action mirred egress redirect dev ifb0
    # Liaison entrante
    tc qdisc add dev ifb0 root handle 1:0 \
    netem delay $DELAYD 10ms distribution normal \
    loss $LOSSD 25%
    tc qdisc add dev ifb0 parent 1:1 handle 10: \
    tbf rate $BWD buffer 3200 limit 6000
    # Liaison sortante
    tc qdisc add dev $IF root handle 2:0 \
    netem delay $DELAYU 10ms distribution normal \
    loss $LOSSU 25%
    tc qdisc add dev $IF parent 2:1 handle 10: \
    tbf rate $BWU buffer 3200 limit 6000
}
stop() {
    tc qdisc del dev ifb0 root
    tc qdisc del dev $IF root
    # ip link set dev ifb0 down
}
restart() {
    stop
    sleep 1
    start
}
show() {
    echo &quot;Liaison entrante&quot;
    tc -s qdisc ls dev ifb0
    echo &quot;Liaison sortante&quot;
    tc -s qdisc ls dev $IF
}
case &quot;$1&quot; in
    start)
        echo -n &quot;Starting WAN simul: &quot;
        start
        echo &quot;done&quot;
        ;;
    stop)
        echo -n &quot;Stopping WAN simul: &quot;
        stop
        echo &quot;done&quot;
        ;;
    restart)
        echo -n &quot;Restarting WAN simul: &quot;
        restart
        echo &quot;done&quot;
        ;;
    show)
        echo &quot;WAN simul status for $IF:&quot;
        show
        echo &quot;&quot;
        ;;
    *)
        echo &quot;Usage: $0 {start|stop|restart|show}&quot;
        ;;
esac
exit 0</pre><p>Par défaut, le script simule une liaison WAN de type ADSL (8 Mbps en download et 1 Mbps en upload avec un délais de transit de 30ms en aller/retour et un taux de perte de 10^-4).</p><p>Pour l'installer, il suffit de saisir les commandes suivantes:</p><pre class="crayon-plain-tag">sudo wget -O /etc/init.d/simulwan.sh https://raw.github.com/nicolargo/simulwan/master/simulwan-bridge.sh
sudo chmod a+x /etc/init.d/simulwan.sh</pre><p>Pour lancer le simulateur WAN:</p><pre class="crayon-plain-tag">sudo /etc/init.d/simulwan.sh start</pre><p>Pour arrêter le simulateur WAN:</p><pre class="crayon-plain-tag">sudo /etc/init.d/simulwan.sh stop</pre><p>Pour avoir un état des interfaces:</p><pre class="crayon-plain-tag">sudo /etc/init.d/simulwan.sh show</pre><p></p><h1>Conclusion</h1><p>Vous venez donc à moindre coût de mettre en place une architecture permettant de simuler des liaisons WAN. Le PC sur lequel se base votre simulateur n'a pas besoin d'être une bête de course et vous pouvez donc facilement récupérer du vieux matériel pour mettre en place ce système.</p><p>&nbsp;</p><p>&nbsp;</p><p>&nbsp;</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/06/simuler-un-reseau-wan-entre-deux-reseaux-lan.html">Simuler un réseau WAN entre deux réseaux LAN</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=oqZaZMCWXzw:3S99Js5qZC8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=oqZaZMCWXzw:3S99Js5qZC8:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/oqZaZMCWXzw" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6333
title: Installer facilement NodeJS et NPM sur une Debian Stable
uri: Installer-facilement-NodeJS-et-NPM-sur-une-Debian-Stable
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/BOcxav2ExtA/installer-facilement-nodejs-et-npm-sur-une-debian-stable.html

content:
<p>A l'heure actuelle, il n'existe pas de dépôt officiel pour installer <a
href="http://blog.nicolargo.com/2011/09/une-introduction-a-node-js.html">NodeJS et NPM</a> sur une distribution Debian Stable. Voici donc un nouveau script d'installation automatique qui va installer sur votre système Debian:</p><ul><li>la dernière version de <a
href="https://github.com/joyent/node">NodeJS</a> (depuis le GitHub officiel)</li><li>la dernière version de <a
href="https://github.com/isaacs/npm">NPM</a>  (Node Package Manager)</li></ul><p>Comme toujours, mon script est hébergé sur <a
href="https://github.com/nicolargo/nodeautoinstall">GitHub</a>. C'est à partir de là que vous pouvez me remonter vos questions et remarques...</p><h1>Procédure à suivre</h1><p>Le plus simple est de saisir les commande suivantes dans un terminal:</p><pre class="crayon-plain-tag">cd /tmp
wget https://raw.github.com/nicolargo/nodeautoinstall/master/nodeautoinstall.py
sudo python ./nodeautoinstall.py -d</pre><p>Le script va normalement se dérouler sans problème en installant le tout dans le répertoire /opt/node (qu'il est possible de modifier avec l'option <strong>-o</strong> du script).</p><p>L'option <strong>-d</strong> permet de générer un fichier de log de l’exécution du script (à consulter en cas de problème...) dans le fichier <em>/tmp/nodeautoinstall.log</em>.</p><p>Pour que votre/vos utilisateurs puisse utiliser node, il faut également qu'ils ajoutent les lignes suivantes au fichier .profile:</p><pre class="crayon-plain-tag"># --- NodeJS
export PATH=$PATH:/opt/node/bin
export NODE_PATH=/opt/node:/opt/node/lib/node_modules
# ---</pre><p></p><h1>Le résultat...</h1><p>Vous devriez alors disposer des dernières versions des deux composants:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" title="NodeJS et NPM install" src="https://github.com/nicolargo/nodeautoinstall/raw/master/screenshot.png" alt="" width="635" height="236" /></p><p>Il ne vous reste plus qu'à suivre <a
href="http://blog.nicolargo.com/2011/09/une-introduction-a-node-js.html">mon billet d'introduction à NodeJS</a> en passant le chapitre sur l'installation que vous venez de faire automatiquement dans ce billet:)</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/09/installer-facilement-nodejs-et-npm-sur-une-debian-stable.html">Installer facilement NodeJS et NPM sur une Debian Stable</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=BOcxav2ExtA:5P_SwXjkAkg:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=BOcxav2ExtA:5P_SwXjkAkg:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/BOcxav2ExtA" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6338
title: Test d&#8217;un Linutop 4 avec Linutop OS 5
uri: Test-du-Linutop-4-avec-Linutop-OS-5
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/z3_q3MQ74vw/6338.html
content:
<p
style="text-align: justify;">J'écris cet article depuis le Linutop 4 que j'ai eu gracieusement en test pendant quelques semaines (au passage merci à l'équipe Linutop). Pour rappel, le <a
href="http://www.linutop.com/linutop4.fr.html">Linutop 4</a> est un mini PC Fanless et totalement silencieux (pas de disque dur mais une mémoire Flash) utilisant un OS maison nommé <a
href="http://www.linutop.com/download.fr.html">Linutop OS 5</a>. Il a comme cible <strong>les entreprises</strong> souhaitant disposer d'un client bureautique léger et les utilisations de type bornes Internet ou affichages dynamique d'informations.</p><p
style="text-align: justify;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" title="Linutop 4" src="http://farm9.staticflickr.com/8172/8032444181_892e3eb0ba_n_d.jpg" alt="" width="320" height="213" /></p><h1 style="text-align: justify;">Les caractéristiques</h1><p>On commence par un bref aperçu des caractéristiques du boîtier:</p><p
style="text-align: justify;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6340" title="Sélection_001" src="http://blog.nicolargo.com/wp-content/uploads/2012/09/Sélection_001.png" alt="" width="349" height="312" /></p><p
style="text-align: justify;"><span
style="text-decoration: underline;">Note</span>: le système Linutop OS 5, pré-installé par défaut, occupe environ 450 Mo des 2 Go de la mémoire flash interne.</p><h1 style="text-align: justify;">Premier contact</h1><p
style="text-align: justify;">C'est la première fois que j'utilise une machine totalement silencieuse et je dois avouer que lors du premier démarrage, j'ai vérifié que je n'avais pas oublié de brancher l'alimentation avant de voir apparaître la bannière de configuration sur mon écran. Même par rapport à l'utilisation d'un PC portable, <strong>le silence est vraiment total</strong>.</p><p
style="text-align: justify;">L'avantage d'utiliser l'OS maison (Linutop OS 5) est qu'il n'y a aucune configuration à faire sur la machine. Une simple fenêtre de configuration est affichée au première démarrage de la machine et permet de fixer les paramètres comme le langage, le clavier... Pour la majorité des utilisations, il n'y a rien à faire mis à part cliquer sur le bouton OK.</p><p
style="text-align: justify;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6339" title="Screenshot-Linutop Configuration Panel" src="http://blog.nicolargo.com/wp-content/uploads/2012/09/Screenshot-Linutop-Configuration-Panel.png" alt="" width="511" height="419" /></p><p
style="text-align: justify;">Une fois cette étape passée, on se retrouve sur une distribution GNU/Linux basée sur Ubuntu (et donc bénéficiant des paquets de cette distribution) avec XFCE comme gestionnaire graphique.</p><p
style="text-align: justify;">Les premières minutes d'utilisation ont été un peu difficile pour moi. En effet, étant habitué à travailler sur des machines puissantes (voir sur-dimensionnées), la <strong>relative lenteur du temps de réaction</strong> pour les opérations de bases (ouvrir et déplacer des fenêtres, charger des pages Web légères...) m'a sauté au yeux. Après quelques heures d'utilisation, je m'y suis habitué et si on ne demande pas des choses trop lourdes à ce boitier il s'acquitte parfaitement de ses tâches.</p><h1 style="text-align: justify;">Une machine pour quoi faire ?</h1><p
style="text-align: justify;">Les caractéristiques hardware de la machine limite l'utilisation à certain domaine. J'ai essayé, dans ce chapitre de résumer les choses que j'ai pu tester.</p><p
style="text-align: justify;">Machine parfaitement adapté pour:</p><ul><li>naviguer sur Internet (sauf si vous essayez de lire des vidéos en 720p sur YouTube)</li><li>de la bureautique classique (document, tableur, présentation)</li><li>écouter de la musique (bien qu'il manque à mon goût une sortie numérique)</li><li>faire du déport d'affichage (VNC, RDP/TSE) ou de l'administration via SSH</li></ul><p
style="text-align: justify;">Machine utilisable pour:</p><ul><li>regarder des vidéos DivX, MP4, OGG au format SD 480p (le format HD Ready 720p peut passer mais risque de faire chauffer votre machine tandis qu'il faut oublier la lecture de fichier en Full HD 1080p)</li><li>développer (si vous utilisez des IDE légères <span
style="color: #808080;">Troll&gt; et pas des usines à gaz comme Eclipse &lt;Troll</span>)</li></ul><p
style="text-align: justify;">Machine inutilisable pour:</p><ul><li>gérer votre bibliothèque de photos / retouche (j'ai essayé et cela n'est pas exploitable)</li><li>faire du post traitement vidéo</li><li>faire plusieurs choses en même temps... (la RAM du boitier que j'avais en test était de 1 Go mais il est possible en option de passer à 2 Go)</li></ul><h1 style="text-align: justify;">Résumé des + et des -</h1><h3 style="text-align: justify;">Le hardware: Linutop 4</h3><p
style="text-align: justify;"><strong><span
style="color: #008000;">Les +</span></strong></p><ul><li>Le silence total !</li><li>Qualité de fabrication du boitier. Cela paraît solide</li><li>Le boîtier chauffe mais pas de manière excessive</li></ul><p
style="text-align: justify;"><strong><span
style="color: #ff0000;">Les -</span></strong></p><ul><li>1 Go de RAM en standard c'est vraiment trop peu</li><li>Impossible d'acheter un boîtier "vierge" sans l'OS Linutop (qui est vendu 79€ séparément). J'aurai donc aimé pouvoir acheter le Linutop OS 4 à 400-79 = 321 €...</li><li>Pas de port USB en version 3</li><li>Le prix (environ 400€), ce qui est cher pour la configuration hardware proposée</li></ul><h3 style="text-align: justify;">Le systéme: Linutop OS 5</h3><p
style="text-align: justify;"><span
style="color: #008000;"><strong>Les +</strong></span></p><ul><li>Pack bureautique complet</li><li>VLC de base et qui fonctionne très bien sur les fichiers SD</li></ul><p
style="text-align: justify;"><strong><span
style="color: #ff6600;">Les + et -</span></strong></p><ul><li
style="text-align: justify;">Le choix de XFCE s'explique bien évidemment par la relativement faible consommation de ressource de ce gestionnaire. De mon point de vu, quitte à avoir un gestionnaire épuré et faiblement consommateur de CPU et de mémoire, autant partir sur une solution de type <a
href="http://openbox.org/">Openbox</a> ou <a
href="http://www.fluxbox.org/screenshots/">Fluxbox</a>. J'ai donc essayé la distribution<a
href="http://crunchbanglinux.org/"> CrunchBang Linux</a> (32 bits BTO) qui fonctionne parfaitement en version "live USBkey". Et l'impression de lenteur est beaucoup moins importante qu'avec Linutop OS 5 pour une utilisation classique de surf Internet.<p><div
id="attachment_6356" class="wp-caption aligncenter" style="width: 590px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a
href="http://blog.nicolargo.com/wp-content/uploads/2012/10/gbscreenshot.png"><img
class="size-large wp-image-6356" title="CrunchBang Linux" src="http://blog.nicolargo.com/wp-content/uploads/2012/10/gbscreenshot-580x326.png" alt="" width="580" height="326" /></a><p
style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">CrunchBang Linux, une alternative intéressante à Linutop OS 5</p></div></li></ul><p><strong
style="color: #ff0000; text-align: justify;">Les -</strong></p><ul><li
style="text-align: justify;">Si vous souhaitez utiliser Linutop OS sur une autre machine, <strong>il vous faudra débourser 79 €</strong>. Je trouve cela un peu fort de café, surtout que des solutions libres et gratuites existent et fonctionnent parfaitement sur les boîtiers (par exemple CrunchBang Linux dont je parle ci-dessus)</li><li>Firefox qui est un peu trop lourd pour la RAM disponible. J'ai installé Chromium qui fonctionne sans problème.</li><li><span
style="text-align: justify;">Outil graphique: franchement c'est quoi ce mtPaint graphic editor ? C'est pour concurrencer Paint sous Windows ?</span></li></ul><h1>Quelques photos...</h1><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" title="Linutop 4 front" src="http://farm9.staticflickr.com/8038/8032424216_4e7c701e52.jpg" alt="" width="500" height="333" /></p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" title="Linutop 4 back" src="http://farm9.staticflickr.com/8034/8032445776_84cd9f67d8.jpg" alt="" width="500" height="333" /></p><p
style="text-align: center;">Pleins d'autres images à retrouver sur <a
href="http://www.flickr.com/photos/nicolargo/sets/72157631642103989/show/">Flickr</a>...</p><h1>Alors j'achète ou j'achète pas ?</h1><p
style="text-align: justify;"><em>On arrive donc à la conclusion de cet article et à la question fatidique: est que, dans le rôle d'un décideur informatique (ce que je suis dans le cadre de mon boulot), j'achèterai cette solution...</em></p><p
style="text-align: justify;">Le hardware (Linutop 4) est vraiment de très bonne qualité, le silence total et il ne semble pas trop chauffer même après quelques jours d'utilisation sans extinction. Mais à plus de 400 € (avec livraison), je trouve quand même l'addition un peu salée. Donc à moins de négocier les prix à la baisse (321 € par exemple...) ou bien d'obtenir pour ce prix une configuration plus musclée (au minimum 2 Go de RAM et mémoire Flash plus importante), je regarderai attentivement du coté de la concurrence avant de lancer mes achats.</p><p
style="text-align: justify;"><strong>Donc j'achète le boîtier vierge (sans OS) au prix maximum de 320€.</strong></p><p
style="text-align: justify;">Concernant l'OS Linutop 5, je suis beaucoup plus sévère. Bien que je comprenne la volonté de fournir aux utilisateurs un système clés en main, je ne trouve pas celui-ci adapté au hardware (XFCE, Firefox, pack logiciel graphique...). De plus, faire payer cet OS (qu'ils soit inclus dans le prix des boîtiers Linutop ou bien 79€) n'est pas constructif: cela limite la participation de la communauté et peut mettre à dos le clan des barbus qui peuvent y voir une vente liée de système GNU/Linux (un comble)...</p><p
style="text-align: justify;"><strong>Je n'achète pas l'OS Linutop 5, et j'utilise sur les boîtiers Linutop des OS GNU/Linux gratuits, léger et alternatifs.</strong></p><p>Cet article <a
href="http://blog.nicolargo.com/2012/10/6338.html">Test d&#8217;un Linutop 4 avec Linutop OS 5</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=z3_q3MQ74vw:0hDM7m_fo6A:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=z3_q3MQ74vw:0hDM7m_fo6A:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/z3_q3MQ74vw" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6336
title: Et si on jouait un peu avec Redis et Python ?
uri: Et-si-on-jouait-un-peu-avec-Redis-et-Python
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/CUfVLG3m6os/et-si-on-jouait-un-peu-avec-redis-et-python.html

content:
<p><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-6365" title="redis-logo" src="http://blog.nicolargo.com/wp-content/uploads/2012/10/redis-logo.png" alt="" width="200" height="64" />Dans la mouvance NoSQL, Redis se classe dans la catégorie "data structure server"  (que l'on peut traduire en Français par "serveur de dictionnaire distant"). C'est  un système permettant de traiter, de manière très performante, des données sous la forme clés/valeurs. Contrairement à des solutions comme MemCache, Redis est capable de gérer la persistance des données en stockant, sur demande, son contenu sur disque.</p><p>La clé, qui peut être comparée au nom d'une variable dans un langage de programmation, permet d'identifier de manière unique la donnée. Lors de la création de votre application, vous allez rapidement vous rendre compte que le choix de cette clé n'est pas négligeable. C'est elle qui définira "la structure" de votre base de donnée.</p><p
style="text-align: center;"><span
style="color: #008000;"><em>La clé est dans la définition de la clé.</em></span></p><p>Quant aux valeurs, elles peuvent appartenir <a
href="http://redis.io/topics/data-types">aux types suivants</a>:</p><ul><li>chaînes de caractères (st<span
style="color: #808080;">r</span>ings)</li><li>compteurs numériques (note: les données numériques seront stockées dans la base sous la forme de chaîne de caractères) (<span
style="color: #808080;">atomic counters</span>)</li><li>listes (<span
style="color: #808080;">lists</span>)</li><li>tableaux (set) et tableaux ordonnés (<span
style="color: #808080;">sorted set</span>)</li><li>dictionnaires (<span
style="color: #808080;">hashes</span>)</li></ul><p>Comme on peut le voir, on retrouve la plupart des structures du langage Python. En étant un fervent admirateur, je me suis donc penché sur <a
href="https://github.com/andymccurdy/redis-py">l'API Python Redis</a>.</p><p>C'est parti pour un peu de bac à sable...</p><h1>Installation de Redis</h1><p>Pour mes tests, j'ai fait une installation standard depuis les paquets Ubuntu du serveur Redis, de l'API Python et de la CLI iPython pou illustrer mes exemples:</p><pre class="crayon-plain-tag">sudo apt-get install redis-server python-redis ipython</pre><p></p><h1>Les commandes de bases</h1><p>La librairie Python permet d'envoyer des commandes (<a
href="http://redis.io/commands">voir la liste des commandes ici</a>) au serveur.</p><p>On commence par se connecter un serveur (local en écoute sur le port TCP par défaut).</p><p>J'utilise <a
href="http://ipython.org/">iPython</a> pour mes tests de la librairie Python mais il est également possible de passer par la CLI Python classique.</p><pre class="crayon-plain-tag"># ipython
In [1]: import redis
In [2]: r = redis.Redis('localhost')</pre><p>Premier exemple clés / valeur (chaîne de caractères):</p><pre class="crayon-plain-tag">In [3]: r.set("cles", "valeur")
Out[3]: True
In [4]: r.get("cles")
Out[4]: 'valeur'</pre><p>Stocker des valeurs numériques:</p><pre class="crayon-plain-tag">In [5]: r.set("clesnum", 666)
Out[5]: True
In [6]: r.get("clesnum")
Out[6]: '666'
In [7]: r.incr("clesnum")
Out[7]: 667
In [8]: r.decr("clesnum")
Out[8]: 666</pre><p>Attention, la méthode get retourne des chaines, il faut les convertir avant de s'en servir comme des entiers.</p><pre class="crayon-plain-tag">In [9]: a = 10
In [10]: a + r.get("clesnum")
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/home/nicolargo/&lt;ipython-input-10-06c75e85d988&gt; in &lt;module&gt;()
----&gt; 1 a + r.get("clesnum")
TypeError: unsupported operand type(s) for +: 'int' and 'str'
In [11]: a + int(r.get("clesnum"))
Out[11]: 676</pre><p>Des listes comme valeurs:</p><pre class="crayon-plain-tag">In [12]: r.rpush("clesliste", "a")
Out[12]: 1L
In [13]: r.rpush("clesliste", "b")
Out[13]: 2L
In [14]: r.rpush("clesliste", "c")
Out[14]: 3L
In [15]: r.lrange("clesliste", 0, -1)
Out[15]: ['a', 'b', 'c']
In [16]: r.lindex("clesliste", 2)
Out[16]: 'c'
In [17]: r.llen("clesliste")
Out[17]: 3
In [22]: r.lpush("clesliste", "z")
Out[22]: 4L
In [23]: r.lrange("clesliste", 0, -1)
Out[23]: ['z', 'a', 'b', 'c']</pre><p>Pour des listes avec des valeurs uniques (set), il faut utiliser les méthodes sadd (pour ajouter) et smembers (pour récupérer le set).</p><pre class="crayon-plain-tag">In [27]: r.sadd("clesset", "a")
Out[27]: True
In [28]: r.sadd("clesset", "b")
Out[28]: True
In [29]: r.sadd("clesset", "c")
Out[29]: True
In [30]: r.sadd("clesset", "a")
Out[30]: False
In [31]: r.smembers("clesset")
Out[31]: set(['a', 'c', 'b'])</pre><p>Une autre structure de liste intéressante est la liste avec des valeurs uniques et ordonnées. On ajoute un troisième champs à notre couple clés/valeur qui s'appelle score (3em paramètre dans la méthode zadd). C'est ce score qui va déterminer l'ordre de la liste:</p><pre class="crayon-plain-tag">In [32]: r.zadd("clessetsort", "a", 4)
Out[32]: True
In [33]: r.zadd("clessetsort", "b", 1)
Out[33]: True
In [34]: r.zadd("clessetsort", "c", 3)
Out[34]: True
In [35]: r.zadd("clessetsort", "a", 5)
Out[35]: False
In [36]: r.zrange("clessetsort", 0, -1, withscores = True)
Out[36]: [('b', 1.0), ('c', 3.0), ('a', 5.0)]
In [37]: r.zrange("clessetsort", 0, -1)
Out[37]: ['b', 'c', 'a']</pre><p>Pour stocker un dictionnaire, c'est également très simple:</p><pre class="crayon-plain-tag">In [38]: r.hset("cleshash", "a", "A")
Out[38]: 1L
In [39]: r.hset("cleshash", "b", "B")
Out[39]: 1L
In [40]: r.hset("cleshash", "c", "C")
Out[40]: 1L
In [41]: r.hgetall("cleshash")
Out[41]: {'a': 'A', 'b': 'B', 'c': 'C'}
In [42]: r.hget("cleshash", "b")
Out[42]: 'B'</pre><p></p><h1>Gérer l'expiration de vos données</h1><p>... importance du garbage...</p><pre class="crayon-plain-tag">In [3]: r.set("key", "value")
Out[3]: True
In [4]: r.exists("key")
Out[4]: True
In [5]: r.expire("key", 10)
Out[5]: True
In [6]: r.exists("key")
Out[6]: True
Attendre 10 secondes ou plus...
In [7]: r.exists("key")
Out[7]: False</pre><p>Egalement de manière statique avec la méthode expireat (<a
href="http://redis.io/commands/expireat">http://redis.io/commands/expireat</a>).</p><p>Pour être plus fin, il est aussi possible d'utiliser les "scores" avec les méthodes z* (zadd, zrangebyscore) pour supprimer les données qui ont des valeurs de clés les plus faibles (ou forte selon votre structure).  Par exemple pour supprimer les données de plus faible score (&lt; 3) de notre liste "clesetsort" créée dans le chapitre précédant:</p><pre class="crayon-plain-tag">In [37]: r.zrange("clessetsort", 0, -1)
Out[37]: ['b', 'c', 'a']
In [60]: r.zremrangebyscore("clessetsort", 0, 3)
Out[60]: 2
In [61]: r.zrange("clessetsort", 0, -1)
Out[61]: ['a']</pre><p>&nbsp;</p><h1>Les pipelines</h1><p>Si Redis vous intéresse, c'est que vous avez à gérer un volume important de données. Les commandes que nous venons de voir dans le chapitre précédant sont unitaires. C'est à dire que pour une exécuter une commande, une requête (TCP) est faite au serveur Redis. Pour optimiser les performances et donc réduire le nombre de requêtes fait au serveur, nous disposons des Pipelines (<a
href="http://myprogrammingjourney.blogspot.fr/2011/03/pipelining-in-redis-via-python.html">lire ce billet comparatif sur le sujet</a>).</p><p>Par exemple pour entrer 100.000 clés/valeurs dans votre serveur, il faut environ <strong>11 secondes</strong> sur mon PC de test:</p><pre class="crayon-plain-tag">import time
import redis
_MAX_ITER = 100000
r = redis.Redis('localhost')
print "Start bench without Pipeline"
start=time.clock()
for i in range(_MAX_ITER):
   r.set("cles%d" % i, i)
stop=time.clock()
print "Result: %s" % str(stop-start)</pre><p>alors qu'il faut un peu de plus de <strong>4 secondes</strong> en utilisant une pipeline (<span
style="color: #008000;">soit un gain de plus de 50%</span>):</p><pre class="crayon-plain-tag">import time
import redis
_MAX_ITER = 100000
r = redis.Redis('localhost')
print "Start bench with Pipeline"
start=time.clock()
p = r.pipeline()
for i in range(_MAX_ITER):
   p.set("cles%d" % i, i)
p.execute()
stop=time.clock()
print "Result: %s" % str(stop-start)</pre><p><span
style="text-decoration: underline;">Ressources:</span></p><ul><li><a
href="http://redis.io/documentation">Documentation officielle</a></li><li>Le site <a
href="https://github.com/andymccurdy/redis-py">de l'API Python</a></li></ul><p>&nbsp;</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/10/et-si-on-jouait-un-peu-avec-redis-et-python.html">Et si on jouait un peu avec Redis et Python ?</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=CUfVLG3m6os:KLR0zcFDzVk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=CUfVLG3m6os:KLR0zcFDzVk:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/CUfVLG3m6os" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6380
title: Il n&#8217;y a pas qu&#8217;Ubuntu dans la vie&#8230;
uri: Il-n-y-a-pas-qu-Ubuntu-dans-la-vie
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/sJ-bmhvaDyU/il-ny-a-pas-quubuntu-dans-la-vie.html

content:
<p
style="text-align: justify;"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-medium wp-image-6382" title="david-goliath" src="http://blog.nicolargo.com/wp-content/uploads/2012/10/david-goliath-168x300.jpg" alt="" width="168" height="300" />En mettant de côté le monde des serveurs et des smartphones, les systèmes GNU/Linux représentent <a
href="http://fr.wikipedia.org/wiki/Linux#Parts_de_march.C3.A9">plus ou moins 1 %</a> des parts de marché sur les PC clients. Si ce chiffre peut paraître ridicule par rapport <a
href="http://non.aux.racketiciels.info/">au nombre de machines sous Windows</a>, il l'est encore plus quand on regarde les parts des systèmes GNU/Linux autres qu'Ubuntu.</p><p
style="text-align: justify;">Pourtant, en ne donnant pas une chance à ces distributions exotiques, vous pourriez passer à côté d'un système adapté à votre configuration. Le fond du problème est là. La cible de Canonical (l'éditeur d'Ubuntu) est la même que Microsoft : des PC costauds, avec des cartes graphiques supportant l'accélération 3D et une mémoire confortable pour faire tourner vos applications en même temps que l'environnement graphique système (Gnome3 ou KDE).</p><p
style="text-align: justify;">Hors, tout le monde n'a pas les moyens ou tout simplement l'envie de dépenser plus de 700€ pour avoir un PC bureautique performant. C'est pourtant sur ce créneau spécifique des PC "low cost" que ces distributions apportent toute leur valeur ajoutée. En effet, elle sont pour la plupart basée sur des interfaces graphiques moins consommatrice de ressources hardware. Je pense notamment à LXDE et XFCE porté par Canonical sur les distributions dérivées Lubuntu et Xubuntu mais aussi à OpenBox comme dans le très bon <a
href="http://distrowatch.com/table.php?distribution=crunchbang">CrunchBang Linux</a> que j'ai testé sur un boîtier "Linutop 4" dans <a
href="http://blog.nicolargo.com/2012/10/6338.html">un dernier article</a>. Le choix de l'interface graphique n'est pas le seul avantage de ces distributions. Elles sélectionnent également les applications proposées en standard aux utilisateurs, en préférant par exemple <a
href="http://twotoasts.de/index.php/midori/">Midori</a> ou <a
href="http://blog.nicolargo.com/2009/09/une-semaine-avec-chromium.html">Chromium</a> à la place de Firefox.</p><p
style="text-align: justify;">Les plus barbus d'entre vous vont me retourner qu'il est tout à fait possible de prendre n'importe quelle distribution GNU/Linux (si possible <a
href="http://www.gnu.org/distros/free-distros.fr.html">la plus proche de la philosophie libre</a>) et d'y installer à la main l'interface graphique et les applications de son choix. Cependant, cette démarche est justement réservée aux barbus et pas à Monsieur Lambda que l'on souhaite faire venir du bon côté de la force.</p><p
style="text-align: justify;">Alors que pouvons-nous faire ? Nous, défenseurs des logiciels libres. Pourquoi pas en donnant sa chance à une distribution alternative, en sortant un peu des pistes que l'on connait si bien (ne vous inquiétez pas, vous ne serez pas perdu bien longtemps). En choisissant tout simplement un système en adéquation avec nos besoins et le matériel associé. En ne refaisant pas les mêmes erreurs qui ont conduit et conduisent encore des utilisateurs vers des OS propriétaires et fermés.</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/10/il-ny-a-pas-quubuntu-dans-la-vie.html">Il n&#8217;y a pas qu&#8217;Ubuntu dans la vie&#8230;</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=sJ-bmhvaDyU:sttykB97PCs:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=sJ-bmhvaDyU:sttykB97PCs:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/sJ-bmhvaDyU" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6392
title: De Network Manager à une configuration manuelle
uri: De-Network-Manager-à-une-configuration-manuelle
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/mDwawpkL9Cw/de-network-manager-a-une-configuration-manuelle.html

content:
<p><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright" title="No Network Manager" src="http://blog.nicolargo.com/wp-content/uploads/2012/10/capture_034.png" alt="" width="289" height="157" />S'il y a bien une fonction que je trouve mal faite dans Gnome c'est le "Network Manager". Ce logiciel, accessible depuis la barre de menu, permet de configurer, à partir d'une interface graphique, les interfaces réseaux de sa machine. Ce n'est pas la première fois que je tombe sur une configuration que je n'arrive pas à appliquer en utilisant ce logiciel. Il faut dire que celle-ci mélange plusieurs interfaces réseaux avec des configurations DHCP, statiques et des routes spécifiques. J'ai donc décidé de désactiver Network Manager et de configurer mon réseau à la mimine.</p><p>Avant de pouvoir configurer manuellement son réseau à partir <a
href="http://wiki.debian.org/NetworkConfiguration">du fichier /etc/network/interfaces</a>, il faut préalablement désactiver la gestion des interfaces par Network Manager. Nous allons voir comment procéder sur une distribution GNU/Linux Ubuntu 12.04.</p><h1>Préparation de la manipulation</h1><p>Avant toute chose, il faut arrêter toutes vos applications. En effet, nous allons toucher à la couche réseau du noyau Linux et il y a de forte chance que vous perdiez la connectivité.  Il est bien sûr totalement impossible de faire cette manip à distance (via SSH ou remote desktop).</p><p>Pour pouvoir revenir en arrière, nous allons sauvegarder la configuration de Network Manager:</p><pre class="crayon-plain-tag">sudo cp /etc/NetworkManager/NetworkManager.conf /etc/NetworkManager/NetworkManager.conf.OLD</pre><p></p><h1>Désactivation de Network Manager</h1><p>On commence par éditer le fichier <strong>/etc/NetworkManager/NetworkManager.conf</strong>:</p><pre class="crayon-plain-tag">sudo vi /etc/NetworkManager/NetworkManager.conf</pre><p>Puis passer la clé de configuration <strong>managed</strong> à <span
style="color: #008000;"><strong>true</strong></span>:</p><pre class="crayon-plain-tag">[ifupdown]
managed=true</pre><p></p><h1>Configuration manuelle des interfaces réseau</h1><p>On passe ensuite à la configuration manuelle des interfaces réseau de notre machine en éditant le fichier <strong>/etc/network/interfaces</strong>. Le contenu du fichier dépend bien sûr de votre besoin. J'avais écris un billet sur le sujet il y a quelques années. Mais le mieux est de lire <a
href="http://wiki.debian.org/NetworkConfiguration">la documentation officielle et complète sur le site de Debian</a>.</p><p>Il ne reste ensuite plus qu'à relancer le démon <em>networking</em> pour appliquer les changements et faire chauffer <a
href="http://radiospares-fr.rs-online.com/web/c/semiconducteurs/">le semiconducteur</a> de la carte m&egrave;re:</p><pre class="crayon-plain-tag">sudo service networking restart</pre><p>Bye bye Network Manager et son horrible interface graphique ! Bienvenu au fichier interfaces et sa syntaxe simple et claire.</p><h1>Revenir en arrière ?</h1><p>En cas de problème, pour revenir à votre configuration initiale ou les interfaces sont gérées par Network Manager, il suffit de saisir les commandes suivantes:</p><pre class="crayon-plain-tag">sudo cp /etc/NetworkManager/NetworkManager.conf.OLD /etc/NetworkManager/NetworkManager.conf
sudo service networking restart</pre><p></p><div>Et hop, retour à la case départ.</div><p>Cet article <a
href="http://blog.nicolargo.com/2012/10/de-network-manager-a-une-configuration-manuelle.html">De Network Manager à une configuration manuelle</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=mDwawpkL9Cw:kM6mUA1Qg0M:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=mDwawpkL9Cw:kM6mUA1Qg0M:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/mDwawpkL9Cw" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6433
title: Bêta test de Glances 1.5
uri: Bêta-test-de-Glances-1-5
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/5EudZyGiN9E/beta-test-de-glances-1-5.html
content:
<p>Je viens de figer en <strong>bêta</strong> la version 1.5 de <strong>Glances</strong>, mon outil de supervision système. J'ai donc <strong>besoin de vous</strong> pour tester cette nouvelle mouture (oui je sais, c'est moche de vous faire bosser un week-end).</p><p
style="text-align: justify;">Glances 1.5 est une évolution majeure car elle apporte une fonction qui était demandée depuis pas mal de temps par les utilisateur. Cette fonction est <strong>le mode client/serveur</strong> qui permet de surveiller à distance une machine (ou le serveur Glances en lancé) depuis une autre (Glances fonctionnera sur cette dernière en mode client).</p><p
style="text-align: justify;">Le principal avantage de cette fonction est d'éviter d'avoir à se connecter sur les machines à surveiller. On lance Glances server une fois pour tout et on peut ensuite se connecter à partir de n'importe qu'elle autre machine. Un autre avantage est le fait d'ouvrir Glances à la supervision des machines sous <strong>Windows</strong>. En effet, il est possible de lancer Glances serveur sur une machine Windows et de surveiller la majorité des informations systèmes (presque toutes...) à partir d'une machine Linux, Mac ou BSD.</p><p
style="text-align: justify;">Il y a bien sûr d'autres nouveautés à consulter <a
href="https://github.com/nicolargo/glances/blob/master/NEWS">ici</a>.</p><h1 style="text-align: justify;">Comment installer cette version bêta ?</h1><p
style="text-align: justify;">Le plus simple pour ne pas casser son Glances déjà installé est de se faire une installation à la main:</p><p></p><pre class="crayon-plain-tag">mkdir -p ~/tmp/glances
cd ~/tmp/glances
rm -f ./glances.py
wget https://raw.github.com/nicolargo/glances/master/glances/glances.py
chmod a+x ./glances.py</pre><p>Attention, Glances 1.5 nécessite une version 0.4 ou supérieure de la librairie PsUtil pour fonctionner.</p><p>Vous pouvez installer la dernière version de PsUtil en utilisant Pip:</p><pre class="crayon-plain-tag">pip install psutil</pre><p></p><h1>Comment tester cette version bêta ?</h1><p>On lancera ensuite Glances avec la commande:</p><pre class="crayon-plain-tag">~/tmp/glances/glances.py</pre><p></p><div>Merci de tester le maximum de chose (redimensionnement du terminal, test des fonctions: cliquez sur 'h' pour avoir la liste complète).</div><p>Pour le mode client serveur, la syntaxe est assez simple.</p><p><span
style="text-decoration: underline;">Sur le serveur:</span></p><pre class="crayon-plain-tag">~/tmp/glances/glances.py -s</pre><p>Note: par défaut le serveur va se mettre en écoute sur le port TCP/61209 (à ouvrir si vous avez un Firewall) et sur toutes les interface de votre machine. Il est possible de configurer le port avec l'option (-p PORT) et l'adresse de binding avec l'option (-B @BIND).</p><p>Le serveur Glances est compatible XML/RPC... donc potentiellement accessible depuis des applications tierces <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p><span
style="text-decoration: underline;">Sur le client:</span></p><pre class="crayon-plain-tag">~/tmp/glances/glances.py -c @server</pre><p>Il faut donc fournir l'adresse IP ou le nom d'hôte public de la machine serveur à superviser.</p><p>Note: par défaut le client va se connecter en utilisant le port TCP/61209. Il est possible de configurer le port avec l'option (-p PORT).</p><h1>Comment me remonter les erreurs / problèmes de cette version bêta ?</h1><p>Le mieux pour moi est que vous utilisez GitHub en créant un bug avec une description précise du problème rencontré. Si vous avez un compte GitHub, il suffit de <a
href="https://github.com/nicolargo/glances/issues/new">remplir le formulaire</a>.</p><p>Sinon, vous pouvez laisser un commentaire directement sur le blog !</p><p>D'avance merci à vous <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Cet article <a
href="http://blog.nicolargo.com/2012/11/beta-test-de-glances-1-5.html">Bêta test de Glances 1.5</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=5EudZyGiN9E:x7QqftEdrFo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=5EudZyGiN9E:x7QqftEdrFo:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/5EudZyGiN9E" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6403
title: Installation pas à pas d&#8217;un serveur de supervision Shinken
uri: Installation-pas-à-pas-d-un-serveur-de-supervision-Shinken
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/6X3auy8wn64/installation-pas-a-pas-dun-serveur-de-supervision-shinken.html

content:
<p><a
href="http://blog.nicolargo.com/wp-content/uploads/2012/11/shinken-logo.png"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-full wp-image-6438" title="shinken-logo" src="http://blog.nicolargo.com/wp-content/uploads/2012/11/shinken-logo.png" alt="" width="120" height="27" /></a>Nous allons aborder l'installation et la configuration basique initiale d'un serveur de supervision basé sur Shinken. Ce billet est le premier d'une série sur le sujet. Dans la suite j'utiliserai une machine virtuelle sous Debian Squeeze 6.0.6 (version minimale) pour illustrer mes dires...</p><h1>Installation de Shinken</h1><p>Les commandes sont à saisir à partir du compte root ou en les précédants de la commande 'sudo' si celle-ci est installée.</p><pre class="crayon-plain-tag">apt-get install curl
curl -L http://install.shinken-monitoring.org | /bin/bash</pre><p>Attendre quelques minutes...</p><p>Lors du premier re-démarrage, je suis tombé sur l'erreur suivante (/tmp/bad_start_for_arbiter):</p><pre class="crayon-plain-tag">[1351082314] Error :   Opening the log file 'arbiterd.log' failed with '[Errno 13] Permission denied: u'/usr/local/shinken/var/arbiterd.log''</pre><p>Pour la résoudre ce problème de droit, j'ai effectué les actions suivantes:</p><pre class="crayon-plain-tag">service shinken stop
chown -R shinken:shinken /usr/local/shinken
service shinken start</pre><p></p><p
style="text-align: justify;">L'installation se fait dans le répertoire <strong>/usr/local/shinken</strong>. Pour identifier les éventuels problèmes que vous pouvez rencontrer lors de l'installation, vous pouvez consulter le fichier de log <strong>/tmp/shinken.install.log</strong>.</p><h2>Configuration initiale de Shinken</h2><p>Les fichiers de configuration se trouvent dans le répertoire <strong>/usr/local/shinken/etc/</strong>.</p><p>Avant de commencer à jouer avec cette configuration, il est important d'avoir une connaissance générale de l'architecture de Shinken. Je vous conseille donc <a
href="http://www.shinken-monitoring.org/wiki/the_shinken_architecture">la lecture de cette page</a> sur le wiki officiel.</p><p><a
href="http://blog.nicolargo.com/2012/11/installation-pas-a-pas-dun-serveur-de-supervision-shinken.html/shinken-architecture" rel="attachment wp-att-6407"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6407" title="shinken-architecture" src="http://blog.nicolargo.com/wp-content/uploads/2012/10/shinken-architecture-580x410.png" alt="" width="580" height="410" /></a></p><p>La première chose à faire et de sécuriser l'accès à l'interface WebUI installé par défaut. Pour cela, il faut éditer la section module / WebUI du fichier <em>shinken-specific.cfg</em> en ajoutant le module <strong>Mongodb</strong> et en changeant le mot de passe <strong>auth_secret</strong>:</p><pre class="crayon-plain-tag">define module {
  module_name WebUI
  module_type webui
  host 0.0.0.0
  port 7767
  auth_secret MOTDEPASSE
  modules Apache_passwd,ActiveDir_UI,Cfg_password,PNP_UI,Mongodb
  manage_acl 1
  play_sound 0
  allow_html_output 0
  max_output_length 100
}</pre><p>Puis en éditant le mot de passe du compte admin (par défaut: admin) dans le fichier <em>contacts.cfg</em>:</p><pre class="crayon-plain-tag">define contact{
    use             generic-contact
    contact_name    admin
    email           votre@mail.com ; adresse mail
    pager           0600000000   ; telephone
    password        motdepasseadmin ; mot de passe
    is_admin        1
}</pre><p>Comme vous pouvez le voir c'est également dans cette section que vous pouvez changer l'adresse IP (par défaut en écoute sur toute les adresses IP des interfaces) et le port découte (par défaut TCP/7767) de l'interface WebUI.</p><p>On peut ensuite relancer Shinken pour prendre en compte la modification:</p><pre class="crayon-plain-tag">service shinken restart</pre><p>Il ne reste plus qu'à acceder à la l'interface Shinken WebUI en saisissant l'URL suivante dans votre navigateur (en remplacant @IP par l'adresse IP de votre serveur): <strong>http//@IP:7767/</strong></p><p>Lors de mon installation (sur une VM), je ne disposais que de 3 Go de libre sur le montage /var. La configuration par défaut de MongoDB, qui est la base de donnée utilisé par la WebUI pour stocker les informations utilisateurs, à besoin d'un fichier journal de plus de 3 Go. J'avais donc le message suivant au niveau de l'interface:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6408" title="shinken-mongodb-error" src="http://blog.nicolargo.com/wp-content/uploads/2012/10/shinken-mongodb-error-580x143.png" alt="" width="580" height="143" /></p><p>Et le log suivant dans le fichier /var/log/mongodb/mongodb.log:</p><pre class="crayon-plain-tag">Wed Oct 24 16:02:26 [initandlisten] ERROR: Insufficient free space for journal files
Wed Oct 24 16:02:26 [initandlisten] Please make at least 3379MB available in /var/lib/mongodb/journal or use --smallfiles
Wed Oct 24 16:02:26 [initandlisten]
Wed Oct 24 16:02:26 [initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating
Wed Oct 24 16:02:26 dbexit:</pre><p>Pour forcer MongoDB a être moins gourmand, j'ai changer sa configuration dans le fichier /etc/mongodb.conf:</p><pre class="crayon-plain-tag">smallfiles = true</pre><p>Puis on relance MongoDB:</p><pre class="crayon-plain-tag">service mongodb restart</pre><p>A ce stade vous devriez avoir une interface WebUI fonctionnelle mais désespérément vide (mis à part votre serveur de supervision)...</p><p>Il est donc temps de passer à la prochaine étape.</p><h1>Superviser votre système d'information avec Shinken</h1><p>Selon la taille de votre réseau, la tache qui consiste à entrer les machines à superviser dans la configuration de Shinken peut s'averer pour le moins lourde. Heureusement, Shinken fournit un outil permettant de découvrir automatiquement les machines présente sur votre réseau (j'en avais déjà parlé <a
href="http://blog.nicolargo.com/2011/05/shinken-decouvre-votre-reseau-pour-vous.html">dans ce billet</a>) et même sur votre serveur de virtualisation VMWare (via vCenter).</p><p>Cet outil se base sur:</p><ul><li><a
href="http://nmap.org/">nmap </a>pour la découverte sur le réseau</li><li><a
href="http://www.op5.org/community/plugin-inventory/op5-projects/check-esx-plugin">un plugin nommé check_esx</a> pour découvrir les machines sur un serveur VMWare vCenter</li></ul><p>On commence donc par installer ces deux pré-requis sur notre serveur de supervision:</p><pre class="crayon-plain-tag">apt-get install nmap
/usr/local/shinken/install -p check_esx3</pre><p>Si vous avez un serveur VMWare vCenter, vous pouvez vérifier le bon fonctionnement du plugin check_esx3 en le lancant en ligne de commande:</p><pre class="crayon-plain-tag">/usr/local/shinken/libexec/check_esx3.pl -H @IPVCENTER -u LOGIN -p MOTDEPASSE -l cpu
CHECK_ESX3.PL OK - cpu usage=376.00 MHz (0.59%) | cpu_usagemhz=376.00Mhz;; cpu_usage=0.59%;;
/usr/local/shinken/libexec/check_esx3.pl -H @IPVCENTER -u LOGIN -p MOTDEPASSE -l mem
CHECK_ESX3.PL OK - mem usage=30413.32 MB (23.20%), overhead=652.43 MB, swapped=0.00 MB, memctl=0.00 MB | mem_usagemb=30413.32MB;; mem_usage=23.20%;; mem_overhead=652.43MB;; mem_swap=0.00MB;; mem_memctl=0.00MB;;
/usr/local/shinken/libexec/check_esx3.pl -H @IPVCENTER -u LOGIN -p MOTDEPASSE -l net
CHECK_ESX3.PL OK - net receive=2.00 KBps, send=1.00 KBps, all 2 NICs are connected | net_receive=2.00KBps;; net_send=1.00KBps;; OK_NICs=2;; Bad_NICs=0;;
/usr/local/shinken/libexec/check_esx3.pl -H @IPVCENTER -u LOGIN -p MOTDEPASSE -l vmfs
CHECK_ESX3.PL OK - Storages : 'datastore1'(free)=279348.00 MB (99.65%), 'datastore2'(free)=548125.00 MB (57.51%) | datastore1=279348.00MB;; datastore2=548125.00MB;;
rm /tmp/cwpss_*</pre><p>Il faut ensuite donner à Shinken les informations sur les réseaux (et serveurs vCenters) ou le logiciel de découverte doit être lancé. Pour cela, il faut éditer le fichier <em>/usr/local/shinken/etc/resource.cfg</em> (section Discovery):</p><pre class="crayon-plain-tag">#-- Discovery
# default snmp community
$SNMPCOMMUNITYREAD$=public
# what to discover by default
$NMAPTARGETS$=192.168.1.0/24
# If your scans are too slow, try to increase minrate (number of packet in parallel
# and reduce the number of retries.
$NMAPMINRATE$=1000
$NMAPMAXRETRIES$=0
# VMWare vCenter
$VCENTER$=vcenter.mondomaine.com
$VCENTERLOGIN$=LOGINVCENTER
$VCENTERPASSWORD$=MOTDEPASSEVCENTER</pre><p>Il est bien sur possible d'ajouter des réseaux ou de machines à la variable $NMAPTARGETS$ en séparant chaque entrée par un espace.</p><p>On peut lancer shinken-discovery qui va effectuer la découverte automatique:</p><pre class="crayon-plain-tag">/usr/local/shinken/bin/shinken-discovery -c /usr/local/shinken/etc/discovery.cfg -o /usr/local/shinken/etc/objects/discovery/ -r nmap,vsphere</pre><p>shinken-discovery va générer la configuration des machines découvertes dans le répertoire <em>/usr/local/shinken/etc/objects/discovery/</em> (configurable dans la commande ci-dessus avec l'option -o).</p><p>On relance Shinken pour intégrer les machines ainsi découvertes:</p><pre class="crayon-plain-tag">service shinken restart</pre><p>En allant dans l'interface graphique, vous allez sûrement rencontrer des erreurs de check car tous les plugins ne sont pas installés par défaut. Par exemple :</p><pre class="crayon-plain-tag">... BigProcesses CRITICAL3m 10s /bin/sh: /usr/local/shinken/libexec/check_wmi_plus.pl: not found ...</pre><p>Il faut donc utiliser le script d'installation pour installer les plugins manquant.</p><p>Sur ma configuration j'ai ainsi fait:</p><pre class="crayon-plain-tag">/usr/local/shinken/install -p check_mysql_health
/usr/local/shinken/install -p manubulon
/usr/local/shinken/install -p check_snmp_bandwidth
/usr/local/shinken/install -p check_netint
/usr/local/shinken/install -p check_nwc_health
/usr/local/shinken/insatll -p check_wmi_plus</pre><p>Il faut procéder ainsi jusqu'à avoir installé tous les plugins manquants nécessaires. Pour avoir une liste exhaustive des plugins dont l'installation est supporté par le script Shinken install, il suffit de saisir la commande suivante:</p><pre class="crayon-plain-tag">/usr/local/shinken/install -h
...
    -p | --plugin           Install plugins. Argument should be one of the following:
                               check_esx3
                               nagios-plugins
                               check_oracle_health
                               check_mysql_health
                               capture_plugin
                               check_wmi_plus
                               check_mongodb
                               check_emc_clariion
                               check_nwc_health
                               manubulon (snmp plugins)
                               check_hpasm
                               check_netapp2
                               check_mem (local enhanced memory check plugin)
                               check_snmp_bandwidth (check bandwidth usage with snmp)
                               check_netint (enhanced version of check_snmp_int plugins)
                               check_IBM
                               check_IBM_DS
                               check_rsync
...</pre><p>La découverte automatique est vraiment un plus mais ce n'est pas le Saint Grall. En effet pour configurer finement ce que l'on veut suppervier, il faudra obligatoirement reprendre la configuration à la main en éditant les fichiers se trouvant dans le répertoire <em>/usr/local/shinken/etc/objects/discovery</em>. De plus, la notion de groupe étant plus une problématique fonctionnelle que technique, il vous faudra configurer ces derniers manuellement à partir du fichier <em>/usr/local/shinken/etc/hostgroups.com</em>.</p><p>Un exemple de configuration de groupe:</p><pre class="crayon-plain-tag">define hostgroup{
   hostgroup_name VirtualisationServers
   alias Virtualisation Servers
   members vcenter, virt1, virt2, virt3, virt4
}</pre><p>Attention à bien sauvegarder ce répertoire avant de relancer un shinken-discovery, histoire de ne pas perdre vos modifications.</p><p><strong>Reste ensuite la phase la plus longue mais également la plus importante de la configuration de Shinken: ne surveiller que les choses importantes pour votre système d'information.</strong></p><p>En effet, le mode de découverte automatique n'est pas assez fin pour déterminer par lui même ce qu'il faut superviser. La CPU du PC de la secrétaire monte régulièrement au dessus de 90% d'utilisation ? What else... Par contre si on constate la même consommation CPU sur le serveur Web de votre entreprise, il faut aller y jeter un coup d'oeil...</p><p>Le plus simple pour effectuer cette lourde tache est de manipuler la WebUI (voir le chapitre suivant), puis de parcourir l'ensemble des hosts et des services en supprimant ce que l'on juge peu important.</p><h1>Prise en main de Shinken WebUI</h1><p>A ce stade, vous devriez avoir un serveur de supervision qui commence à remonter un certain nombres d'informations dans l'interface WebUI.</p><p>Je vous encourage ensuite à vous familiariser avec cette nouvelle interface WebUI qui peut être un peu déroutante pour les personnes habituées à manipuler d'autres solutions de supervision. A ce sujet, il est également possible d'utiliser des interfaces alternatives comme <a
href="http://www.thruk.org/">Thruk</a> qui se rapproche plus de l'interface native de Nagios.</p><div
id="attachment_6425" class="wp-caption aligncenter" style="width: 590px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><img
class="size-large wp-image-6425" title="Thruk" src="http://blog.nicolargo.com/wp-content/uploads/2012/10/thruk-580x398.png" alt="" width="580" height="398" /><p
style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Thruk, une alternative à Shinken WebUI</p></div><p>Personnellement, je trouve qu'une fois la première impression passée (c'est quoi ces gros icônes ? Ou sont mes hosts !). La modularité apportée par le Dasboard, les filtres et les bookmarks permet d'adapter cette interface à vos besoins. Si les développeurs de Shinken lisent cet article (et je suis sûr qu'ils vont le faire, coucou @naparuba <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ), il serait bon près configurer le Dashboard par défaut et quelques filtres bien pensées histoire que les nouveaux utilisateurs ne se trouvent pas devant des pages blanches.</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2012/10/webui001.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6426" title="webui001" src="http://blog.nicolargo.com/wp-content/uploads/2012/10/webui001-580x305.png" alt="" width="580" height="305" /></a></p><p>&nbsp;</p><p>On peut également se créer des filtres personnels (par exemple toutes les machines appartenant au groupe "serveur" ou tout les services remontant la charge des machines...) et créer des <strong>bookmarks</strong> dans la page <strong>All</strong> de la WebUI.</p><p><a
href="http://blog.nicolargo.com/wp-content/uploads/2012/11/shinken-filter.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6437" title="shinken-filter" src="http://blog.nicolargo.com/wp-content/uploads/2012/11/shinken-filter-580x230.png" alt="" width="580" height="230" /></a></p><h1>Et après ?</h1><p>Nous arrivons au terme de ce premier article sur une configuration pas à pas de Shinken. Au prochain épisode, nous allons nous pencher sur la notion <strong>d'impacts/dépendances</strong> et de <strong>business rules</strong> qui sont de grosses valeurs ajoutées de Shinken par rapport à Nagios.</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/11/installation-pas-a-pas-dun-serveur-de-supervision-shinken.html">Installation pas à pas d&#8217;un serveur de supervision Shinken</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=6X3auy8wn64:5bWn6IJhi0A:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=6X3auy8wn64:5bWn6IJhi0A:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/6X3auy8wn64" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6444
title: Glances 1.5 est arrivé
uri: Glances-1-5-est-arrivé
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/7AYPUiMm9GA/glances-1-5-est-arrive.html
content:
<p
style="text-align: justify;"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-thumbnail wp-image-6452" title="glances-white-256" src="http://blog.nicolargo.com/wp-content/uploads/2012/11/glances-white-256-150x150.png" alt="" width="150" height="150" /></p><p
style="text-align: justify;"><span
style="color: #ff0000;"><em>Update</em>: La version corrige un bug qui peut, sur certain OS, empêcher le bon fonctionnement de la version 1.5. Je viens donc de publier une version correctrice (1.5.1) qui effectue les contrôles nécessaires avant le démarrage de Glances.</span></p><p
style="text-align: justify;">Quelques mois après la sortie de la version 1.4 et la riche actualité qui a suivi (<a
href="https://github.com/nicolargo/glances/wiki/Pressbook">buzz sur pas mal de sites</a> et intégration dans <a
href="http://packages.debian.org/fr/sid/glances">les paquets Debian Sid</a>), voici donc la nouvelle mouture de Glances.</p><p
style="text-align: justify;">Pour rappel, Glances est un logiciel de supervision système en ligne de commande (interface texte basée sur Curses) permettant de voir en un clin d'oeil l'état de sa machine. Un code couleur permet de mettre en avant les statistiques que Glances juge <strong><span
style="color: #008000;">nominale</span></strong>, <span
style="color: #333399;">à <strong>surveiller</strong></span>,  <span
style="color: #ff6600;">en <strong>alerte</strong></span> ou <strong><span
style="color: #ff0000;">critique</span></strong>. Il peut également afficher la liste des dernières alertes/critiques. La lisibilité et l'économie de l'espace pour l'affichage sont des critères importants que j'ai essayé de garder en tête lors du développement et du choix des évolutions.</p><p
style="text-align: justify;">Nous allons dans ce billet aborder les principales nouveautés de la version 1.5, avec notamment un focus sur la fonction client/serveur permettant de surveiller les machines à distance.</p><p
style="text-align: justify;">Glances est disponible sous GNU/Linux, BSD, Mac OS X et même Windows (uniquement en mode serveur).</p><p
style="text-align: justify;"><a
href="http://blog.nicolargo.com/wp-content/uploads/2012/11/capture_045.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6445" title="Glances 1.5" src="http://blog.nicolargo.com/wp-content/uploads/2012/11/capture_045-580x339.png" alt="" width="580" height="339" /></a></p><h1>Installation et mise à jour</h1><p>En attendant la disponibilité de la version 1.5 de Glances dans vos packets managers favoris, il est possible (et conseillé) d'utiliser le gestionnaire de paquet Python Pip pour installer ou mettre à jour le logiciel.</p><p>Installation:</p><pre class="crayon-plain-tag"># apt-get install python-pip build-essential python-dev
# pip install glances</pre><p>Mise à jour:</p><pre class="crayon-plain-tag"># pip install -- upgrade glances</pre><p>Si vous avez déjà une version antérieure de Glances installée, il se peut que la mise à jour ne ne fasse pas correctement. Il suffit alors de suivre la procédure suivante:</p><pre class="crayon-plain-tag"># rm -rf /usr/local/lib/python2.6/dist-packages/glances/
# rm -rf /usr/local/lib/python2.6/dist-packages/Glances-1.*
#&nbsp;rm -f /usr/local/bin/glances
# pip install glances</pre><p>Note: si vous avez Python 2.7 ou supérieure, il faut adapter les chemins ci-dessus.</p><p>Pour tester que l'installation / mise à jour s'est bien passée, le plus simple est de lancer la commande:</p><pre class="crayon-plain-tag">$ glances -v
Glances version 1.5</pre><p>Puis de lancer Glances pour vérifier que les statistiques de votre machine s'affichent correctement:</p><pre class="crayon-plain-tag">$ glances</pre><p></p><h1>Les nouveautés de la version 1.5</h1><p
style="text-align: justify;">Visuellement, les utilisateurs des anciennes versions ne seront pas perdus. On retrouve un découpage avec des statistiques essentielles en haut de l'écran (<strong>CPU</strong>, <strong>LOAD</strong>, <strong>MEM</strong>) avec une optimisation de l'espace. Puis sur la gauche des informations optionnelles comme le <strong>débit des interfaces réseau</strong>, les <strong>entrées/sorties disques</strong> et l'<strong>espace des différents points de montage</strong> (maintenant avec un affichage optimisé pour tenir compte des noms longs). Sur la droite, on a la possibilité de voir le <strong>détail des processus</strong> (avec par défaut un classement automatique et dynamique selon l'état de la machine). Enfin en bas de l'écran, le log des dernières alertes que l'on peut nettoyer avec les touches '<strong>w</strong>' pour supprimer uniquement les Warning et '<strong>x</strong>' pour supprimer toutes les alertes finies).</p><p>La touche '<strong>h</strong>' permet toujours d'afficher l'aide en ligne avec la liste des touches disponibles.</p><p>La liste complète des changements par rapport à la dernière version est disponible dans le fichier <a
href="https://github.com/nicolargo/glances/blob/master/ChangeLog">ChangeLog</a>.</p><h1>Focus sur le mode client / serveur</h1><p>C'est la grosse nouveauté de cette version. La mise à disposition pour les utilisateurs d'un mode client /serveur permettant à partir d'un Glances client d'afficher les statistiques d'un Glances serveur. On peut ainsi à partir d'un client GNU/Linux surveiller une autre machine GNU/Linux ou même, idée folle, une machine Windows.</p><p>Quand Glances est lancé en mode serveur, il créé un serveur XMLRPC en écoute sur le port TCP/61209 (ce port est bien sur configurable). Quand un client se connecte, il met à jour les statistiques avec un système de cache pour éviter de surcharger la machine puis il envoie les statistiques au client qui se charge de l'affichage et de la gestion des alertes. Il est bien sûr possible d'avoir plusieurs clients différents connectés sur un même serveur.</p><p>Pour lancer Glances en mode serveur, il suffit d'utiliser l'option <strong>-s</strong>:</p><pre class="crayon-plain-tag">server$ glances -s
Glances server is running on 0.0.0.0:61209</pre><p>On lance ensuite le client sur une autre machine avec l'option <strong>-c</strong>:</p><pre class="crayon-plain-tag">client$ glances -c server</pre><p></p><div>Si tout se passe bien, vous devriez avoir les statistiques du serveur qui s'affiche sur l'écran de votre client. Pour vérifier que la connexion entre le client et le serveur fonctionne correctement, j'ai mis en place un indicateur en bas à gauche de l'écran:</div><div></div><div><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6446" title="capture_047" src="http://blog.nicolargo.com/wp-content/uploads/2012/11/capture_047.png" alt="" width="397" height="64" /></div><p>Ce dernier passe change en cas de problème de connexion:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6447" title="capture_048" src="http://blog.nicolargo.com/wp-content/uploads/2012/11/capture_048.png" alt="" width="397" height="64" /></p><h1>Et Windows ?</h1><p>Comme je l'ai noté en introduction, la version server de Glances fonctionne sous Windows (moyennant l'installation de <a
href="http://www.python.org/getit/windows/">Python</a> et de <a
href="http://code.google.com/p/psutil/downloads/list">PsUtil</a>). Je dois avouer que je n'ai pas testé à fond la compatibilité de Glances sur cet OS. Au démarrage, Glances vérifie si il est lancé sur une plate-forme Windows. Si c'est le cas, il se lancera automatiquement en mode serveur (sans avoir à mettre le flag -s).</p><p>Je suis preneur de tout retour sur le sujet et si une âme généreuse veut bien s'occuper de maintenir un binaire "all inclusive" pour Windows 32 bits et 64 bits, cela serait vraiment bien ! (c'est assez facile à faire avec outil comme <a
href="http://www.pyinstaller.org/">PyInstaller</a>).</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/11/glances-1-5-est-arrive.html">Glances 1.5 est arrivé</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=7AYPUiMm9GA:YDiicHXrBh0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=7AYPUiMm9GA:YDiicHXrBh0:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/7AYPUiMm9GA" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6463
title: Internationaliser ses programmes Python
uri: Internationaliser-ses-programmes-Python
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/lNrjOEKdkUA/internationaliser-ses-programmes-python.html

content:
<p><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-thumbnail wp-image-6472" title="babel1" src="http://blog.nicolargo.com/wp-content/uploads/2012/11/babel1-150x150.jpg" alt="" width="150" height="150" />Bien que je pense qu'il vaille mieux utiliser un logiciel en Anglais plutôt qu'un logiciel (mal traduit) en Français, la problématique de l'internationalisation des développements viendra tôt ou tard sur le tapis si vous avez des utilisateurs de plusieurs pays.</p><p>Nous allons donc dans ce billet aborder le sujet spécifique de <strong>la traduction d'un logiciel écrit dans le langage Python</strong>. Pour cela nous allons nous baser sur un programme simple et connu de tous: un bon vieux Hello World !</p><p>J'ai créé<a
href="https://github.com/nicolargo/pythonarena/tree/master/helloworld_i18n"> un projet GitHub</a> avec l'ensemble des fichiers don je parle dans ce billet.</p><p>On commence par créer, dans un répertoire de travail, la structure suivante:</p><div><pre class="crayon-plain-tag">mkdir -p i18n/fr/LC_MESSAGES
touch hello.py</pre></p><div> Ce qui va donner:</div></div><p></p><pre class="crayon-plain-tag">.
├── hello.py
└── i18n
 ├── fr
  &nbsp;&nbsp; └── LC_MESSAGES</pre><p>On édite une première version du script Python hello.py:</p><pre class="crayon-plain-tag">#!/usr/bin/env python
__appname__ = 'hello'
__version__ = "1.0"
__author__ = "Nicolas Hennion &lt;nicolas@nicolargo.com&gt;"
__licence__ = "LGPL"
def main():
    print("Hello world !")
if __name__ == "__main__":
    main()</pre><p>Sans surprise, l’exécution de ce programme donne:</p><pre class="crayon-plain-tag">$ python hello.py
Hello World !</pre><p></p><h1>1. Rendre son code compatible</h1><p>La première étape est de rendre notre code compatible avec l'internationalisation: Pour cela, on édite notre programme en effectuant les modifications suivantes:</p><pre class="crayon-plain-tag">#!/usr/bin/env python
__appname__ = 'hello'
__version__ = &quot;1.0&quot;
__author__ = &quot;Nicolas Hennion &amp;lt;nicolas@nicolargo.com&amp;gt;&quot;
__licence__ = &quot;LGPL&quot;
import gettext
gettext.install(__appname__)
def main():
    print(_(&quot;Hello world !&quot;))
if __name__ == &quot;__main__&quot;:
    main()</pre><p></p><div>On notera donc:</div><div><ul><li>l'inclusion de la librairie gettext</li><li>l'appel à la fonction gettext.install permettant de charger, s'il existe, le fichier de langue correspondant à la langue du système</li><li>le repérage de la chaîne de caractère à traduire en la faisant précéder par le caractère _: print(<strong>_</strong>("Hello world !"))</li></ul></div><h1>2. Génération du modèle de traduction</h1><p>On passe ensuite à la création du modèle de traduction général (.pot) qui va servir de support de base pour toutes les langues. On utilise l'outil système suivant:</p><pre class="crayon-plain-tag">xgettext --language=Python --keyword=_ --output=./i18n/hello.pot ./hello.py</pre><p>Attention, ce n'est pas dans ce fichier qu'il faut effectuer la traduction. Ce n'est qu'un modèle.</p><h1>3. Génération du fichier de traduction</h1><p>On va donc se retrouver avec un fichier <strong>./i18n/hello.pot</strong>. C'est à partir de ce modèle que nous allons créer le fichier de traduction pour un langage donnée.</p><p>Par exemple, la création du fichier de traduction Francais (fr_FR) se fait:</p><pre class="crayon-plain-tag">msginit --input=./i18n/hello.pot --output=./i18n/fr/LC_MESSAGES/hello.po</pre><p></p><h1>4. Traduire votre programme</h1><p>Il reste ensuite le travail le plus manuel à faire: la traduction en elle même...</p><p>Pour cela, on édite le fichier <strong>i18n/fr/LC_MESSAGES/hello.po</strong>:</p><pre class="crayon-plain-tag">...
#: hello.py:12
msgid "Hello world !"
msgstr "Bonjour le monde !"
...</pre><p></p><h1>5. Compiler le fichier de traduction</h1><p>Une fois ce fichier renseigné il faut le compiler. C'est le résultat de cette compilation, qui se présente sous la forme d'un fichier .mo qui sera exploité par votre logiciel.</p><p>Pour compiler le fichier <strong>i18n/fr/LC_MESSAGES/hello.po</strong> vers le fichier <strong>i18n/fr/LC_MESSAGES/hello.mo</strong>:</p><pre class="crayon-plain-tag">msgfmt ./i18n/fr/LC_MESSAGES/hello.po --output-file ./i18n/fr/LC_MESSAGES/hello.mo</pre><p>Il ne reste plus qu'à installer le fichier de traduction compilé (donc le fichier .mo) dans le répertoire standard de votre système d'exploitation:</p><p>Installation du fichier de traduction compilé sur le système:</p><pre class="crayon-plain-tag">sudo cp i18n/fr/LC_MESSAGES/hello.mo /usr/share/locale/fr/LC_MESSAGES/hello.mo</pre><p><em>Note: cette installation devra normalement être faite par votre script d'installation (Makefile ou setup.py).</em></p><p>Il ne reste plus qu'a tester votre programme et oh miracle:</p><pre class="crayon-plain-tag">$ python hello.py
Bonjour le monde !</pre><p></p><h1>6. Mettre à jour votre fichier de traduction</h1><p>En cas de mise à jour de votre programme (ajout ou suppression de chaînes de caractères à traduire, il n'est pas la peine de out recommencer. Il faut dans ce cas, utiliser les commandes suivantes:</p><pre class="crayon-plain-tag">xgettext --language=Python --keyword=_ --output=./i18n/hello.pot ./hello.py
msgmerge --update --no-fuzzy-matching --backup=off ./i18n/fr/LC_MESSAGES/hello.po ./i18n/hello.pot</pre><p>Compléter la traduction puis re-compiler pour obtenir la nouvelle version du fichier .mo:</p><pre class="crayon-plain-tag">msgfmt ./i18n/fr/LC_MESSAGES/hello.po --output-file ./i18n/fr/LC_MESSAGES/hello.mo</pre><p></p><h1>7. Automatisation</h1><p>Il est bien sûr conseillé d'automatiser les taches que l'on vient de voir, idéalement par un script. Vous pouvez par exemple vous baser sur le script que j'utilise pour l'internationalisation de Glances (voir <a
href="https://github.com/nicolargo/glances/blob/master/i18n-gen.sh">ici</a>).</p><p>Reste maintenant le travail le plus long: trouver des contributeurs/traducteurs pour traduire vos applications <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Cet article <a
href="http://blog.nicolargo.com/2012/11/internationaliser-ses-programmes-python.html">Internationaliser ses programmes Python</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=lNrjOEKdkUA:7seOGoq1gz4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=lNrjOEKdkUA:7seOGoq1gz4:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/lNrjOEKdkUA" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6372
title: Le difficile choix des outils de supervision des réseaux
uri: Le-difficile-choix-des-outils-de-supervision-des-réseaux
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/ZpLVcoLMrWA/le-difficile-choix-des-outils-de-supervision-des-reseaux.html

content:
<p
style="text-align: justify;"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-thumbnail wp-image-6482" title="capture_049" src="http://blog.nicolargo.com/wp-content/uploads/2012/11/capture_049-150x150.png" alt="" width="150" height="150" />Je viens de lire le mail d'un lecteur concernant ses interrogations sur le choix des logiciels permettant de surveiller son réseau. Comme c'est une question récurrente dans ma boîte mail et que je pense que ses questions et nos réponses peuvent intéresser d'autres personnes, j'ai décidé de lui répondre directement sur le blog.</p><p>On commence par le mail en question:</p><p
style="text-align: center;">---</p><p><span
style="color: #888888;">Bonjour Nicolas,</span></p><p><span
style="color: #888888;">Je me permet de te contacter car je recherche à faire de la supervision sur mon réseau mais je ne sais pas vers quel outils me tourner.</span></p><p
style="text-align: justify;"><span
style="color: #888888;">Sachant que mon réseau est relativement petit, quelques switchs, firewalls, routeurs, serveurs, j'aimerais trouver un outils pour surveiller le traffic entrant sortant (réseau LAN connecté à Internet), pinger, savoir la consommation CPU et RAM des serveurs, etc...</span></p><p
style="text-align: justify;"><span
style="color: #888888;">J'ai pu voir sur internet et sur ton blog que tu conseillais nagios/centreon/cacti.</span><br
/> <span
style="color: #888888;">Mais j'ai aussi vu une autre solution se commant "The Dude" qui est une appli tournant sur Windows.</span></p><p
style="text-align: justify;"><span
style="color: #888888;">Je voulais savoir si avec nagios n'était pas trop lourd pour cela ? Nagios ne nous permet pas de sortir des statistiques sur les performances ? Nous sommes obligé de le couplé à cacti pour que ce soit plus "lisible" ? A ce que j'ai compris Centreon permet de rendre Nagios plus "user frendly", mais qu'apporte-t-il de plus ?</span></p><p
style="text-align: justify;"><span
style="color: #888888;">En abstraction de cela, existe-t-il une solution plus simple, plus légère ou plus adapté à ma petite infra au lieu de Nagios ?</span></p><p
style="text-align: justify;"><span
style="color: #888888;">Désolé, je sais que vous ne répondez normalement pas aux questions par mail mais je tente quand même ma chance en espérant que vous lisez ce mail un bon jour. <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </span></p><p
style="text-align: right;"><span
style="color: #808080;">Kévin</span></p><p
style="text-align: center;"> ---</p><p
style="text-align: justify;">Comme la grande majorité des professionnels de l'informatique, ce lecteur est un peu perdu dans<strong> la nébuleuse des solutions de supervision</strong>. Ainsi, il mélange la supervision pure (Nagios), la métrologie (Cacti) et les outils de diagnostics élémentaires (ping, iftop...).  A sa décharge, il est vrai qu'il n'y a aucun cours digne de ce nom dans les écoles d'ingénieurs, les DUT ou les cursus universitaires en informatique.</p><p>Pour répondre à la question de Kévin, il faut, je pense, commencer par <strong>revenir à son besoin</strong>.</p><p
style="text-align: justify;">Il parle de la supervision d'un réseau avec des machines diverses et variées (firewall, routeur, switch, serveurs). On est donc en présence d'un petit réseau (moins de 100 noeuds) avec comme besoin principal un suivi de la consommation des ressources: bande passante de la liaison Internet, CPU et mémoire pour les serveurs. Kévin parle également de 'ping', c'est à dire d'un moyen simple de vérifier qu'une machine est bien opérationnelle. D'un autre coté, il n'aborde pas la problématique de la gestion des alertes, c'est à dire des solutions dynamiques pour prévenir une ou plusieurs personnes en cas d'incident.</p><p
style="text-align: justify;">Dans ce cas précis, je conseillerai donc à Kévin de s'orienter vers la mise en place d'<strong>un serveur Munin</strong> (<a
href="http://blog.nicolargo.com/2012/01/installation-et-configuration-de-munin-le-maitre-des-graphes.html">lire mon billet sur le sujet</a>), ce qui lui permettra assez facilement de surveiller les serveurs GNU/Linux ou Windows et même les routeurs et switchs Cisco (<a
href="http://wiki.mikrotik.com/wiki/Munin_Monitoring#mikrotikifrate">voir les scripts suivants</a>). Le principal avantage de cette solution est la facilité de mise en place et la légéreté de l'infrastructure. On peut sans problème héberger le serveur Munin sur une machine GNU/Linux existante.</p><p
style="text-align: justify;">Comme vous pouvez le noter, je ne propose <strong>pas de solution pour le 'ping' des noeuds</strong>. En effet, sans une gestion des alertes, c'est clairement le genre d'outil qui ne sert absolument à rien à moins que Kévin veuille passer ses journée à regarder une page remontant les éventuelles erreurs rencontrées.</p><p
style="text-align: justify;">Par contre, si son besoin évolue et qu'il est prêt à gérer un véritable serveur de supervision, avec toutes les contraintes de temps et de compétence que cela demande, alors je l'orienterai vers <strong>Shinken</strong>. Pourquoi Shinken et pas Nagios ? Tout d'abord pour la simplicité de mise en oeuvre (voir mon billet sur <a
href="http://blog.nicolargo.com/2012/11/installation-pas-a-pas-dun-serveur-de-supervision-shinken.html">l'installation et la configuration initiale de Shinken</a>) mais également pour son module de découverte automatique des noeuds qui est un véritable plus, même pour un petit réseau.</p><p
style="text-align: justify;">Les informations que je viens de donner ne sont que des pistes et d'autres solutions sont possibles. Je pense notamment à l'utilisation de distributions orientées supervision comme <a
href="http://www.eyesofnetwork.com/?lang=fr">Eyes Of Network</a> ou <a
href="http://www.fullyautomatednagios.org/wordpress/">Fully Automated Nagios</a> (à quand une version Shinken ?).</p><p
style="text-align: justify;">Qu'en pensez-vous ? Quelles autres pistes pouvez-vous proposer à Kévin ?</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/11/le-difficile-choix-des-outils-de-supervision-des-reseaux.html">Le difficile choix des outils de supervision des réseaux</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=ZpLVcoLMrWA:NDNYiNInImA:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=ZpLVcoLMrWA:NDNYiNInImA:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/ZpLVcoLMrWA" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6488
title: CheckGlances ou la rencontre de Glances et de Nagios
uri: CheckGlances-ou-la-rencontre-de-Glances-et-de-Nagios
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/BOoxfjJu1k4/checkglances-ou-la-rencontre-de-glances-et-de-nagios.html

content:
<p>Ce billet a comme objectif de présenter mon dernier développement qui est un plugin Nagios|Shinken pour récupérer des informations systèmes sur des machines hôtes faisant tourner Glances.</p><p>Je vous présente donc <a
href="http://nicolargo.github.com/checkglances/">CheckGlances</a>.py.</p><h1>Quoi ?</h1><p>CheckGlances est un plugin compatible avec Nagios et ses forks (Icinga, Centreon...) / ré-implémentations (Shinken). Il respecte au maximum les <a
href="http://nagiosplug.sourceforge.net/developer-guidelines.html">spécifications</a> données par Nagios.</p><p>Développé en Python, il permet d'aller récupérer les statistiques d'un serveur Glances (c'est à dire un glances lancée avec l'option -s) via un lien XML RCP sur HTTP.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" title="CheckGlances overview" src="https://github.com/nicolargo/checkglances/raw/master/doc/checkglances.png" alt="" width="718" height="248" /></p><h1>Pourquoi ?</h1><p>Le principal avantage de cette solution est que Glances se base sur une librairie Python nommé PsUtil (pour la récupération des statistiques) et qui a le bon goût d'être <strong>multi-plateforme</strong>. On a donc un plugin permettant de manière unique de récupérer les statistiques sur des hôtes GNU/Linux, BSD, Mac OS ou Windows.</p><p>Un autre avantage est l'ouverture de ce système à des statistiques plus fines. Bien que cette première version se limite à CPU, charge, mémoire et swap. CheckGlances, pourra à terme remonter vers votre serveur de supervision <strong>toutes les données traitées par Glances</strong> (débit des interfaces réseaux, disk IO, processus, température...).</p><h1>Comment ?</h1><p>Je ne vais pas copier/coller la documentation qui se trouve sur le site officiel mais l'installation se fait comme pour n'importe quel autre plugin et dépend donc de votre serveur de supervision et de sa configuration.</p><p>Il est également possible de tester le plugin en ligne de commande.</p><p>Voici quelques exemples (en partant sur Glances server est lancé sur votre machine locale):</p><p><strong>CPU</strong></p><pre class="crayon-plain-tag">./checkglances.py -H localhost -s cpu
CPU consumption: 2.96% | 'percent'=2.96 'kernel'=0.73 'iowait'=0.20 'idle'=97.04 'user'=1.89 'irq'=0.00 'nice'=0.00</pre><p><strong> LOAD</strong></p><pre class="crayon-plain-tag">./checkglances.py -H localhost -s load
LOAD last 5 minutes: 0.22% | 'min1'=0.13 'min5'=0.22 'min15'=0.29</pre><p><strong>MEM</strong></p><pre class="crayon-plain-tag">./checkglances.py -H localhost -s mem
MEM consumption: 59.50% | 'used'=3411509248.00 'cache'=1071792128.00 'total'=3934547968.00 'percent'=59.50 'free'=523038720.00</pre><p><strong>SWAP </strong></p><pre class="crayon-plain-tag">./checkglances.py -H localhost -s swap
SWAP consumption: 3.70% | 'used'=150159360.00 'total'=4080005120.00 'percent'=3.70 'free'=3929845760.00</pre><p></p><h1>Le futur...</h1><p>Il reste encore pas mal de travail du coté de Glances pour proposer une interface XML RCP industrialisable. En effet, outre le fait que seules quelques statistiques sont remontées, il n'y a pour l'instant pas de sécurité. C'est donc une solution qui est utilisable sur un réseau local mais pas dans une architecture Internet. Mais promis, l'authentification client / server est prévue dans la prochaine version de Glances.</p><p>Comme toujours, je suis preneur de toutes les remarques, questions et retour de test sur ce nouvel outil.</p><p>&nbsp;</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/12/checkglances-ou-la-rencontre-de-glances-et-de-nagios.html">CheckGlances ou la rencontre de Glances et de Nagios</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=BOoxfjJu1k4:0E6r0NtbSQ0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=BOoxfjJu1k4:0E6r0NtbSQ0:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/BOoxfjJu1k4" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6493
title: Ubuntu 12.10 Quantal &#8211; Script de post install
uri: Ubuntu-12-10-Quantal-Script-de-post-install
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/pZQS2hqhDys/ubuntu-12-10-quantal-script-de-post-install.html

content:
<p><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-thumbnail wp-image-6494" title="capture_052" src="http://blog.nicolargo.com/wp-content/uploads/2012/12/capture_052-150x132.png" alt="" width="150" height="132" />Je viens de mettre à jour mon dépôt GitHub des scripts de post installation d'Ubuntu pour prendre en compte le version 12.10 (Quantal). Pour rappel, ces scripts sont un moyen simple et modulaire de faire automatiquement un ensemble d'actions après l'installation standard du système d'exploitation.</p><p>Ce script fonctionne avec un fichier de configuration que vous pouvez adapter à vos besoins en suivant <a
href="https://github.com/nicolargo/ubuntupostinstall#readme">la documentation</a>. Trois fichiers de configurations sont disponibles sur le GitHub:</p><ul><li>pour un <a
href="https://github.com/nicolargo/ubuntupostinstall/blob/master/ubuntu-12.10-unity-postinstall.cfg">Ubuntu 12.10 Unity</a> (c'est le script utilisé par défaut)</li><li>pour <a
href="https://github.com/nicolargo/ubuntupostinstall/blob/master/ubuntu-12.10-gnomeshell-postinstall.cfg">Ubuntu 12.10 Gnome 3</a> (c'est celui que j'utilise sur mes machines <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> )</li><li>pour <a
href="https://github.com/nicolargo/ubuntupostinstall/blob/master/ubuntu-12.10-cinnamon-postinstall.cfg">Ubuntu 12.10 Cinnamon</a> (<del>fork de Gnome 2</del>, un autre WM basée sur Gnome 3)</li></ul><p>Pour lancer le script avec le fichier de configuration pour Gnome 3, il suffit de saisir les lignes de commandes suivantes:</p><pre class="crayon-plain-tag">wget https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.10-postinstall.py
chmod a+x ubuntu-12.10-postinstall.py
sudo ./ubuntu-12.04-postinstall.py -c https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-12.04-gnomeshell-postinstall.cfg</pre><p>L'objectif principal de ce script est bien sur de <strong>s'adapter à vous besoins</strong>. Je vous conseille donc de récupérer un fichier de configuration et de le modifier à votre convenance. Il suffira ensuite de lancer le script en passant en paramètre votre fichier de configuration. Vous pouvez pour vous aidez dans cette tache lire <a
href="http://blog.nicolargo.com/2012/04/preparer-larrivee-de-precise-pangolin-avec-un-script-de-postinstall.html">le précédant billet</a> sur le sujet qui reste valable pour la nouvelle version du script.</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/12/ubuntu-12-10-quantal-script-de-post-install.html">Ubuntu 12.10 Quantal &#8211; Script de post install</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=pZQS2hqhDys:LQqyP6Or5Ng:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=pZQS2hqhDys:LQqyP6Or5Ng:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/pZQS2hqhDys" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6500
title: Gérer son compte Amazon S3 en ligne de commande
uri: Gérer-son-compte-Amazon-S3-en-ligne-de-commande
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/_zw_p2dtr1o/gerer-son-compte-amazon-s3-en-ligne-de-commande.html

content:
<p
style="text-align: justify">Il y a quelques jours, <a
href="https://github.com/blog/1302-goodbye-uploads">un billet sur le blog officiel de GitHub</a> a particulièrement attiré mon attention. Pour faire court, GitHub vient de supprimer le "Tab Download" qui proposait un moyen simple d’héberger le téléchargement des sources/binaires en dehors du gestion de configurationen version. J'utilisais cette solution pour héberger les archives des différentes versions de <a
href="https://github.com/nicolargo/glances">Glances</a>  que j'utilisais dans mon script d'installation setup.py.</p><p
style="text-align: justify"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6501" alt="capture_057" src="http://blog.nicolargo.com/wp-content/uploads/2012/12/capture_057-580x143.png" width="580" height="143" /></p><p
style="text-align: justify">J'ai donc du trouver une solution alternative pour héberger ces fichiers. Trois solutions se présentaient à moi:</p><ul><li>Utiliser le "Tab Tag" de Github dans lequel est automatiquement généré les versions tagués (au sens Git). J'ai rapidement écarté cette solution car j'ai besoin d'un système plus souple (pour héberger par exemple des versions bêta, non taguées) et ouvert (par exemple pour héberger les futures binaires pour Glances Windows).</li><li>Héberger ces fichiers sur mon serveur dédié. C'est la solution la plus logique mais qui ne présente pas, à mon goût, assez de robustesse. En effet, en cas de panne/problème de mon serveur (ou de l'hébergeur) je souhaite que les utilisateurs puissent continuer à mettre à jour ou installer Glances.</li><li>Utiliser un service en ligne fait pour cela comme Amazon Simple Storage Service (Amazon S3 pour les intimes).</li></ul><p>C'est donc sur cette dernière solution que je suis parti.</p><h1>Amazon S3 ? C'est quoi donc ?</h1><p>C'est un service dans "les nuages" permettant de stocker des objets (répertoires, fichiers) dans des buckets (librairies). On peut ensuite accéder à nos objet via une simple URL (par exemple: <strong>https://s3.amazonaws.com/glances/glances-1.5.1.tar.gz</strong>).</p><p>Il est payant mais relativement peu coûteux pour l’hébergement de petits fichiers (voir la grille tarifaire <a
href="http://aws.amazon.com/fr/s3/#pricing">ici</a> et le détail de l'offre <a
href="http://aws.amazon.com/fr/s3/">là</a>).</p><p>J'ai donc commencé par créer un compte puis par tester le stockage de mes premiers fichiers à partir de la console en ligne proposée par Amazon.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6502" alt="capture_058" src="http://blog.nicolargo.com/wp-content/uploads/2012/12/capture_058-580x276.png" width="580" height="276" /></p><p>Comme la plupart des interfaces de ce type, elle est très simple à utiliser mais montre ces limites quand on souhaite automatiser les taches comme par exemple publier par script un nouveau fichier dans une librairie.</p><h1>s3cmd, le couteau suisse de Amazon S3</h1><p>Heureusement, la ligne de commande vient à notre secours grâce au logiciel open-source <strong>s3cmd</strong>.</p><p>On commence par installer s3cmd sur notre système GNU/Linux (Debian / Ubuntu):</p><pre class="crayon-plain-tag">sudo apt-get install s3cmd</pre><p>Puis on effectue la configuration initiale qui va permettre de donner les autorisation nécessaire à votre machine pour accéder à votre espace S3. Pour cela, nous avons besoins des clés publique (1) et privé (2) de notre compte Amazon AWS (via <a
href="http://aws-portal.amazon.com/gp/aws/developer/account/index.html?action=access-key">cette page</a>):</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6503" alt="capture_055" src="http://blog.nicolargo.com/wp-content/uploads/2012/12/capture_055-580x317.png" width="580" height="317" /></p><p>... de saisir la commande suivante:</p><pre class="crayon-plain-tag">s3cmd --configure</pre><p>et de se laisser guider...</p><p>Une fois cette commande terminé, vous devriez pouvoir accéder à votre compte Amazon S3 depuis la ligne de commande de votre machine.</p><h1>Guide d'utilisation de s3cmd</h1><h3>Créer un bucket (mb)</h3><p>Un bucket est le conteneur de plus haut niveau dans la terminologie d'Amazon S3. On peut le voir comme un disque dur dédié ou comme une librairie. Dans mon cas précis, j'ai donc commencé par créer le bucket glances en utilisant la commande suivante:</p><pre class="crayon-plain-tag">s3cmd mb s3://glances</pre><p></p><h3>Affiche la liste de vos buckets</h3><p>On peut vérifier que l'opération c'est bien passée en affichant la liste des buckets disponibles:</p><pre class="crayon-plain-tag">s3cmd ls
2012-12-14 14:35 s3://glances</pre><p></p><h3>Ajouter un nouveau fichier (objet) dans un bucket</h3><p>On peut ensuite ajouter un objet de type fichier dans ce bucket.</p><p>Par défaut, un objet est privé (donc seulement accessible avec les clés privée et publique de votre compte).</p><p>&nbsp;</p><pre class="crayon-plain-tag">s3cmd put glances-1.5.1.tar.gz s3://glances/glances-1.5.1.tar.gz</pre><p>Pour créer le même objet mais de manière publique (donc accessible depuis une URL), on doit saisir:</p><pre class="crayon-plain-tag">s3cmd put --acl-public --guess-mime-type glances-1.5.1.tar.gz s3://glances/glances-1.5.1.tar.gz</pre><p></p><h3>Afficher le contenu d'un bucket</h3><p>Pour afficher le contenu d'un bucket:</p><pre class="crayon-plain-tag">s3cmd ls s3://glances
2012-12-14 14:36 647418 s3://glances/glances-1.5.1.tar.gz</pre><p></p><h3>Comment télécharger ces objets ?</h3><p>Pour télécharger un fichier depuis un bucket, on peut soit directement utiliser son URL publique (pour les objets publics) : <strong>https://s3.amazonaws.com/glances/glances-1.5.1.tar.gz</strong></p><p>ou en ligne de commande (pour tous les objets):</p><pre class="crayon-plain-tag">s3cmd get s3://glances/glances-1.5.1.tar.gz glances-1.5.1.tar.gz</pre><p></p><h3>Supprimer un fichier dans un bucket</h3><p>On doit saisir la ligne de commande:</p><pre class="crayon-plain-tag">s3cmd del s3://glances/glances-1.5.1.tar.gz</pre><p></p><h3>Supprimer un bucket</h3><p>Un bucket doit être vide avant d'être supprimé par la commande:</p><pre class="crayon-plain-tag">s3cmd rb s3://glances</pre><p></p><h3>Synchronisation</h3><p>Si vous souhaitez, avec s3cmd, gérer des structures de données plus complexes sur votre espace Amazon S3, il est également possible d'utiliser les fonctions de synchronisation (voir la documentation <a
href="http://s3tools.org/s3cmd-sync">ici</a>).</p><h1>Mot de fin</h1><p>Pour finir j'ai donc modifié mon script de génération de nouvelle version de Glances pour automatiser l'upload vers Amazon S3 et aussi changé mon script setup.py de cette façon:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6505" alt="capture_060" src="http://blog.nicolargo.com/wp-content/uploads/2012/12/capture_060-580x89.png" width="580" height="89" /></p><p>Et vous ? Que pensez-vous d'Amazon S3 ? Utlisateur ? Avec s3cmd ?</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/12/gerer-son-compte-amazon-s3-en-ligne-de-commande.html">Gérer son compte Amazon S3 en ligne de commande</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=_zw_p2dtr1o:TelBbrJ7vZE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=_zw_p2dtr1o:TelBbrJ7vZE:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/_zw_p2dtr1o" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6509
title: Musique: Mon TOP 2012
uri: Musique-Mon-TOP-2012
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/Fyb7j3Z-QXQ/musique-mon-top-2012.html
content:
<p>Il est temps, en cette fin d'année, de partager avec vous mon <strong>TOP musique 2012</strong>. Si vous avez lu mon billet sur la gestion de ma bibliothèque musicale, vous savez que j'utilise deux playlists sur mon compte Spotify. Dans la première (<a
href="http://open.spotify.com/user/nicolargo/playlist/01ypfwyNbxltRwigV7hB56">Coups d'oreille 2012</a>), je dépose en vrac les albums que je trouve intéressants ou que certains sites/magazines conseillent puis j'effectue une deuxième sélection après écoute. Dans la seconde (<a
href="http://open.spotify.com/user/nicolargo/playlist/342Nxz8gDdbfmdnmwVE7dZ">TOP 2012</a>), je dépose une sélection des titres les plus représentatifs de l'année écoulée.</p><p>C'est cette liste que vous pouvez écouter ici:</p><p><iframe
width="300" height="380" src="https://embed.spotify.com/?uri=spotify:user:nicolargo:playlist:342Nxz8gDdbfmdnmwVE7dZ" frameborder="0" allowtransparency="true"></iframe></p><p>Comme vous pouvez le voir, j'ai des influences très pop-rock et cette année a été très riche en nouveautés avec notamment des coups de coeur comme <a
href="http://altjband.com/">Alt-J</a>, <a
href="http://www.revolvermusic.tv/">Revolver</a> ou <a
href="http://www.yoannlemoine.com/woodkid/">Woodkid</a>, avec, pou ces dernier un clip à tomber par terre.</p><p><iframe
width="500" height="281" src="http://player.vimeo.com/video/21604065" frameborder="0" webkitallowfullscreen="" mozallowfullscreen="" allowfullscreen=""></iframe></p><p><a
href="http://vimeo.com/21604065">Woodkid - Iron</a> from <a
href="http://vimeo.com/woodkidmusic">WOODKID</a> on <a
href="http://vimeo.com">Vimeo</a>.</p><p>Et vous , blogolecteurs, quelles sont vos découvertes de cette année ?</p><p>Partagez vos playlist ! La musique est faite pour ça.</p><p>Cet article <a
href="http://blog.nicolargo.com/2012/12/musique-mon-top-2012.html">Musique: Mon TOP 2012</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=Fyb7j3Z-QXQ:nF18fqppc30:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=Fyb7j3Z-QXQ:nF18fqppc30:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/Fyb7j3Z-QXQ" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6516
title: Glances 1.5.2: Les nouveautés
uri: Glances-1-5-2-Les-nouveautés
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/VWa9zEv7hUs/glances-152.html
content:
<p>Il y a quelques jours, j'ai mis en ligne la dernière version stable de Glances, mon outil de supervision système, dont nous allons, dans ce billet, découvrir les nouveautés de cette version 1.5.2.</p><h1>Screenshots</h1><p>On commence par l’aperçu général de Glances 1.5.2 dans une console (80x24):</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6517" alt="screenshot-console" src="http://blog.nicolargo.com/wp-content/uploads/2012/12/screenshot-580x369.png" width="580" height="369" /></p><p>et dans un terminal (terminator):</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6518" alt="screenshot-wide" src="http://blog.nicolargo.com/wp-content/uploads/2012/12/screenshot-wide-580x394.png" width="580" height="394" /></p><h1>Les nouveautés</h1><h3>CPU</h3><p>J'ai repris la zone de statistique CPU pour afficher les attributs suivants: IDLE, IOWait et IRQ. Ces informations sont affichés si l'espace est disponible.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6519" alt="cpu-wide" src="http://blog.nicolargo.com/wp-content/uploads/2012/12/cpu-wide.png" width="250" height="74" /></p><p>En cliquant sur la touche '1', Glances va switcher vers l'affichage des statistiques CPU par "core".</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6520" alt="percpu" src="http://blog.nicolargo.com/wp-content/uploads/2012/12/percpu.png" width="317" height="72" /></p><h3>Mémoire</h3><p>Grâce au travail d'<a
href="https://github.com/asergi">Alessio Sergi</a>, les statistiques concernant la mémoire sont agrémentés, si la place sur l'écran est disponible, des informations suivantes:</p><ul><li>active: RAM actuellement utilisée</li><li>inactive: RAM non utilisée actuellement</li><li>buffers: zone mémoire pour les informations systèmes (par exemple metadata des systèmes de fichiers)</li><li>cached: zone mémoire de cache</li></ul><h3>Processus</h3><p>Egalement avec la particition d'Alessio, nous avons repris la zone de processus qui affiche maintenant le résumé sur une seule ligne ainsi qu'une optimisation de l'espace.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6521" alt="capture_082" src="http://blog.nicolargo.com/wp-content/uploads/2012/12/capture_082.png" width="622" height="70" /></p><h3>Sensors</h3><p>Suite à une demande récurrente, j'ai également ajouté un module optionnel pour afficher les températures remontées par les capteurs. Pour cela Glances utilise la librairie Python nommé <a
href="http://pypi.python.org/pypi/PySensors/">PySensors</a> qu'il faut installer sur son système et qui va chercher les informations via LM-Sensors (qui doit bien sûr être installé et configuré sur votre système). A ma connaissance, seul les OS Linux sont compatibles.</p><p>Pour utiliser ce module, on doit commencer par installer PySensors:</p><pre class="crayon-plain-tag">sudo pip install pysensors</pre><p>Puis on lance Glances avec l'option -e:</p><pre class="crayon-plain-tag">glances -e</pre><p>Et voilà le résultat sur une machine avec 4 capteurs:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6522" alt="capture_083" src="http://blog.nicolargo.com/wp-content/uploads/2012/12/capture_083.png" width="191" height="89" /></p><h3>Amélioration de l'interface RPC</h3><p>L'interface RPC/JSON est la base du mode client serveur permettant de surveiller à distance une machine. Par exemple pour surveiller depuis la machine B l'état du système de la machine A, il faut:</p><p><strong>A&gt; glances -s</strong></p><p>Puis</p><p><strong>B&gt; glances -c &lt;@IP ou Nom de A&gt;</strong></p><p>On peut facilement voir que l'on regarde les statistiques d'une machine distante grâce au message en bas à gauche de l'écran:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6523" alt="capture_084" src="http://blog.nicolargo.com/wp-content/uploads/2012/12/capture_084-580x295.png" width="580" height="295" /></p><p>La liste exhaustive des méthodes RPC disponible est:</p><pre class="crayon-plain-tag">getSystem
{"linux_distro": "debian 6.0.6", "platform": "64bit", "os_name": "Linux", "hostname": "frodo", "os_version": "2.6.32-5-amd64"}
getCore
4
getCpu
{"iowait": 0.32641336989226583, "system": 0.26113069591476262, "idle": 97.401749576581707, "user": 1.9845932889502962, "irq": 0.0, "nice": 0.0}
getLoad
{"min1": 0.0, "min5": 0.059999999999999998, "min15": 0.01}
getMem
{"inactive": 1631744000, "cached": 1974865920, "used": 1384603648, "buffers": 585797632, "active": 1932537856, "total": 4080373760, "percent": 33.899999999999999, "free": 2695770112}
getMemSwap
{"total": 1069277184, "percent": 12.800000000000001, "free": 932536320, "used": 136740864}
getSensors
[]
getNetwork
[{"interface_name": "eth0", "rx": 169437, "tx": 2082677}, {"interface_name": "eth1", "rx": 0, "tx": 0}, {"interface_name": "lo", "rx": 385562, "tx": 385562}]
getDiskIO
[{"read_bytes": 0, "write_bytes": 0, "disk_name": "sda1"}, {"read_bytes": 24576, "write_bytes": 458752, "disk_name": "sda2"}, {"read_bytes": 0, "write_bytes": 0, "disk_name": "sda3"}]
getFs
[{"mnt_point": "/", "used": 22333382656, "device_name": "/dev/sda2", "avail": 910442115072, "fs_type": "ext4", "size": 982693486592}, {"mnt_point": "/boot", "used": 24039424, "device_name": "/dev/sda1", "avail": 164789248, "fs_type": "ext4", "size": 199108608}, {"mnt_point": "/dev", "used": 94208, "device_name": "udev", "avail": 2034892800, "fs_type": "tmpfs", "size": 2034987008}, {"mnt_point": "/lib/init/rw", "used": 0, "device_name": "tmpfs", "avail": 2040184832, "fs_type": "tmpfs", "size": 2040184832}]
getProcessCount
{"running": 1, "total": 143, "sleeping": 142}
getNow
"2012-12-30 12:13:45"</pre><p></p><h1>Installation et mise à jour</h1><p>Le mieux est de suivre la procédure adaptée à votre système <a
href="http://nicolargo.github.com/glances/">en consultant le site officiel de Glances</a> ou vous pourrez également consulter la documentation complète.</p><h1>Contributeurs ? J'ai besoin de vous !</h1><p>En plus de toutes les remontées de bug / demandes d'améliorations que vous pouvez effectué <a
href="https://github.com/nicolargo/glances/issues?state=open">via cette interface Web sur le GitHub officiel du projet</a>, j'aurai également besoin de contributeurs pour:</p><ul><li>maintenir <a
href="https://launchpad.net/glances">le PPA officiel</a> du site et proposer des versions packagées de Glances pour <strong>Ubuntu</strong> et ses forks (juste pendant une période temporaire vu que Glances est <a
href="http://packages.debian.org/fr/sid/glances">maintenu officiellement dans Debian Sid</a> et devrait donc être intégré de base dans la prochaine version d'Ubuntu)</li><li>maintenir un packaging "all in one" de Glances pour <strong>Windows</strong> 32 bits et 64 bits (c'est à dire en suivant <a
href="http://nicolargo.github.com/glances/">la procédure d'installation</a> sur le site officiel et en utilisant <a
href="http://www.pyinstaller.org/">le module PyInstaller</a> pour générer un binaire). Je pourrai ensuite héberger ces binaires sur mon espace Amazon S3.</li><li>participer au développement de la prochaine version de Glances, j'ai nommé la 1.6 dont la roadmap, en cours de conception, est <a
href="https://github.com/nicolargo/glances/issues?milestone=2&amp;page=1&amp;state=open">disponible ici</a>.</li></ul><p>Il ne me reste plus qu'à vous souhaitez une bonne fin d'année 2012 !</p><p
style="text-align: right;"><span
style="color: #808080;"><em>See you soon on the moon.</em></span></p><p>Cet article <a
href="http://blog.nicolargo.com/2012/12/glances-152.html">Glances 1.5.2: Les nouveautés</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=VWa9zEv7hUs:XH__CZMyor0:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=VWa9zEv7hUs:XH__CZMyor0:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/VWa9zEv7hUs" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6530
title: Statistiques 2012 du Blog de Nicolargo
uri: Statistiques-2012-du-Blog-de-Nicolargo
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/Ft3eY48pVrI/statistiques-2012-du-blog-de-nicolargo.html

content:
<p>En ce début d'année, je vous souhaite chers lecteurs, une merveilleuse année 2013 à vous et à vos proches.</p><p>Comme chaque année, je profite, le temps d'un billet, d'un moment calme pour  partager avec vous le bilan de l'année 2012 de ce blog, chiffres et requêtes SQL à l'appui.</p><h2>Quelques chiffres...</h2><p>Au niveau général, vous avez été plus de <strong>1.000.000</strong> à venir sur ce site cette année, ce qui représente <strong>1.900.000</strong> pages vues. Au mois de décembre, la barre des <strong>10.000</strong> commentaires depuis la création du blog en novembre 2006 a été franchie.</p><p>Après un pic au moi d'avril, le trafic s'est relativement tassé avec notamment un baisse de visiteurs venant de gOOgle. Je peux assez facilement expliquer cette baisse par la faible fréquence de mise à jour du blog (voir plus bas) et le temps de chargement relativement long de mon thème WordPress qui commence un peu à dater.</p><p>Sur ce dernier point, un des objectif de cette prochaine année est de re-développer un nouveau thème HTML5/CSS3.</p><h2>Nombre de billets publiés en 2012</h2><p></p><pre class="crayon-plain-tag">SELECT COUNT(*) FROM wp_posts WHERE post_status="publish" AND post_date BETWEEN '2012-01-01' AND '2012-12-31';</pre><p><span
style="text-decoration: underline;">Résultat</span>: <strong>58</strong> billets (contre 122 en 2011 et 161 en 2010)</p><p>Comme prévu, le nombre d'articles a baissé à environ 1 par semaine. Entre mon activité professionnelle et l'investissement que j'ai mis dans le développement de <a
href="http://blog.nicolargo.com/tag/glances">Glances</a> c'était le maximum que je pouvais faire. Je pense garder le même rythme l'année prochaine.</p><h2>Nombre de commentaires postés en 2012</h2><p></p><pre class="crayon-plain-tag">SELECT SUM(comment_count) FROM wp_posts WHERE post_status=&quot;publish&quot; AND post_date BETWEEN '2011-01-01' AND '2011-12-31' GROUP BY post_status;</pre><p><span
style="text-decoration: underline;">Résultat</span>: <strong>1197</strong> commentaires (contre 1796 en 2011 et 1341 en 2010)</p><p>Une seule chose à dire: Merci à vous. 10.000 commentaires au total sur le blog. Une grande fierté pour moi.</p><h2>Liste des 10 billets les plus commentés en 2012</h2><p></p><pre class="crayon-plain-tag">SELECT post_title,comment_count FROM wp_posts WHERE post_status=&quot;publish&quot; AND post_date BETWEEN '2011-01-01' AND '2011-12-31' ORDER BY comment_count DESC LIMIT 0,10;</pre><p><span
style="text-decoration: underline;">Résultat</span>:</p><p><strong>73</strong> - <a
href="http://blog.nicolargo.com/2012/02/cherche-beta-testeurs-pour-glances-1-4.html">Cherche beta-testeurs pour Glances 1.4</a></p><p><strong>63</strong> - <a
href="http://blog.nicolargo.com/2012/11/glances-1-5-est-arrive.html">Glances 1.5 est arrivé</a></p><p><strong>49</strong> - <a
href="http://blog.nicolargo.com/2012/07/modeles-de-presentation-html5-pour-remplacer-powerpoint.html">Modeles de presentations HTML5 pour remplacer PowerPoint</a></p><p>42 - <a
href="http://blog.nicolargo.com/2012/05/auto-heberger-son-service-web-de-partage-de-fichiers.html">Auto-heberger son service Web de partage de fichiers</a></p><p>42 - <a
href="http://blog.nicolargo.com/2012/11/le-difficile-choix-des-outils-de-supervision-des-reseaux.html">Le difficile choix des outils de supervision des reseaux</a></p><p>41 - <a
href="http://blog.nicolargo.com/2012/06/partager-simplement-des-fichiers-sur-le-web-avec-dropcenter.html">Partager simplement des fichiers sur le Web avec DropCenter</a></p><p>41 - <a
href="http://blog.nicolargo.com/2012/11/installation-pas-a-pas-dun-serveur-de-supervision-shinken.html">Installation pas a pas d'un serveur de supervision Shinken</a></p><p>40 - <a
href="http://blog.nicolargo.com/2012/04/selection-de-logiciels-libres-de-comptabilite-personnelle.html">Selection de logiciels libres de comptabilite personnelle</a></p><p>35 - <a
href="http://blog.nicolargo.com/2012/02/proteger-son-serveur-en-utilisant-fail2ban.html">Proteger son serveur en utilisant Fail2Ban</a></p><p>34 - <a
href="http://blog.nicolargo.com/2012/04/preparer-larrivee-de-precise-pangolin-avec-un-script-de-postinstall.html">Preparer l'arrivee de Precise Pangolin avec un script de postinstall</a></p><h2>Top 10 des lecteurs ayant le plus posté de commentaires en 2012</h2><p></p><pre class="crayon-plain-tag">SELECT comment_author,COUNT(comment_count) AS F01 FROM wp_comments,wp_posts WHERE comment_approved=1 AND comment_post_ID=ID AND comment_date BETWEEN '2011-01-01' AND '2011-12-31' GROUP BY comment_author ORDER BY F01 DESC LIMIT 0,10;</pre><p><span
style="text-decoration: underline;">Résultat (moi mis à part...)</span>:</p><p><strong>45</strong> - <a
href="http://blog.info16.fr/">bartounet</a></p><p><strong>12</strong> - Gabriel</p><p><strong>11</strong> - NourSs</p><p>11 - Ben</p><p>11 - Idleman</p><p>10 - Nono</p><p>10 - issa</p><p>9 - Romain</p><p>9 - Vincent</p><p>A très bientôt pour un nouveau "vrai" billet !</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/01/statistiques-2012-du-blog-de-nicolargo.html">Statistiques 2012 du Blog de Nicolargo</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=Ft3eY48pVrI:Mt-a3qvkn6A:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=Ft3eY48pVrI:Mt-a3qvkn6A:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/Ft3eY48pVrI" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6536
title: Installation et prise en main d&#8217;OpenVAS, le fork de Nessus
uri: Installation-et-prise-en-main-d-OpenVAS-le-fork-de-Nessus
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/JsSCObMBgkM/installation-et-prise-en-main-dopenvas-le-fork-de-nessus.html

content:
<p>Depuis sa version 3, Nessus, le logiciel phare dans le petit monde des scanners de vulnérabilités des systèmes d'information est passé sous licence propriétaire. Comme c'est souvent ce genre de cas un fork de sa version 2 (qui était sous licence GPL) a rapidement vu le jour: <strong>OpenVAS</strong>. Nous allons dans ce billet en détailler l'installation et la première utilisation.</p><h1>Scanner de vulnérabilités ? Kezako ?</h1><p>Tout comme Nessus, OpenVAS est donc un scanner de vulnérabilités. On pourrait aussi l'appeler un logiciel d'aide aux audits de sécurités. Il se présente sous la forme d'un client / serveur.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6538" alt="OpenVAS4-Software" src="http://blog.nicolargo.com/wp-content/uploads/2013/01/OpenVAS4-Software.png" width="500" height="351" /></p><p>Le client permettant de définir le périmètre (plage d'adresse, type de machine) et les paramètres de l'audit (audit externe ou interne). Il se décline en CLI (ligne de commande), GUI (interface graphique) et API (Python notamment). Il est disponible sous <a
href="http://www.openvas.org/install-packages.html">GNU/Linux et Windows</a>.</p><p>Le serveur effectuant le scan des différentes vulnérabilités (appelés <strong>NVT</strong> pour "Network Vulnerability Test") disponibles dans sa base (plus de <strong>25.000 NVTs</strong> à l'heure de rédaction de ce billet). Le serveur existe uniquement sous GNU/Linux.</p><h1>Installation du serveur OpenVAS</h1><p>Pour mes tests, je dispose d'une machine sous Ubuntu 12.04 LTS. La procédure suivante est donc donnée à titre indicatif pour ce système d'exploitation.</p><p>On commence par installer le package OpenVAS Serveur disponible dans les dépôts d'Ubuntu:</p><pre class="crayon-plain-tag">sudo apt-get install openvas-server</pre><p>On doit ensuite créer un couple login/password pour limiter l'accès au serveur:</p><pre class="crayon-plain-tag">sudo openvas-adduser
sudo service openvas-server restart</pre><p>Il est possible que le premier lancement du serveur prenne un peu de temps car il charge l'ensemble des NVTs.</p><h1>Installation du client OpenVAS</h1><p>Il est possible d'installer le client sur n'importe quelle machine du réseau ou bien directement sur le serveur (c'est ce que j'ai fait pour mes tests).</p><p>On installe les packages:</p><pre class="crayon-plain-tag">sudo apt-get install openvas-client htmldoc</pre><p><em>Note: le module htmldoc sert uniquement pour l'export au format HTML des rapports.</em></p><h1>Première utilisation d'OpenVAS</h1><p>Le client graphique OpenVAS se nomme <strong>openvas-client</strong>, il faut donc le lancer via un terminal ou votre launcher Unity/Gnome. Au premier lancement, il faut commencer par se connecter au serveur via le menu <strong>Fichier &gt; Connecter</strong>. On doit saisir le login/password.</p><p>Pour créer son premier audit de sécurité, le plus simple est de passer par le wizard disponible via le menu <strong>Fichier &gt; Scan assistant</strong>.</p><p>Il est alors possible de choisir le contexte de l'audit (description) et la cible (une machine, un réseau...).</p><p>Le lancement de l'audit se fera automatiquement. Le temps d’exécution dépend du nombre de machines, de la rapidité de votre réseau et du nombre de services à tester sur vos cibles.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6540" alt="capture_085" src="http://blog.nicolargo.com/wp-content/uploads/2013/01/capture_085.png" width="495" height="229" /></p><p>&nbsp;</p><p>A la fin, un rapport est généré et accessible en archive:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6539" alt="capture_086" src="http://blog.nicolargo.com/wp-content/uploads/2013/01/capture_086-580x314.png" width="580" height="314" /><br
/> Il est bien sur possible d'exporter le rapport (format XML, HTML, PDF...) via le menu <strong>Rapport &gt; Exporter</strong>.</p><p>Si l'interface de GUI est pratique pour des audits "one shot", il peut être également utile de regarder du cité de<a
href="http://pypi.python.org/pypi/openvas.omplib"> l'API Python</a> qui permet une utilisatino avancé du serveur OpenVas et pourquoi pas une automatisation des lancements.</p><h1>Configuration avancée d'OpenVAS</h1><p>C'est dans le fichier de configuration <strong>/etc/openvas/openvasd.conf</strong> que l'on trouve la définition du chemin vers les NVT (sortes de plugins pour OpenVAS):</p><pre class="crayon-plain-tag"># Directory where plug-ins are to be found
plugins_folder = /var/lib/openvas/plugins</pre><p>Ce répertoire contient des fichiers au format .nasl avec:</p><ul><li>une <a
href="http://www.openvas.org/compendium/basic-structure-of-nasl-scripts.html">structure</a></li><li>une <a
href="http://www.openvas.org/compendium/basic-nasl-syntax.html">syntaxe</a></li><li>des <a
href="http://www.openvas.org/compendium/nasl-api-documentation.html">fonctions</a></li></ul><p>Si vous souhaitez développer vos propres scripts, il va falloir se plonger dans <a
href="http://www.openvas.org/nvt-dev.html">la documentation officielle</a>. Le plus simple est de partir du <a
href="https://wald.intevation.org/scm/viewvc.php/trunk/openvas-plugins/template.nasl?root=openvas&amp;view=markup">template.nasl</a> de référence et de tester pas à pas mais avant cela, je vous conseille de regarder la base des <a
href="http://www.openvas.org/openvas-nvt-feed.html">25.000 NVT disponibles</a>, régulièrement <a
href="http://www.openvas.org/openvas-nvt-feed-current.tar.bz2">mise à jour</a>, vous trouverez sûrement votre bonheur.</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/01/installation-et-prise-en-main-dopenvas-le-fork-de-nessus.html">Installation et prise en main d&#8217;OpenVAS, le fork de Nessus</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=JsSCObMBgkM:9vyuGCuxWLE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=JsSCObMBgkM:9vyuGCuxWLE:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/JsSCObMBgkM" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6545
title: Besoin de bêta testeurs pour Glances 1.6
uri: Besoin-de-bêta-testeurs-pour-Glances-1-6
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/D82dd4_hvHY/besoin-de-beta-testeurs-pour-glances-1-6.html

content:
<p
style="text-align: justify;">Glances 1.6 est en plein développement. Une version bêta vient d'être mise à disposition <a
href="https://github.com/nicolargo/glances">sur le GitHub officiel</a>. J'ai donc besoin de VOUS pour tester, trifouiller, charger cette version avant sa publication. Je prend en charge de mon coté les tests sous <strong>Ubuntu et Debian</strong> mais je n'ai pas le temps de mener tous les tests sur les autres distributions et OS.</p><p
style="text-align: center;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter  wp-image-5871" alt="ineedyou" src="http://blog.nicolargo.com/wp-content/uploads/2012/02/ineedyou.jpg" width="170" height="229" /></p><h1 style="text-align: justify;">Comment tester ?</h1><p
style="text-align: justify;">Le plus simple pour tester cette version sans casser son installation existante est de suivre la procédure donnée <a
href="https://github.com/nicolargo/glances/wiki/Install-and-test-Glances-development-version">dans cette page du Wiki</a> pour GNU/Linux (sous Windows, il faut au préalable <a
href="https://github.com/nicolargo/glances#concerning-windows-operating-system">installer quelques logiciels</a>).</p><p
style="text-align: justify;">Si vous rencontrez un bug, <a
href="https://github.com/nicolargo/glances/wiki/Install-and-test-Glances-development-version">merci de suivre cette procédure</a> pour me le remonter.</p><h1 style="text-align: justify;">Quoi tester ?</h1><p
style="text-align: justify;">Un peu tout... C'est à dire dans un premier temps un lancement de Glances en mode standalone:</p><p></p><pre class="crayon-plain-tag">~/tmp/glances/glances/glances.py</pre><p></p><p
style="text-align: justify;">En mode standalone avec le module sensor actif (si vous avez lm-sensors sur votre OS):</p><p></p><pre class="crayon-plain-tag">~/tmp/glances/glances/glances.py -e</pre><p>En chargeant le nouveau fichier de configuration qui permet de changer les limites des alertes (c'est une des grosses nouveauté de cette version):</p><pre class="crayon-plain-tag">~/tmp/glances/glances/glances.py -C ~/tmp/glances/glances/conf/glances.conf</pre><p></p><p
style="text-align: justify;"><em>Note: vous pouvez bien-sur modifier le fichier de configuration (glances.conf) pour l'adapter à vos besoins.</em></p><p
style="text-align: justify;">Puis en mode client/serveur en lançant d'abord le serveur:</p><p></p><pre class="crayon-plain-tag">~/tmp/glances/glances/glances.py -s</pre><p>Puis le client (sur la même machine):</p><pre class="crayon-plain-tag">~/tmp/glances/glances/glances.py -c localhost</pre><p></p><h1>Besoin de qui ?</h1><p>Une liste non exhaustive de bêta-testeurs dont j'ai besoin et qui utilisent les systèmes suivants:</p><ul><li>Arch Linux</li><li>Centos</li><li>Redhat</li><li>Gentoo</li><li>FreeBSD</li><li>NetBSD</li><li>OpenBSD</li><li>Mac OS</li><li>Windows 7</li><li>Windows 8</li><li>n'importe quel OS sous Python 3.x</li></ul><p>Merci d'avance à vous !</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/01/besoin-de-beta-testeurs-pour-glances-1-6.html">Besoin de bêta testeurs pour Glances 1.6</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=D82dd4_hvHY:R5voB8qlI8g:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=D82dd4_hvHY:R5voB8qlI8g:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/D82dd4_hvHY" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6555
title: Glances 1.6: Les nouveautés
uri: Glances-1-6-Les-nouveautés
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/bzYnciiOijE/glances-1-6-les-nouveautes.html
content:
<p>Ce week-end, j'ai mis en ligne la dernière version de Glances. Cette version 1.6 apporte son lot de correction de bugs et de nouveautés que nous allons détailler dans ce billet.</p><p>On commence par un aperçu de l'interface de Glances 1.6 dans un terminal:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6556" alt="Glances 1.6" src="http://blog.nicolargo.com/wp-content/uploads/2013/01/capture_009-580x345.png" width="580" height="345" /></p><h1>Mise en place d'un fichier de configuration</h1><p>Jusqu'à la version précédente, il était impossible pour l'utilisateur de fixer lui même les limites déclenchant les alertes. La version 1.6 introduit donc<strong> un fichier de configuration</strong> permettant de répondre à ce besoin. Sur un système GNU/Linux, le fichier de configuration par défaut se trouve dans dans le répertoire /etc/glances et se  nomme glances.conf.</p><p>C'est un fichier au format texte de la forme: <a
href="https://gist.github.com/4647457">https://gist.github.com/4647457</a></p><p>Comme vous pouvez le voir il défini pour chaque section de statistique (CPU, LOAD, MEM...) les limites de type Careful (à surveiller), Warning (à traiter), Critical (à traiter en urgence). Les limites utilisées sont maintenant accessibles dans la fenêtre d'aide sous la forme d'un tableau:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6558" alt="capture_015" src="http://blog.nicolargo.com/wp-content/uploads/2013/01/capture_015.png" width="409" height="197" /></p><p>Je pense dans les prochaines versions utiliser ce même fichier pour configurer d'autres aspects de Glances, comme les couleurs ou l'emplacement des statistiques.</p><h1>Amélioration du mode client/serveur</h1><p>La version 1.5 de Glances introduisait un mode client/serveur basée sur XMLRPC pour surveiller à parti d'un client local une machine distante (GNU/Linux, BSD, MAC OS X et même Windows).</p><p>En rapport avec l'ajout d'un fichier de configuration, j'ai modifié le mode client/serveur  pour que <strong>le serveur envoie son jeu de limite au client</strong>. Ainsi, il est possible à partir d'une même machine cliente de superviser plusieurs serveurs ayant des limites différentes.</p><p>Autre nouveauté attendue par pas mal d'utilisateurs: l'ajout "d'un peu" de sécurité pour l'accès à un serveur Glances. J'ai ainsi ajouté le tag <strong>-P password</strong> (notez le P majuscule) permettant de définir un mot de passe à partager entre le client et le serveur. Ce n'est bien sûr pas une sécurité totale car le client de communication TCP/JSON n'est pas chiffré. Pour encore plus de sécurité le mieux est de passer par un tunnel SSH (il existe pas mal de tutos sur le sujet sur la toile).</p><h1>Débits d'Entrées/Sorties (IO Rate) par processus</h1><p>Lorsque que la taille de votre fenêtre le permet, Glances permet d'afficher les débits (en octets/seconde) des processus. Ainsi, si une alerte est détectée sur la valeur CPU iowait alors les processus seront automatiquement classé par débit d'entrée/sortie.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6559" alt="capture_012" src="http://blog.nicolargo.com/wp-content/uploads/2013/01/capture_012-580x344.png" width="580" height="344" /></p><p>Attention, ces valeurs sont uniquement accessible sous GNU/Linux et par un utilisateur disposant des droits administrateurs.</p><h1>Modification de l'affichage par CPU</h1><p>Lors de l'activation de l'affichage par CPU (touche '<strong>1</strong>') et si l'information est disponible sur votre système d'exploitation, alors Glances affiche les statistiques de CPU iowait en lieu et place de CPU nice:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6560" alt="capture_016" src="http://blog.nicolargo.com/wp-content/uploads/2013/01/capture_016.png" width="189" height="72" /></p><p>Cette information peut être utile si des processus perdent du temps lors des accès disques. C'est un indicateur trsè important pour la supervision des serveurs (lire <a
href="http://blog.scoutapp.com/articles/2011/02/10/understanding-disk-i-o-when-should-you-be-worried">le très bon billet de ScoutApp</a> sur le sujet).</p><h1>Amélioration de l'affichage du type de tri des processus</h1><p>Je trouvais que l'affichage du type de tri sur les processus (automatique vs manuel) n'était pas clair. J'ai donc modifié celui-ci pour afficher clairement si:</p><p>on est en tri automatique ou manuel:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6561" alt="capture_018" src="http://blog.nicolargo.com/wp-content/uploads/2013/01/capture_018.png" width="621" height="39" /></p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6562" alt="capture_017" src="http://blog.nicolargo.com/wp-content/uploads/2013/01/capture_017.png" width="588" height="36" /></p><p>puis de voir quel est le critère de tri dans le colonne (souligné en mode automatique, en gras pour le mode manuel):</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6563" alt="capture_020" src="http://blog.nicolargo.com/wp-content/uploads/2013/01/capture_020.png" width="532" height="93" /><br
/> <img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6564" alt="capture_019" src="http://blog.nicolargo.com/wp-content/uploads/2013/01/capture_019.png" width="532" height="93" /></p><h1>Mise à jour de l'API</h1><p>Dernier point pour cette version, j'ai ajouté une nouvelle interface à l'API pour récupérer les limites du serveur via getAllLimits (méthode RCP).</p><h1>Installation et mise à jour de Glances</h1><p>Convaincu par cette nouvelle version ?</p><p>Il est donc temps de mettre à jour votre installation. Deux solutions:</p><ul><li>attendre que les packets managers fassent leur boulot pour votre distribution favorite</li><li>lire <a
href="http://nicolargo.github.com/glances/">la documentation officielle</a> pour mettre à jour vous même votre Glances</li></ul><p>J'attend vous retours <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p><p>Quelques liens pour finir:</p><ul><li><span
style="line-height: 13px;">Le site officiel de Glances: <a
href="http://nicolargo.github.com/glances/">http://nicolargo.github.com/glances/</a></span></li><li>Le GitHub: <a
href="https://github.com/nicolargo/glances">https://github.com/nicolargo/glances</a></li><li>Si vous aimez Glances, merci de lui ajouter une petite étoile <a
href="https://github.com/nicolargo/glances">en cliquant ici <img
src='http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </a></li><li>N'hésitez pas à remonter les problèmes ou les demandes de fonctions <a
href="https://github.com/nicolargo/glances/issues/new">sur cette page</a>.</li></ul><p>Cet article <a
href="http://blog.nicolargo.com/2013/01/glances-1-6-les-nouveautes.html">Glances 1.6: Les nouveautés</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=bzYnciiOijE:r2DQY7WnYjU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=bzYnciiOijE:r2DQY7WnYjU:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/bzYnciiOijE" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6582
title: Utiliser Munin avec des hôtes SNMP
uri: Utiliser-Munin-avec-des-hôtes-SNMP
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/mP2EDmZ0FdE/utiliser-munin-avec-des-hotes-snmp.html

content:
<p>Avec le temps, je suis devenu un grand adepte de Munin, le logiciel de<a
title=" supervision" href="http://blog.nicolargo.com/nagios-tutoriels-et-documentations"> supervision</a> permettant de centraliser la gestion des graphes de données RRDTools.</p><p>Sa simplicité de prise en main et d'administration y est pour beaucoup. En effet, en une ligne de commande il est possible d'analyser une nouvelle machine à superviser. Munin va s'occuper de générer automatiquement tous les graphes possibles et imaginables. Cette simplicité est notamment dû à l'architecture client/serveur de Munin qui masque en grande parti la complexité des mécanismes de récupération de données à grapher.</p><p>Pour superviser un hôte comme des équipements réseaux (routeur Cisco, Switch...) ou des <em>appliances</em> (NAS...) sur lesquels il est impossible d'installer le client Munin, il faut passer par une configuration spécifique au niveau du serveur, utilisant le protocole <strong>SNMP</strong>, que nous allons détailler dans ce billet.</p><h1>Comment ça marche ?</h1><p>Contrairement au fonctionnement nominal de Munin, le serveur ne va pas passer par le client Munin pour récupérer les données mais par un plugin installé directement sur le serveur.</p><p>Dans le schéma suivant, honteusement copier/coller du site officiel, le serveur Munin (Dumbledore) va utiliser le le munin-node local pour aller chercher, via SNMP, les informations sur la machine hôte (Netopia).</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6583" alt="Munin-SNMP" src="media/6b3542a3.Munin-SNMP.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/01/Munin-SNMP.png" width="406" height="254" /></p><p>&nbsp;</p><h1>Comment ajouter un hôte SNMP à superviser ?</h1><p>Avant tout il faut avoir installé le serveur Munin sur une machine GNU/Linux (vous pouvez <a
href="http://blog.nicolargo.com/2012/01/installation-et-configuration-de-munin-le-maitre-des-graphes.html">suivre cet article pour vous aider</a>).</p><p>Ensuite, depuis votre serveur, il suffit de saisir la commande suivante pour ajouter l'hôte "netopia". Il faut bien sûr remplace netopia par le nom (FQND) ou l'adresse IP de votre hôte.</p><pre class="crayon-plain-tag">dumbledore:~# munin-node-configure --shell --snmp netopia
ln -s /usr/share/munin/plugins/snmp__if_ /etc/munin/plugins/snmp_netopia_if_1
ln -s /usr/share/munin/plugins/snmp__if_err_ /etc/munin/plugins/snmp_netopia_if_err_1
...</pre><p>Comme vous pouvez le voir, la commande munin-node-configuration avec le tag --snmp  va scanner la MIB SNMP de votre machine hôte et proposer une configuration automatique de tout les plugins (graphes) reconnus dans le répertoire /usr/share/munin/plugins. Vous pouvez ensuite les activer dans votre configuration de Munin en faisant un copier/coller de toutes les lignes ln -s ... ou bien plus simplement en remplaçant la commande précédente par:</p><pre class="crayon-plain-tag">dumbledore:~# munin-node-configure --shell --snmp netopia | sh</pre><p>Par défaut, munin-node-configuration utilise public comme communauté SNMP, il est possible de la configurer en ajoutant:</p><pre class="crayon-plain-tag">--snmpcommunity public</pre><p>La version de SNMP à utiliser peut également être configurée:</p><pre class="crayon-plain-tag">--snmpversion 3</pre><p>Il faut ensuite ajouter les lignes suivantes à votre fichier de configuration du serveur Munin (en laissant bien l'adresse IP 127.0.0.1 !!!):</p><pre class="crayon-plain-tag">[netopia]
    address 127.0.0.1
    use_node_name no</pre><p></p><h1> Appliquer la nouvelle configuration à votre serveur Munin</h1><p>Une fois vos différents hôtes ajoutés selon la procédure précédente,  vous devez faire prendre en compte la nouvelle configuration avec la commande:</p><pre class="crayon-plain-tag">service munin-node restart</pre><p>Les nouveaux graphes devraient apparaître après quelques minutes:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6585" alt="muninsnmp" src="media/3d78b853.muninsnmp-580x430.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/01/muninsnmp-580x430.png" width="580" height="430" /></p><p>Dans certains cas, si les graphes n'arrivent pas, il peut être utile de relancer complètement le serveur Munin en saisissant:</p><pre class="crayon-plain-tag">su - munin --shell=/bin/sh
/usr/share/munin/munin-update</pre><p></p><h1>Conclusion</h1><p>Avez vous des avis sur Munin, l'utiliser vous avec un pooling SNMP ?</p><p>Des scripts et astuces à partager ?</p><p><em>Source: <a
href="http://munin-monitoring.org/wiki/Using_SNMP_plugins">Site officiel de Munin</a>. </em></p><p>Cet article <a
href="http://blog.nicolargo.com/2013/01/utiliser-munin-avec-des-hotes-snmp.html">Utiliser Munin avec des hôtes SNMP</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=mP2EDmZ0FdE:o01sE3hsxWU:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=mP2EDmZ0FdE:o01sE3hsxWU:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/mP2EDmZ0FdE" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6593
title: Bootstrap pas à pas
uri: Bootstrap-pas-à-pas
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/JAr3YKcO750/bootstrap-pas-a-pas.html
content:
<p
style="text-align: justify;">Avec la généralisation des technologies JS, CSS3 et HTML5, il est aujourd'hui possible de faire des sites Web qui n'ont rien à envier aux interfaces des logiciels que l'on peut trouver sur nos machines. Le revers de la médaille est une complexité croissante qui nécessite de faire appel à des professionnels . Quand vous devez faire un site personnel ou pour une association, il est difficile, à moins de s'appeler Cresus, de passer par un Web designer.</p><p
style="text-align: justify;">Heureusement des frameworks libres permettent avec un minimum d'investissement et de connaissances de bâtir des sites Web dans les règles de l'art. Nous allons dans ce billet parler du plus médiatique d'entre eux: <a
href="http://twitter.github.com/bootstrap/index.html">Bootstrap</a>. L'idée n'est pas de traduire la documentation officielle qui est par ailleurs très bien faite, mais de partager avec-vous mes méthodes que je suis en train d'utiliser pour développer le prochain thème du Blog de Nicolargo qui sera, vous l'avez compris largement basé sur Bootstrap.</p><p
style="text-align: justify;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6621" alt="capture_037" src="media/24d13edc.capture_037.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_037.png" width="561" height="132" /></p><h1><img
class="alignnone  wp-image-6602" alt="footprint" src="media/9699abee.footprint.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/footprint.png" width="28" height="36" /> Créer l'arborescence de son projet</h1><p>Nous allons commencer par créer l'arborescence générale de notre site qui sera stocké, pour illustrer ce billet, dans le répertoire ~/projet de notre disque dur. On y télécharge&amp;&amp;décompresse la dernière version stable de Bootstrap.</p><pre class="crayon-plain-tag">mkdir ~/projet
cd ~/projet
wget http://twitter.github.com/bootstrap/assets/bootstrap.zip
unzip bootstrap.zip
rm bootstrap.zip</pre><p><span
style="color: #666699;"><strong>Note</strong>: Contrairement à la plupart des tutos que l'on peut trouver sur le net, je préfère conserver le répertoire bootstrap intact et utiliser d'autres répertoires pour stocker mes configurations spécifiques. Ainsi, la mise à jour de Bootstrap n'aura aucun impact sur mon site.</span></p><p>En plus de Bootstrap, j'ajoute également la dernière version du projet <a
href="http://fortawesome.github.com/Font-Awesome/#">Font Awesome</a> qui met à notre disposition un nombre important et varié d'icônes jusqu'à une résolution de 280 pixels.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6610" alt="capture_032" src="media/eae6673e.capture_032-580x88.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_032-580x88.png" width="580" height="88" /></p><pre class="crayon-plain-tag">cd ~/projet
git clone git://github.com/FortAwesome/Font-Awesome.git</pre><p>Les données spécifiques à notre site seront stockées dans l'arborescence suivante (à adapter à vos besoins)</p><pre class="crayon-plain-tag">cd ~/projet
mkdir css img js
touch index.html css/style.css</pre><p>On a donc l'arborescence suivante:</p><pre class="crayon-plain-tag">.
├── bootstrap
│   ├── css
│   │   ├── bootstrap.css
│   │   ├── bootstrap.min.css
│   │   ├── bootstrap-responsive.css
│   │   └── bootstrap-responsive.min.css
│   ├── img
│   │   ├── glyphicons-halflings.png
│   │   └── glyphicons-halflings-white.png
│   └── js
│       ├── bootstrap.js
│       └── bootstrap.min.js
├── css
│   └── style.css
├── Font-Awesome
│   ├── css
│       ├── font-awesome.css
│       └── ...
├── img
├── index.html
└── js</pre><p>On peut ensuite commencer à éditer la premier page de son site en utilisant son éditeur de texte de prédilection (moi c'est geany ou vim selon les jours):</p><pre class="crayon-plain-tag">geany index.html</pre><p>Voici le template que j'utilise:</p><pre class="crayon-plain-tag">&lt;!DOCTYPE html&gt;
&lt;html&gt;
    &lt;head&gt;
        &lt;title&gt;Bootstrap arena&lt;/title&gt;
        &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;
        &lt;!-- Bootstrap --&gt;
        &lt;link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen"&gt;
        &lt;link href="bootstrap/css/bootstrap-responsive.css" rel="stylesheet"&gt;
        &lt;!-- Font-Awesome --&gt;
        &lt;link href="Font-Awesome/css/font-awesome.min.css" rel="stylesheet"&gt;
        &lt;!-- My style --&gt;
        &lt;link href="css/style.css" rel="stylesheet" media="screen"&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;h1&gt;Hello Bootstrap !&lt;/h1&gt;
    &lt;/body&gt;
    &lt;footer&gt;
        &lt;script src="http://code.jquery.com/jquery.js"&gt;&lt;/script&gt;
        &lt;script src="bootstrap/js/bootstrap.min.js"&gt;&lt;/script&gt;
    &lt;/footer&gt;
&lt;/html&gt;</pre><p></p><p
style="text-align: justify;">Jusque là rien d’exceptionnel... Vous devriez voir s'afficher "Hello Bootstrap" en chargeant votre page dans un navigateur HTML. C'est à partir de maintenant que l'on va profiter de la puissance de Bootstrap !</p><h1><img
alt="footprint" src="media/9699abee.footprint.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/footprint.png" width="28" height="36" /> Définir vos grilles</h1><p
style="text-align: justify;">Par défaut, Bootstrap utilise un système avec une grille de 12 colonnes (<a
href="http://960.gs/demo.html">voir le site 960.gs</a> pour une explication de cette dernière phrase). Votre fenêtre de navigateur est ainsi divisée en 12 sections de tailles équivalentes.  Vous pouvez l'adapter à votre besoin en gardant ce chiffre à l'esprit. Par exemple pour créer une page Web avec 2 colonnes, il suffit d'ajouter les lignes suivantes entre les balises &lt;body&gt; ... &lt;/body&gt; de votre fichier HTML.</p><p></p><pre class="crayon-plain-tag">&lt;div class="container-fluid"&gt;
        &lt;div class="row-fluid"&gt;
            &lt;div class="span8"&gt;Article&lt;/div&gt;
            &lt;div class="span4"&gt;Sidebar&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;</pre><p>Ce qui donne une première colonne de taille 8/12 de la taille de votre fenêtre et une autre de 4/12:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6599" alt="capture_026" src="media/fb17d41c.capture_026-580x21.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_026-580x21.png" width="580" height="21" /></p><p>On utilise ici une disposition fluide (row-fluid) qui permet d'adapter dynamique la largeur de vos deux colonnes en fonctions de la taille de votre écran. Si vous voulez une taille de colonne fixe, il suffit de remplacer la classe <em>container-fluid</em> par <em>container</em>.</p><p
style="text-align: justify;">Bootstrap génère par défaut des espaces entre deux colonnes (environ 20 pixels pour une dic container). Il est  possible de générer des espaces supplémentaire avant ou entre vos colonnes en utilisant le paramètre de classe offset. Par exemple pour créer un espace de taille 1/12 d'écran entre vos deux colonnes, il suffit de modifier votre code de la manière suivante:</p><p></p><pre class="crayon-plain-tag">&lt;div class="container-fluid"&gt;
       &lt;div class="row-fluid"&gt;
            &lt;div class="span8"&gt;Article&lt;/div&gt;
            &lt;div class="offset1 span3"&gt;Sidebar&lt;/div&gt;
       &lt;/div&gt;
    &lt;/div&gt;</pre><p>On obtient:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6600" alt="capture_027" src="media/d0d29eb4.capture_027-580x21.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_027-580x21.png" width="580" height="21" /></p><p
style="text-align: justify;">Noter bien que la somme des span<strong>8</strong> + offset<strong>1</strong> + span<strong>3</strong> est toujours égale à <strong>12</strong>. Pour être tout à fait précis, la somme doit être égale à la taille de votre grille dans lequel votre balise row-fluid est imbriquée. Comme nous l'avons vu la grille par défaut à une valeur de 12. Mais il est possible d'utiliser une autre valeur en définissant une div chapeau.  Par exemple pour définir une grille de 6 et y créer deux colonnes de 4 et de 2, on doit utiliser le code suivant:</p><p></p><pre class="crayon-plain-tag">&lt;div class="row-fluid"&gt;
            &lt;div class="span6"&gt;
                &lt;div class="span4"&gt;Article&lt;/div&gt;
                &lt;div class="span2"&gt;Sidebar&lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;</pre><p>On obtient alors:</p><p
style="text-align: center;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter  wp-image-6601" alt="capture_028" src="media/0c0be040.capture_028.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_028.png" width="154" height="24" /></p><h1><img
alt="footprint" src="media/9699abee.footprint.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/footprint.png" width="28" height="36" /> "Responsive design" en une ligne</h1><p>Comme vous pouvez le voir il est possible d'imbriquer des grilles dans d'autres et ainsi découper facilement sa page sans se soucier des redimensionnements de fenêtres. En effet, tout le "<a
href="http://fr.wikipedia.org/wiki/Responsive_Web_Design">responsive design</a>" est géré par Bootstrap. Votre site sera donc automatiquement compatible avec les tablettes et les smartphones !</p><p>Le tableau suivant donne la liste des tags que l'on peut utiliser pour rendre son site compatible avec les différents supports:</p><div
id="attachment_6603" class="wp-caption aligncenter" style="width: 590px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><img
class="size-large wp-image-6603" alt="Source: http://twitter.github.com/bootstrap/scaffolding.html#layouts" src="media/ba208801.capture_029-580x197.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_029-580x197.png" width="580" height="197" /><p
style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Source: http://twitter.github.com/bootstrap/scaffolding.html#layouts</p></div><p>Comment lire ce tableau ? C'est relativement simple. Prenons un exemple. Nous voulons dans notre premier exemple avec deux colonnes (article et sidebar) cacher automatiquement la sidebar quand notre site est consulté depuis un smartphone. Nous allons pour cela afficher la classe .hidden-phone de la manière suivante:</p><pre class="crayon-plain-tag">&lt;div class="container-fluid"&gt;
        &lt;div class="row-fluid"&gt;
            &lt;div class="span8"&gt;Article&lt;/div&gt;
            &lt;div class="span4 hidden-phone"&gt;Sidebar&lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;</pre><p>Affichage sur un PC ou une tablette (ou un écran &gt; à 767 pixels):</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6605" alt="capture_030" src="media/65593bd8.capture_030-580x19.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_030-580x19.png" width="580" height="19" /></p><p>Affichage sur un smartphone (ou un écran de largeur &lt;= à 767 pixels):</p><p
style="text-align: center;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter  wp-image-6606" alt="capture_031" src="media/73f0732c.capture_031-580x28.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_031-580x28.png" width="365" height="18" /></p><p>Magique non ?</p><h1><img
alt="footprint" src="media/9699abee.footprint.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/footprint.png" width="28" height="36" /> Passons aux contenues de vos pages</h1><p>Nous avons maintenant une belle grille "responsive" qu'il va falloir remplir.</p><p
style="text-align: justify;">En plus des <a
href="http://twitter.github.com/bootstrap/base-css.html">éléments de bases</a> (texte, images, icônes, formulaire), Bootstrap propose des <a
href="http://twitter.github.com/bootstrap/components.html">composants avancées</a> (barre de navigation, menu, aperçu d'image, pagination, barre de progression) mais également un système de plugins avec des <a
href="http://twitter.github.com/bootstrap/javascript.html">composants dynamiques en JavaScript</a> (carrousel, popup, menu en accordéon, formulaire dynamique...). Je vous invite à consulter les liens données dans ce chapitre. Des idées pour votre prochain site viendront d'elles même.</p><p>Sources utilisées pour rédiger ce billet:</p><ul><li><a
href="http://twitter.github.com/bootstrap">La documentation officielle de Bootstrap</a></li><li><a
href="http://bootstrap.lesscss.ru/less.html">Utilisation de Less avec Bootstrap</a></li></ul><p>&nbsp;</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/02/bootstrap-pas-a-pas.html">Bootstrap pas à pas</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=JAr3YKcO750:GtDtSYUo0bo:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=JAr3YKcO750:GtDtSYUo0bo:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/JAr3YKcO750" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6659
title: Package d&#8217;installation pour Glances sous Windows
uri: Package-d-installation-pour-Glances-sous-Windows
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/z6zEyELqjic/package-dinstallation-pour-glances-sous-windows.html

content:
<p>Grâce au travail de Nicolas Bourges, Glances dispose désormais <a
href="http://sourceforge.net/projects/glancesnsis/">d'un installeur pour sa version Windows</a>. Vous pouvez donc installer Glances 1.6 en version 32 ou 64 bits sans avoir à installer les pré-requis (Python, librairie PsUtil...) puisque tout est "packagé" dans le binaire.</p><p>On commence par télécharger le programme d'installation:</p><p
style="text-align: center;"><a
href="https://s3.amazonaws.com/glances/glances-1.6.0-x64.exe"><img
class="size-full wp-image-3277 alignnone" alt="download" src="media/0d3b04ee.download.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2010/07/download.png" width="64" height="64" /></a><br
/> <a
href="https://s3.amazonaws.com/glances/glances-1.6.0-x64.exe"><strong>Télécharger Glances 1.6 en version 64 bits</strong></a><br
/> (ou en version <a
href="https://s3.amazonaws.com/glances/glances-1.6.0-x86.exe">32 bits</a>)</p><p><span
style="color: #999999;"><strong>MD5sum</strong></span><br
/> <span
style="color: #999999;">glances-1.6.0-x64.exe         <wbr></wbr>                 de2c35c4bdd6a3ab2b938ea5f4c156<wbr></wbr>7d</span><br
/> <span
style="color: #999999;">glances-1.6.0-x86.exe         <wbr></wbr>                 1d25902a2b1030f953a108792f4732<wbr></wbr>cf</span></p><p
style="text-align: left;">Puis on se laisse guider dans le wizard d'installation qui va mettre, par défaut, le binaire Glances.exe dans le répertoire C:\Program Files\Glances puis créer un raccourci sur votre bureau.</p><p
style="text-align: left;">En cliquant sur ce raccourci, Glances va se lancer automatiquement en mode serveur. Pour ajouter d'autres paramètres (comme le mot de passe) il suffit de modifier ce raccourci pour y ajouter les options voulues (par exemple -P &lt;motdepasse&gt;).</p><p
style="text-align: left;">Il ne vous reste plus qu'à revenir sur un vrai OS (ndlr: Nicolargo, tu me copieras 100 fois "Je ne trollerai plus.") puis à lancer la commande:</p><p></p><pre class="crayon-plain-tag">glances -c &lt;addresse IP machine Windows&gt;</pre><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6660" alt="glancesonwin7" src="media/3d679147.glancesonwin7-580x353.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/glancesonwin7-580x353.png" width="580" height="353" /></p><p>Et hop, vous pouvez maintenant surveiller vos machines Windows en une ligne de commande !</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/02/package-dinstallation-pour-glances-sous-windows.html">Package d&#8217;installation pour Glances sous Windows</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=z6zEyELqjic:-boZ6wwSX0I:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=z6zEyELqjic:-boZ6wwSX0I:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/z6zEyELqjic" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6615
title: Raspberry Pi 512, déballage et installation
uri: Raspberry-Pi-512-déballage-et-installation
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/61uzOnI5hrg/raspberry-pi-512-deballage-et-installation.html

content:
<p>Certains buzz démarrent <a
href="http://www.youtube.com/user/officialpsy">avec pas grand chose</a>, d'autre sont issus de vraies bonnes idées. Le<strong> Raspberry Pi B 512</strong> est de cette catégorie là. Proposer une carte mère pour moins de 30€ avec un <em>CPU ARM à 700 Mhz</em>, un <em>GPU bi-core</em> pour un affichage "full HD" et <em>512 Mo de RAM</em>. J'ai donc décidé d'acheter le modèle Raspberry PI B 512 avec un jolie boitier transparent. Ce kit est en vente chez <a
href="http://www.kubii.fr/">Kubii au prix de 50€</a> (au passage je tiens à signaler le très bon service client de Kubii. Service rapide et personnalisé. C'est suffisamment rare pour le signaler).</p><p>Passons au vis du sujet avec le déballage et l'installation de la bête.</p><h1>Pour quoi faire ?</h1><p>L'avantage d'un prix aussi bas est de pouvoir se lancer dans son achat sans avoir vraiment d'idée précise d'utilisation en tête. Après quelques jours, voici une liste de choses que l'on peut ou ne peut pas faire avec un Raspberry.</p><p><span
style="color: #008000;">Le Raspberry Pi B 512 est parfaitement adapté pour:</span></p><ul><li>Lire des fichiers audio et vidéo en haute définition (en utilisant <a
href="https://github.com/huceke/omxplayer">OMXplayer</a> le player spécifique du Raspberry Pi)</li><li>auto-héberger son site personnel (avec les limites d'usages au niveau du débit de la liaison montante de votre ligne Internet) avec une configuration basée sur <a
href="http://www.penguintutor.com/linux/light-webserver">LightHTTPd</a> ou sur <a
href="http://blog.nicolargo.com/2011/01/installation-automatique-de-nginx-php-fpm-memcached-sous-debian.html">Nginx</a></li><li>héberger son serveur VPN pour accèder à son réseau personnel depuis l'exterieur</li><li>superviser votre réseau (jusqu'à une centaine de machines avec 10 services/machine sans aucun problème) avec une installation de <a
href="http://blog.nicolargo.com/2012/11/installation-pas-a-pas-dun-serveur-de-supervision-shinken.html">Shinken</a> et de <a
href="http://blog.nicolargo.com/2012/01/installation-et-configuration-de-munin-le-maitre-des-graphes.html">Munin</a></li><li><a
href="http://trouch.com/2012/08/20/airpi-airplay-audio-sur-raspberry-fr/">créer une borne Airplay</a> à moindre prix (<a
href="http://jordanburgess.com/post/38986434391/raspberry-pi-airplay">autre article</a> en Anglais sur le même sujet)</li><li>développer des applications de domotique (quelques exemples <a
href="http://pautex.fr/domotique/raspberrypi.php">ici</a>, <a
href="http://www.pobot.org/-La-carte-Raspberry-PI-.html">là</a> et encore <a
href="http://www.instructables.com/id/Raspberry-Pi-GPIO-home-automation/">là</a>)</li><li>... pleins d'autres idées qui peuvent vous passer par la tête (en voir <a
href="http://korben.info/idees-raspberry-pi.html">50 chez l'ami Korben</a>)</li></ul><p><span
style="color: #ff6600;">Il peut être utilisé occasionnellement pour:</span></p><ul><li><span
style="line-height: 13px;">surfer sur Internet (mais il est vrai que l'on est habitué à un affichage rapide des pages, ce que l'on obtient pas avec le Raspberry Pi)</span></li><li>lire ces mails et faire un peu de bureautique simpliste</li></ul><p><span
style="color: #ff0000;">Passez votre chemin si vous voulez:</span></p><ul><li><span
style="line-height: 13px;">remplacer votre PC fixe ou mobile par un Raspberry Pi B 512...</span></li></ul><h1>Déballage</h1><p>Commençons par la fin en montrant le résultat: mon Raspberry PI B 512 en action avec un écran, un clavier et une souris.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6639" alt="Raspberry PI 512" src="media/d4b0cb04.capture_049.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_049.png" width="429" height="546" /></p><p>Regardons de plus prêt le coeur du système:</p> <a
href='http://blog.nicolargo.com/2013/02/raspberry-pi-512-deballage-et-installation.html/capture_043-3' title='capture_043'><img
width="150" height="150" src="media/7de65dba.capture_043-150x150.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_043-150x150.png" class="attachment-thumbnail" alt="capture_043" /></a> <a
href='http://blog.nicolargo.com/2013/02/raspberry-pi-512-deballage-et-installation.html/capture_044-3' title='capture_044'><img
width="150" height="150" src="media/1576085a.capture_044-150x150.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_044-150x150.png" class="attachment-thumbnail" alt="capture_044" /></a> <a
href='http://blog.nicolargo.com/2013/02/raspberry-pi-512-deballage-et-installation.html/capture_045-4' title='capture_045'><img
width="150" height="150" src="media/e759e2a3.capture_045-150x150.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_045-150x150.png" class="attachment-thumbnail" alt="capture_045" /></a> <a
href='http://blog.nicolargo.com/2013/02/raspberry-pi-512-deballage-et-installation.html/capture_042' title='capture_042'><img
width="150" height="150" src="media/74306570.capture_042-150x150.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_042-150x150.png" class="attachment-thumbnail" alt="capture_042" /></a> <a
href='http://blog.nicolargo.com/2013/02/raspberry-pi-512-deballage-et-installation.html/capture_046-2' title='capture_046'><img
width="150" height="150" src="media/cbe56fe9.capture_046-150x150.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_046-150x150.png" class="attachment-thumbnail" alt="capture_046" /></a> <a
href='http://blog.nicolargo.com/2013/02/raspberry-pi-512-deballage-et-installation.html/capture_047-2' title='Raspberry PI B 512'><img
width="150" height="150" src="media/34b3dada.capture_047-150x150.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_047-150x150.png" class="attachment-thumbnail" alt="Raspberry PI B 512" /></a><p>&nbsp;</p><h1>Installation</h1><h3>Choisir son système d'exploitation</h3><p>Le Raspberry Pi est compatible avec les systèmes d'exploitations GNU/Linux. Certaines distributions se sont spécialisées pour ce matériel spécifique. La liste des systèmes d'exploitations compatibles se trouve sur <a
href="http://www.raspberrypi.org/downloads">cette page du site officiel</a>. Mon choix c'est porté vers la <strong>Raspbian "Wheezy"</strong> qui est une distribution dérivée de Debian que je manipule tous les jours. Il existe également une autre distribution basée sur Arch Linux qui offre des performances équivalentes (voir <a
href="http://p3ter.fr/article18/raspberry-pi-raspbian-ou-archlinuxarm">l'article de P3ter sur le sujet</a>).</p><p>Le système d'exploitation doit être stocké sur une carte SD à insérer dans le lecteur du Raspberry PI. Pour mettre le système Raspbian sur la carte SD j'ai utilisé mon PC portable sous Ubuntu 12.10 qui dispose d'un lecteur intégré de carte SD. La procédure suivante est donc à adapter selon votre matériel.</p><p>On commence donc par télécharger l'image de la dernière version de Raspbian puis de vérifier avec le logiciel sha1sum que l'archive est complète.</p><pre class="crayon-plain-tag">$ wget http://files.velocix.com/c1410/images/raspbian/2013-02-09-wheezy-raspbian/2013-02-09-wheezy-raspbian.zip
$ sha1sum 2013-02-09-wheezy-raspbian.zip
b4375dc9d140e6e48e0406f96dead3601fac6c81  2013-02-09-wheezy-raspbian.zip</pre><p>La valeur barbare donnée par la commande sha1sum est à comparer avec celle de référence disponible sur <a
href="http://www.raspberrypi.org/downloads">la page de téléchargement</a>. Si elles différent alors il ne vous reste plus qu'à recommencer le téléchargement.</p><p>On peut ensuite décompresser le fichier pour obtenir l'image disque (2013-02-09-wheezy-raspbian.img dans mon cas):</p><pre class="crayon-plain-tag">$ unzip 2013-02-09-wheezy-raspbian.zip
inflating: 2013-02-09-wheezy-raspbian.img</pre><p></p><h3>Graver son système sur la carte SD (source: <a
href="http://elinux.org/RPi_Easy_SD_Card_Setup#Copying_an_image_to_the_SD_card_in_Linux_.28command_line.29">eLinux</a>)</h3><p>On commence par insérer la carte dans son lecteur (celui de mon PC portable dans mon cas), puis on utilise la commande df -h pour obtenir le point de montage (<strong>/dev/sdb1</strong> dans mon cas) correspondant à la carte SD. <span
style="color: #ff0000;">Attention de bien utiliser le point de montage pour éviter de formater votre disque système !!!</span>:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6617" alt="capture_036" src="media/13adb534.capture_036-580x156.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_036-580x156.png" width="580" height="156" /></p><p>Une fois le point de montage identifié, il faut saisir les commande suivante (<span
style="color: #ff0000;">en remplaçant /dev/sdb1 par votre point de montage</span>):</p><pre class="crayon-plain-tag">sudo dd bs=4M if=./2013-02-09-wheezy-raspbian.img of=/dev/sdb</pre><p>Quelques explications sur cette dernière commande:</p><ul><li><span
style="line-height: 13px;">elle doit être lancée avec les droits root (d'ou l'utilisation de sudo)</span></li><li>if donne l'emplacement de l'image de Raspbian "Wheezy"</li><li>of donne le point de montage racine (égal à votre point de montage sans le nombre finale soir /dev/sdb dans mon cas)</li><li>l’exécution va prendre un peu de temps...</li></ul><p>Très bien, votre carte contenant l'OS Raspbian "Wheezy" est prête à être utilisée !</p><p>Insérer votre carte dans le lecteur SD du Raspberry PI, brancher un clavier et l'alimentation micro USB et c'est parti !</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-medium wp-image-6640" alt="capture_048" src="media/a0388302.capture_048-300x189.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_048-300x189.png" width="300" height="189" /></p><h3>Configuration initiale du système</h3><p>Au premier démarrage, vous allez avoir droit au lancement automatique de l'utilitaire de configuration "raspi-config" qu'il est possible de rappeler par la suite en saisissant la commande suivante dans un terminal:</p><pre class="crayon-plain-tag">sudo raspi-config</pre><p>Raspi-config se présente sous la forme suivante:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6633" alt="capture_040" src="media/0c77c503.capture_040-580x335.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_040-580x335.png" width="580" height="335" /></p><p>Les différentes fonctions permettent de:</p><ul><li><strong>expand_rootfs</strong>: étendre la partition principale à la taille maximale de la carte SD (par exemple si vous avez une carte SD de 16 Go et que vous n'utilisez pas cette fonction, alors vous resterez avec une partition principale de 2 Go)</li><li><strong>overscan</strong>: force l'affichage de marge pour s'adapter à des écrans 16/9 ou supérieur.</li><li>configurer: le clavier (<strong>configure_keyboard</strong>), le mot de passe par défaut (raspberry) de l'utilisateur par défaut (pi) (<strong>change_pass</strong>) , votre lieu géographique (<strong>change_locale</strong>) et le temps (<strong>change_timezone</strong>)</li><li><strong>overclocking</strong>: comme Raspberry est une société intelligente, elle autorise l'overclocking de son matériel sans perte de la garantie (mais avec une durée de votre matériel qui risque de diminuer). Fonction à activer si vous voulez utilisez le Raspberry en mode graphique (comme client léger) ou tout autre besoin consommateur de CPU. On a le choix d'overcloking suivant:</li></ul><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6634" alt="capture_041" src="media/1825a502.capture_041.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_041.png" width="519" height="386" /></p><ul><li><strong>memory-split</strong>: pour définir la quantité de mémoire vive dédiée au GPU (64 Mo par défaut).</li><li><strong>ssh</strong>: permet de définir si le serveur SSH doit être lancé par défaut.</li><li><strong>boot_behavor</strong>: choisir si on veut démarrer le boitier en mode texte (utilisation serveur) ou graphique (client léger avec l'environnement <a
href="http://openbox.org/">OpenBox</a> + <a
href="http://lxde.org/">LXDE</a>).</li><li><strong>update</strong>: qui est en fait un raccourci vers la commande "apt-get update &amp;&amp; apt-get upgrade" et ainsi mettre à jour votre système (qui doit être connecté à Internet).</li></ul><h1>Premières impressions</h1><p>Comme lors de  <a
href="http://blog.nicolargo.com/2012/10/6338.html">mon test du Linutop 4</a>,  la première impression quand on utilise le Raspberry Pi avec son interface graphique LXDE, est un retour en arrière de quelques années ou il fallait attendre quelques secondes avant l'affichage des fenêtres. La lecture vidéo HD est par contre bleufante (voir le paragraphe en de billet), on voit que le GPU est parfaitement exploité.</p><p>Une fois dans un terminal, la machine réagi bien. Dans un très appréciable silence total, on utilise un système GNU/Linux minimaliste mais réactif.</p><h1>Quelques tests</h1><h3>CPU, GPU et RAM</h3><p>Sur ces aspects là, rien de notable, on est dans la norme avec ce type de matériel. Si vous voulez des chiffres pour comparer avec d'autres machines, je vous conseille la lecture de <a
href="http://elinux.org/RPi_Performance">cette page Wiki chez eLinux</a>.</p><h3>Interface réseau</h3><p>L'interface Ethernet est à la norme FastEthernet (soit un débit théorique maximum de 100 Mbps). Comme le Raspberry Pi n'a pas une capacité de stockage importante, cette vitesse pourra être pénalisante lors de l'accès à vos données stockées sur un NAS ou une autre machine.</p><p>Un rapide test avec Iperf montre un débit maximum en TCP de <strong>90 Mbps en entrée et 65 Mbps en sortie</strong>. On a donc de bonnes performances pour une interface FastEthernet, en espérant une évolution en Giga pour la prochaine version de Raspberry Pi.</p><h3>Multimédia</h3><p>Là ou le Raspberry Pi est bluffant c'est sur les lectures audio et vidéo. En effet, avec les efforts <a
href="http://wiki.xbmc.org/index.php?title=Raspberry_Pi#Installing_XBMC">pour adapter XBMC sur ce matériel</a> on dispose de logiciel permettant sans aucun problème de lire des vidéos H.264 full HD.</p><p><iframe
width="560" height="315" src="http://www.youtube.com/embed/OFweR9oTuno?rel=0" frameborder="0" allowfullscreen=""></iframe></p><p>Si vous ne souhaitez pas passer par XBMC, vous pouvez utiliser OMXPlayer de la manière suivante:</p><pre class="crayon-plain-tag">omxplayer -o hdmi &lt;nondufichiervideo&gt;</pre><p>Il est même possible, pour certains besoins spécifiques d'acheter, pour des sommes assez modiques, des licences pour <a
href="http://www.raspberrypi.com/license-keys/">des codecs MPEG-2 ou VC-1</a>.</p><h1>Il lui manque quoi ?</h1><p>Personnellement, je serais assez intéressé par une version luxe (à 60€ max faut pas déconner non plus) intégrant les choses suivantes:</p><ul><li>une interface Gigabit Ethernet, pour avoir un connectivité haut débit vers mon NAS</li><li>une sortie audio numérique pour connecter le Raspberry Pi à mon DAC (<em>iPhone + Airplay + Shairport + Raspberry Pi + DAC + Ampli = Bonheur</em>)</li><li>une troisième interface USB, car les deux premières sont occupées par mon clavier et ma souris et je ne sais pas ou mettre ma clés USB <img
src="media/a8d8b248.icon_smile.gif" data-original-source="http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /></li></ul><h1>Conclusion</h1><p>Nous voici arrivé au bout de ce premier article sur le Raspberry Pi, d'autres viendront vites, plus spécialisés. Je dois avoué avoir été agréablement surpris pas les capacités et le potentiel de cette petite machine. Le futur est là, devant nos yeux.</p><p>Et vous ? Avez vous craqués ? Si oui pour quelle utilisation ?</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/02/raspberry-pi-512-deballage-et-installation.html">Raspberry Pi 512, déballage et installation</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=61uzOnI5hrg:GVi6EV_4pyw:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=61uzOnI5hrg:GVi6EV_4pyw:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/61uzOnI5hrg" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6669
title: Migrer de Centreon 2.3.x vers 2.4.0
uri: Migrer-de-Centreon-2-3-x-vers-2-4-0
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/n9pMN0iQDKo/migrer-de-centreon-2-3-x-vers-2-4-0.html

content:
<p
style="text-align: center;">--===--</p><p
style="text-align: center;">Ce billet invité a été rédigé par <a
href="http://twitter.com/xhark">@xhark</a> du très bon <a
href="http://blogmotion.fr">Blogmotion</a>.<br
/> Je vous invite à consulter son blog qui fourmille d'information sur les systèmes et réseaux informatique.</p><p
style="text-align: center;">--===--</p><p
style="text-align: justify;">Si comme moi vous aviez suivi le <a
href="http://blog.nicolargo.com/2009/01/le-serveur-de-supervision-libre-part-3.html">tutoriel d'installation de Centreon</a>, vous devriez être en possession de Centreon 2.3.8. Ce guide a également été testé avec la version 2.3.9.</p><p
style="text-align: justify;">La version 2.4.0 de Centreon apporte de <strong>nombreux changements</strong>. Merethis, société éditrice de Centreon, a voulu se passer  NDOutil à cause de sa lourdeur et de son manque d'efficacité sur des parcs d'une grande taille. On découvre alors un nouveau module broker maison "Centreon-broker", plus efficace et modulaire.</p><p
style="text-align: justify;">Dans mon cas j'ai souhaité préserver NDOutil dans un premier temps et faire une migration classique. Si vous souhaitez plus d'information sur Centreon-Broker vous trouverez des informations sur la <a
href="http://en.doc.centreon.com/Centreon-Broker/fr">documentation</a> et je vous conseille <a
href="http://eric.coquard.free.fr/atelier/supervision/supervision/Centreon-Broker/Centreon-Broker.html">ce guide</a>. Si vous installez Centreon from scratch, <a
href="http://eric.coquard.free.fr/archives/archives/centreon/centreon_with_centreon-broker.html">ce guide</a> (ou la <a
href="http://documentation.centreon.com/docs/centreon/en/latest/installation/from_sources.html">doc officielle</a>).</p><h1>Mise à jour de votre système</h1><p>Si vous utilisez une distribution Debian Like comme Ubuntu, vérifiez que vos paquets sont à jour :</p><pre class="crayon-plain-tag"># apt-get update &amp;&amp; apt-get upgrade</pre><p>Passons à la suite.</p><h1>Mise à jour de Centreon</h1><p>Avant tout, faites un snapshot si vous utilisez VMWare ou une copie de votre système (image) pour revenir en arrière en cas de pépin. Puis faire une sauvegarde du fichier sudoers :</p><pre class="crayon-plain-tag"># cp /etc/sudoers /root/etc-sudoers.bak</pre><p>Si vous utilisez un serveur proxy pour accéder à internet, c'est le moment de le définir pour PEAR qui risque d'aller chercher des modules absents (c'était mon cas avec Archive_7zip) :</p><pre class="crayon-plain-tag"># pear config-set http_proxy "http://proxy:8080"
config-set succeeded</pre><p></p><p
style="text-align: justify;">Nous allons commencer par récupérer la dernière version de <a
href="http://www.centreon.com/Content-Download/donwload-centreon-monitoring-tools">Centreon sur le site officiel</a>. Pensez à remplacer le lien de téléchargement de Centreon (http://download.centreon.com/index.php?id=4264) ainsi que la version (centreon-2.4.0  au moment de la rédaction de ce billet) par la dernière version disponible.</p><p>Toutes les commandes sont effectuées avec le compte root ("su -") sur une distribution Ubuntu 12.04.2 LTS 32 bits.</p><pre class="crayon-plain-tag">cd /tmp/
wget http://download.centreon.com/centreon/centreon-2.4.0.tar.gz
cd centreon-2.4.0
./install.sh -u /etc/centreon</pre><p>La trace complète est <a
href="http://pastebin.com/1REgQ4Rp">disponible ici</a>, voyons les <strong>étapes importantes</strong> :</p><pre class="crayon-plain-tag">Do you want to use the last Centreon install parameters ?
[y/n], default to [y]:
&gt; y
Using:  /etc/centreon/instCentCore.conf
/etc/centreon/instCentPlugins.conf
/etc/centreon/instCentStorage.conf
/etc/centreon/instCentWeb.conf
Do you want to install : Centreon Web Front
[y/n], default to [n]:
&gt; y
Do you want to install : Centreon CentCore
[y/n], default to [n]:
&gt; y
Do you want to install : Centreon Nagios Plugins
[y/n], default to [n]:
&gt; y
Do you want to install : Centreon Snmp Traps process
[y/n], default to [n]:
&gt; y
Where is your Centreon binaries directory
default to [/usr/local/centreon/bin]
&gt;
Where is your Centreon data informations directory
default to [/usr/local/centreon/data]
&gt;
Do you want me to create this directory ? [/usr/local/centreon/data]
[y/n], default to [n]:
&gt; y
What is the Centreon group ? [centreon]
default to [centreon]
&gt;
Do you want me to create this group ? [centreon]
[y/n], default to [n]:
&gt; y
What is the Centreon user ? [centreon]
default to [centreon]
&gt;
Do you want me to create this user ? [centreon]
[y/n], default to [n]:
&gt; y
What is the Broker user ? (optional)
&gt;
What is the Monitoring engine log directory ?
&gt; /usr/local/nagios/var
Where is your monitoring plugins (libexec) directory ?
default to [/usr/lib/nagios/plugins]
&gt; /usr/local/nagios/libexec/
------------------------------------------------------------------------
        Configure Sudo
------------------------------------------------------------------------
What is the Monitoring engine init.d script ?
&gt; /etc/init.d/nagios
Where is the configuration directory for broker module ?
&gt; /usr/local/nagios/etc ou /etc/nagios3
Where is the init script for broker module daemon ?
&gt; /etc/init.d/ndo2db
Your sudo has been configured previously
Do you want me to reconfigure your sudo ? (WARNING)
[y/n], default to [n]:
&gt; y
Do you want to reload your Apache ?
[y/n], default to [n]:
&gt; y
Do you want me to install CentCore init script ?
[y/n], default to [n]:
&gt; y
Do you want me to install CentStorage run level ?
[y/n], default to [n]:
&gt; y
------------------------------------------------------------------------
        Start CentCore Installation
------------------------------------------------------------------------
Do you want me to install CentCore init script ?
[y/n], default to [n]:
&gt; y
Do you want me to install CentCore run level ?
[y/n], default to [n]:
&gt; y</pre><p>On peut maintenant ce rendre à l’URL suivante pour finaliser la mise à jour par l’interface Web:</p><blockquote><p>http://<strong>&lt;adresseIPserveur&gt;</strong>/centreon/</p><p><strong>REMARQUE</strong>: ne pas oublier le / à la fin…</p></blockquote><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6683" alt="centreon1" src="media/7f0279e1.centreon1-580x297.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/centreon1-580x297.png" width="580" height="297" /></p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6682" alt="centreon3" src="media/ffd205cf.centreon3-580x375.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/centreon3-580x375.png" width="580" height="375" /></p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6681" alt="centreon4" src="media/4709c403.centreon4-580x286.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/centreon4-580x286.png" width="580" height="286" /></p><h1>Vérification du fonctionnement</h1><p>Si vous le pouvez, redémarrez votre serveur pour être sûr que les services démarrent correctement.</p><p>Pour vérifier que Centreon fonctionne correctement, exportez la configuration vers Nagios : Configuration &gt; Monitoring Engines (anciennement appelé "nagios"). Cocher (en plus de celles déjà cochées) : <em>Move Export Files</em> et Restart Monitoring Engine.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6680" alt="centreon5" src="media/dee07e2f.centreon5-580x271.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/centreon5-580x271.png" width="580" height="271" /></p><p>Si comme moi vous obtenez le message d'erreur :</p><blockquote><p>Preparing environment... <strong><span
style="color: #008000;">OK</span></strong><br
/> Generating files... <span
style="color: #008000;"><strong>OK</strong></span><br
/> <strong>Moving files...</strong><strong><span
style="color: #ff0000;">NOK</span></strong></p></blockquote><p>Il s'agit d'un problème de droit, bien que l'erreur ne soit pas très parlante... après de nombreuses prises de tête pas mal de caféine, voici la solution :</p><pre class="crayon-plain-tag"># chown www-data:nagios /usr/local/nagios/ -R</pre><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6679" alt="centreon6" src="media/99b48b7e.centreon6-580x248.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/centreon6-580x248.png" width="580" height="248" /></p><p>A titre d'information, voici le contenu de mon fichier /etc/group :</p><pre class="crayon-plain-tag">nagios:x:1001:nagios,www-data,centreon
centreon:x:999:www-data,nagios
www-data:x:33:nagios</pre><p>Vous verrez aussi que la page d'accueil de Centreon a pas mal évolué, avec des widgets mais c'est loin d'être intuitif car il faut tout configurer en dur. Pour l'instant, on s'en passera.</p><p>Si vous avez <strong>besoin d'aide</strong> je vous conseiller de lire <a
href="http://blog.nicolargo.com/2009/02/utilisation-de-centreon.html">ce billet sur l'utilisation de Centreon</a>.</p><p
style="text-align: justify;">Enfin, je vous conseille d'installer <a
href="http://www.centreon.com/Content-products/centreon-entreprise-server">Centreon Entreprise Server</a> (CES) sur un serveur de test, il permet de tester toutes les configurations possibles (avec ou sans broker, NDO, poller standard, central, etc.). Le produit est libre en version <strong>Standard</strong> et il est basé sur CentOs 5.9 x64, des <a
href="http://www.centreon.com/Content-Products-Entreprise-Server/ces-comparison-chart">services supplémentaires payants</a> sont disponibles pour les <a
href="media/f2bbd843.MERETHIS_CES_Fr.pdf" data-original-source="http://www.centreon.com/images/centreon/pdf/MERETHIS_CES_Fr.pdf">autres versions</a>.</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/02/migrer-de-centreon-2-3-x-vers-2-4-0.html">Migrer de Centreon 2.3.x vers 2.4.0</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=n9pMN0iQDKo:GDmyDWeUqec:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=n9pMN0iQDKo:GDmyDWeUqec:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/n9pMN0iQDKo" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6688
title: Youtube, Free et la fin des emmerdes
uri: Youtube-Free-et-la-fin-des-emmerdes
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/8K9DmnFGJPY/youtube-free-et-la-fin-des-emmerdes.html

content:
<p>Une petite procédure qui marche (oui oui je suis en train de regarder une vidéo HD alors qu'il est 21h56 !!!) pour en finir une bonne fois pour toutes (enfin jusqu'à ce que Free trouve la parade) avec les problèmes de lecture vidéo Youtube chez Free.</p><p>Il suffit d'utiliser un petit fichier proxy.pac à configurer dans votre navigateur ou dans votre système.</p><p>Par exemple sous Ubuntu, il suffit d'accéder aux paramètres réseaux puis à saisir:</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6689" alt="capture_053" src="media/7de45caa.capture_053-580x309.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/capture_053-580x309.png" width="580" height="309" /></p><p>Et voilà, c'est tout.</p><p>Pour les explications du pourquoi du comment, il suffit de lire le billet <a
href="http://korben.info/free-youtube-solution-chargement-video.html">sur le site de Korben</a>.</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/03/youtube-free-et-la-fin-des-emmerdes.html">Youtube, Free et la fin des emmerdes</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=8K9DmnFGJPY:FUyyEeCcUaY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=8K9DmnFGJPY:FUyyEeCcUaY:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/8K9DmnFGJPY" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6694
title: Mes 5 premières minutes sur un serveur Debian
uri: Mes-5-premières-minutes-sur-un-serveur-Debian
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/_Cz4gSJ5ATI/mes-5-premieres-minutes-sur-un-serveur-debian.html

content:
<p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6700" alt="sam" src="media/a875c25c.capture_054-580x180.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/capture_054-580x180.png" width="580" height="180" /></p><p
style="text-align: center;"><span
style="color: #808080;">Sur une idée originale pompée honteusement sur le blog de <a
href="http://plusbryan.com/my-first-5-minutes-on-a-server-or-essential-security-for-linux-servers"><span
style="color: #808080;">Bryan Kennedy</span></a>.</span></p><p
style="text-align: justify;">La virtualisation ou la possibilité d'acheter des machines à bas prix comme le Raspberry implique le fait que l'installation de serveurs devient une tâche de plus en plus fréquente. Afin d'éviter les grossières erreurs qui peuvent rapidement devenir fatales si la machine est exposée au réseau Internet, voici les actions que j'effectue systématiquement sur mes systèmes d'exploitations Debian ou Ubuntu Server.</p><p
style="text-align: justify;">Si vous suivez ce blog, vous savez que je suis un gros fainéant pour ce genre de tâches récurrentes. J'ai donc écrit un ensemble de scripts permettant d'effectuer les actions de "post installation". J'ai également commencé à regarder du coté <a
href="http://blog.nicolargo.com/2012/03/en-route-vers-puppet-chef-cfengine.html">des systèmes de gestion de configuration comme Puppet</a> qui sont<strong> des solutions à utiliser en priorité si vous avez un parc informatique important</strong>.</p><p
style="text-align: justify;">L'objectif de ce billet est donc pédagogique pour partager avec vous les actions à effectuer et, je l'espère, en apprendre de nouvelles.</p><p>Assez de palabres, place au clavier...</p><h1>1) S'occuper de ses comptes</h1><p
style="text-align: justify;">Je parle bien évidemment ici des comptes utilisateurs qu'il va falloir sécuriser. On commence par le compte root qui ne sera PAS (jamais, c'est mal) utilisé directement pour vous connecter sur votre machine. Lors de l'installation du système, il faut saisir un mot de passe sécurisé, c'est à dire assez long avec un mélange de lettres, de chiffres et d'autres caractères mais sans utiliser des mots connus ou des suites de chiffres. Vous n'avez pas besoin de connaitre ce mot de passe par coeur mais il faudra le conserver bien au chaud.</p><p
style="text-align: justify;">Une fois logué sur la machine (on durant la phase d'installation du serveur), on commence par créer un utilisateur principal que l'on utilisera pour se connecter à la machine.</p><p
style="text-align: justify;">J'ai choisi <strong><span
style="color: #008000;">morpheus</span></strong> pour illustrer mon billet.</p><p></p><pre class="crayon-plain-tag">useradd morpheus
mkdir /home/morpheus</pre><p>La suite des opérations sera donc faite à partir de cet utilisateur.</p><h1 style="text-align: justify;">2) S'occuper de ses portes d'entrées avec SSHd</h1><p
style="text-align: justify;">SSH est devenu le mode d'accès le plus utilisé pour accéder aux serveurs GNU/Linux. Par défaut, il propose un contrôle d'accès par nom d'utilisateur et mot de passe. J'essaye au maximum d'éviter cette solution. J'utilise le système d'authentification par clé publique qui est un peu plus lourde à mettre en oeuvre et à administrer mais qui offre <a
href="http://www.debian-administration.org/articles/530">un niveau de sécurité plus important</a>.</p><p
style="text-align: justify;">Pour ajouter la clé publique de mon PC avec lequel je vais me connecter au serveur, il suffit de lancer la commande suivante à partir de cette machine:</p><p></p><pre class="crayon-plain-tag">ssh-copy-id morpheus@monserveur</pre><p>Puis on force l'utilisation de l'authentification par clé publique et on ferme ensuite cette porte à l'utilisateur root:</p><pre class="crayon-plain-tag">sudo vim /etc/ssh/sshd_config
PasswordAuthentication no
PermitRootLogin no</pre><p><span
style="color: #ff0000;"><strong>Attention</strong>: l'authentification par  nom d'utilisateur / mot de passe sera désactivée pour les accès SSH. </span></p><p>On relance ensuite le daemon SSH:</p><pre class="crayon-plain-tag">sudo service  ssh restart</pre><p><span
style="font-size: 2em;">3) Contrôler les entrées avec Fail2ban</span></p><p>Une fois le daemon SSH sécurisé, il faut ensuite ajouter une couche permettant de contrôler plus finement les accès. J'utilise pour cela Fail2ban que j'ai abordé plus précisément <a
href="http://blog.nicolargo.com/2012/02/proteger-son-serveur-en-utilisant-fail2ban.html">dans un précédant billet</a>. Dans notre sujet du jour, je vais configurer Fail2ban pour bloquer, pendant 5 minutes, l'accès à SSH à un utilisateur qui se trompe 3 fois de mot de passe.</p><p>On commence par installer fail2ban:</p><pre class="crayon-plain-tag">sudo apt-get-install fail2ban</pre><p>On va ensuite éditer le fichier <strong>/etc/fail2ban/jail.conf </strong>pour le configurer comme l'on souhaite:</p><pre class="crayon-plain-tag">[ssh]
enabled = true
port = ssh
filter = sshd
action = iptables[name=SSH, port=ssh, protocol=tcp]
logpath = /var/log/auth.log
maxretry = 3
bantime = 300</pre><p>On relance ensuite le service pour prendre en compte la configuration:</p><pre class="crayon-plain-tag">sudo service fail2ban restart</pre><p></p><h1>4) Fermer les fenêtres (de votre Firewall)</h1><p
style="text-align: justify;">Comme nous l'avons vu dans le point précédant, Fail2ban utilise le Firewall IPtable qui part défaut laisse passer l'ensemble des flux. J'applique systématiquement une configuration beoucoup plus restrictive qui autorise les flux SSH entrant (pour l'accès à distance) et HTTP/HTTPs/DNS sortant (pour la mise à jour de mon serveur).</p><p
style="text-align: justify;">J'utilise pour cela un script de démarrage maison:</p><p></p><pre class="crayon-plain-tag">sudo wget --no-check-certificate -O /etc/init.d/firewall.sh https://raw.github.com/nicolargo/debianpostinstall/master/firewall.sh
sudo chmod a+x /etc/init.d/firewall.sh</pre><p>que je lance au démarrage de la machine (et aussi immédiatement):</p><pre class="crayon-plain-tag">sudo update-rc.d firewall.sh defaults 20
sudo service firewall start</pre><p>Il est bien sûr possible d'adapter ce script à vos besoins de flux entrants et sortants en éditant les lignes suivantes:</p><pre class="crayon-plain-tag"># Services that the system will offer to the network
TCP_SERVICES="22" # SSH only
UDP_SERVICES=""
# Services the system will use from the network
REMOTE_TCP_SERVICES="80 443" # web browsing
REMOTE_UDP_SERVICES="53" # DNS</pre><p></p><h1>5) Prendre soin de ses fondations en tenant son système à jour</h1><p
style="text-align: justify;">Maintenir à jour ses serveurs est une tâche à la fois indispensable et rébarbative. Il y a ici deux écoles possibles. La première est d'utiliser un logiciel comme <strong>unattended-upgrades</strong> qui va installer automatiquement pour vous les mises à jours de sécurités ou même l'ensemble de votre système. C'est une solution élégante mais qui n'est pas sans risque si un pépin arrive suite à une mise à jour alors que vous êtes loin de vous machines. J'opte donc pour la seconde solution, basée sur <strong>cron-apt</strong>, qui va me notifier par mail les mises à jours à effectuer sur mes machines.</p><p>On installe cron-apt avec la commande:</p><pre class="crayon-plain-tag">sudo apt-get install cron-apt</pre><p>Puis on configure l'adresse mail de destination des messages de notifications dans le fichier /etc/cron-apt/config:</p><pre class="crayon-plain-tag">MAILTO="bibi+monserveur@gmail.com"</pre><p><span
style="text-decoration: underline;">Note</span>: comme vous pouvez le lire, j'utilise une adresse Gmail bibi@gmail.com pour la réception de mes notifications. J'y ajoute +monserveur (<a
href="http://www.blog-nouvelles-technologies.fr/archives/2420/pour-un-compte-gmail-plusieurs-adresses-mail-disponibles/">qui sera ignoré par Gmai</a>l) afin de pouvoir facilement les filtrer.</p><p>On relance le service pour prendre en compte la configuration:</p><pre class="crayon-plain-tag">sudo service cron-apt restart</pre><p>Les notifications seront envoyés par défaut toutes les nuits à 4h du matin.</p><h1>6) Surveiller le tout avec Logwatch</h1><p>A ce stade vous avez un serveur disposant d'une sécurité de base qui va le protéger de la grande majorité des attaques que l'on peut trouver sur Internet. Il ne reste plus qu'à installer Logwatch, un outil permettant d'analyser les logs et ainsi de remonter par mail des rapports permettant d'analyser des tentatives d'intrusions éventuelles.</p><p>La mise en place est assez simple.</p><pre class="crayon-plain-tag">sudo apt-get install logwatch</pre><p>Puis on configure l'adresse mail de destination des messages de notifications dans le fichier /etc/cron-apt/config:</p><pre class="crayon-plain-tag">#execute
/usr/sbin/logwatch --output mail --mailto bibi+monserveur@gmail.com --detail high</pre><p>On relance le service pour prendre en compte la configuration:</p><pre class="crayon-plain-tag">sudo service cron-apt restart</pre><p>Les notifications seront envoyés par défaut toutes les nuits.</p><h1>7) Conclusion</h1><p>Nous arrivons à la fin de ce billet avec une machine à l'épreuve d'une exposition à Internet sans risque de se faire hacker par le premier "script kiddie" venu.</p><p><strong>A vous de nous faire partager vos techniques, méthodes que vous appliquez sur vos nouveaux serveurs !</strong></p><p>Cet article <a
href="http://blog.nicolargo.com/2013/03/mes-5-premieres-minutes-sur-un-serveur-debian.html">Mes 5 premières minutes sur un serveur Debian</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=_Cz4gSJ5ATI:8r5SB4_u0pM:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=_Cz4gSJ5ATI:8r5SB4_u0pM:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/_Cz4gSJ5ATI" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6707
title: Consulter et comparer les licences open-source
uri: Consulter-et-comparer-les-licences-open-source
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/s-ZB4UrfI9k/consulter-et-comparer-les-licences-open-source.html

content:
<p>Lors de la dernière session de la commission open-source de la Telecom Valley, Pascal Flamand, directeur de <a
href="http://www.janua.fr/">Janua</a>, a partager avec nous une découverte qu'il a fait dernièrement sur le Web: <a
href="http://www.tldrlegal.com/">TLDRLegal</a>. C'est un site permettant de rechercher, consulter, vulgariser et comparer un nombre important de licences open-source. Comme je cherchais également un site équivalent depuis un bon moment, je me suis dis que cela pourrait également intéresser certains de mes lecteurs <img
src="media/a8d8b248.icon_smile.gif" data-original-source="http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> .</p><p>La page principale se présente sous la forme d'un moteur de recherche:</p><p><a
href="http://www.tldrlegal.com/"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6708" alt="capture_055" src="media/885e712a.capture_055-580x237.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/capture_055-580x237.png" width="580" height="237" /></a></p><p>&nbsp;</p><p>Le site est actuellement en version "bêta" et le nombre de licences référencées augmente régulièrement.</p><p>Après une recherche on obtient des informations synthétiques mais aussi le texte intégral de la licence:</p><p><a
href="http://www.tldrlegal.com/"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6709" alt="capture_056" src="media/57910c9c.capture_056-580x319.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/capture_056-580x319.png" width="580" height="319" /></a></p><p>&nbsp;</p><p>On peut également combiner deux licences pour voir si elles sont compatibles et les contraintes / avantages que cette licence combinée propose alors:</p><p><a
href="http://www.tldrlegal.com/"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6710" alt="capture_057" src="media/0dfaa362.capture_057-580x228.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/capture_057-580x228.png" width="580" height="228" /></a></p><p>&nbsp;</p><p>Fin de ce rapide billet.</p><p>Il ne vous reste plus qu'à bookmarker le lien: <a
href="http://www.tldrlegal.com/">http://www.tldrlegal.com</a></p><p>Si vous connaissez un site équivalent en Francais, je suis preneur !</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/03/consulter-et-comparer-les-licences-open-source.html">Consulter et comparer les licences open-source</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=s-ZB4UrfI9k:klfLtSxD1As:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=s-ZB4UrfI9k:klfLtSxD1As:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/s-ZB4UrfI9k" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6740
title: Glances 1.6.1 est dans les bacs
uri: Glances-1-6-1-est-dans-les-bacs
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/3UmUNtpOn84/glances-1-6-1-est-dans-les-bacs.html

content:
<p><a
href="http://nicolargo.github.com/glances/"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="size-thumbnail wp-image-6452 alignright" alt="glances-white-256" src="media/2e2e62fa.glances-white-256-150x150.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2012/11/glances-white-256-150x150.png" width="150" height="150" /></a>Evolution pas si mineure que cela pour <strong>Glances</strong>, l'outil de supervision système, que je viens de publier en version <strong>1.6.1</strong>. Cette version est sûrement la plus stable et la plus facile à faire évoluer (en prévision des futures raodmaps <a
href="https://github.com/nicolargo/glances/issues?milestone=3&amp;page=1&amp;state=open">1.7</a> puis <a
href="https://github.com/nicolargo/glances/issues?milestone=4&amp;page=1&amp;state=open">2.0</a>). Un grand merci à Alessio Sergi, contributeur depuis maintenant pas mal de temps sur Glances et surtout Jon Renner pour cette version <a
href="https://github.com/nicolargo/glances/commits/master">qui a effectué un gros et bon boulot</a>.</p><h1>Quoi de neuf ?</h1><p>La liste complète est disponible <a
href="https://github.com/nicolargo/glances/blob/master/ChangeLog">dans le ChangeLog</a>, mais on peut retenir:</p><ul><li>le support multi utilisateur du fichier de configuration (il suffit pour cela de créer un fichier de configuration dans votre répertoire $HOME/.config/glances/)</li><li>Ajout de la touche 't' pour afficher le trafic réseau sous la forme upload + download</li><li>Ajout de la touche 'u' pour afficher le trafic réseau non pas en débit mais en cumulé</li><li>Ajout de l'option -z (ou --nobold) pour améliorer l'affichage de Glances dans un terminal avec un style solarized</li><li>Amélioration de la précision d'affichage des statistiques</li><li>Prise en compte du nombre de CPU dans le calcul de la limite CPU des process</li><li>Amélioration de l'API pour y intégrer le temps depuis la dernière mise à jour des stats afin de pouvoir calculer des débits cotés clients</li><li>Amélioration de l'affichage de l'aide</li><li>Reprise totale du code pour ignorer les versions de PsUtil inférieure à la 0.4.1 (gros boulot d'Alessio !)</li><li>Ajout d'<a
href="https://github.com/nicolargo/glances/blob/master/doc/init_script">un script d'init</a> (Debian) pour le serveur Glances</li><li>et bien sûr un bon nombre de correction de bug...</li></ul><p><a
href="media/3b3703ac.capture_063.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/capture_063.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6741" alt="Glances 1.6.1" src="media/27898a72.capture_063-580x337.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/capture_063-580x337.png" width="580" height="337" /></a></p><p>&nbsp;</p><h1>Comment mettre à jour | installer Glances</h1><p>Toutes les informations sont disponibles sur la page officielle de Glances mais pour ceux qui ont installé une ancienne version via Pypi, il suffit de saisir la commande:</p><pre class="crayon-plain-tag">sudo pip install --upgrade Glances</pre><p></p><h1>D'autres nouvelles de l'écosystème Glances</h1><p>Ce que j'aime avec Glances, c'est l'écosystème qui est en train de se construire autour de ce projet. J'ai d'ailleurs en préparation un billet pour parler de tous les projets gravitant dans cette sphère. Mais dès aujourd'hui je voudrais en mentionner deux:</p><ul><li><a
href="https://github.com/Progi1984/PHPGlances">PHPGlances</a> que Franck Lefevre (aka) Progi1984 <a
href="http://rootslabs.net/blog/168-phpglances-une-librairie-php-pour-glances">nous présente sur son blog</a></li><li><a
href="https://github.com/jrenner/java-glances">Java-Glances</a> de John Renner, également contributeur sur cette version et qui travaille sur un client Android pour Glances !</li></ul><h1>Pour finir</h1><p>Je suis bien sûr preneur de vos remarques/avis sur cette nouvelles version de Glances.</p><p>Les commentaires ci-dessous sont fait pour cela <img
src="media/a8d8b248.icon_smile.gif" data-original-source="http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /></p><p>Cet article <a
href="http://blog.nicolargo.com/2013/03/glances-1-6-1-est-dans-les-bacs.html">Glances 1.6.1 est dans les bacs</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=3UmUNtpOn84:c0CSVvkMtyE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=3UmUNtpOn84:c0CSVvkMtyE:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/3UmUNtpOn84" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6743
title: Utiliser votre Raspberry Pi comme borne Airplay
uri: Utiliser-votre-Raspberry-Pi-comme-borne-Airplay
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/S-fAJLaIH8k/utiliser-votre-raspberry-pi-comme-borne-airplay.html

content:
<p
style="text-align: justify;">Airplay est une technologie, mise en avant par <a
href="http://www.apple.com/fr/airplay/">Apple</a> et par un nombre croissant <a
href="http://www.son-video.com/Promos/Boutiques/Apple-Airplay.html">d'acteurs du monde de la Hifi</a>, permettant de déporter les flux audio, photo et vidéo d'un device (PC/Mac, tablette, téléphone) sur des périphériques externes (Ampli, Enceintes...). Basée sur un protocole propriétaire (heureusement <a
href="http://nto.github.com/AirPlay.html">cassé par reverse ingenering</a>), il n'a malheureusement en face de lui aucune alternative stable et libre: Miracast est uniquement dédié aux devices Wifi et Google qui planchait sur <a
href="http://gigaom.com/2012/11/19/google-open-airplay-alternative/">une alternative à Airplay</a> ne semble pas très pressé de la sortir.</p><p
style="text-align: justify;">Dans ce billet nous allons voir comment transformer un Raspberry Pi (<a
href="http://www.kubii.fr/category.php?id_category=3">23€ chez votre épicier</a>) en une borne Airplay connectée à votre chaîne Hifi (ou encore mieux en passant par un DAC) afin de disposer d'une chaîne de streaming de bonne qualité entre vos "idevices" (iPhone, iPad, Mac OS mais aussi Android) et vos enceintes.</p><p
style="text-align: justify;">Dans le jargon Airplay, nous allons donc transformer un Raspberry Pi en "Airplay receiver". Shazam...</p><h1 style="text-align: justify;">Ma configuration de test</h1><p
style="text-align: justify;">Ce billet a été validé sur la configuration suivante:</p><ul><li>une chaîne Hifi Cambridge composée d'un DAC, d'un amplificateur et d'une paire d'enceintes.</li></ul><p
style="text-align: center;"><a
href="media/4436051b.P1090442-e1269435040781.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2010/03/P1090442-e1269435040781.jpg"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter  wp-image-2870" alt="Ma chaine Hi-Fi Cambridge" src="media/37c23687.P1090442-1024x576.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2010/03/P1090442-1024x576.jpg" width="406" height="228" /></a></p><ul><li>un Raspberry PI model B (mais cela doit marcher sans problème avec un modèle A)</li></ul><p
style="text-align: center;"><a
href="media/b1731b0a.capture_047.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_047.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter  wp-image-6641" alt="Raspberry PI B 512" src="media/b1731b0a.capture_047.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/02/capture_047.png" width="406" height="245" /></a></p><ul><li><span
style="line-height: 13px;">un iPhone 4</span></li></ul><h1>Configuration système du Raspberry Pi</h1><p>J'ai utilisé le système d'exploitation Raspbian "Wheezy" dont j'ai déjà <a
href="http://blog.nicolargo.com/2013/02/raspberry-pi-512-deballage-et-installation.html">détaillé l'installation dans un précédant billet</a>. Comme ma chaîne Hifi est loin de mon réseau Ethernet filaire, j'ai utilisé un dongle USB Wifi (attention <a
href="http://elinux.org/RPi_VerifiedPeripherals#Working_USB_Wi-Fi_Adapters">la liste des dongles supportés est ici</a>) que j'ai connecté au Raspberry et configuré <a
href="http://svay.com/blog/setting-up-a-wifi-connection-on-the-raspberrypi/">en suivant ce tutoriel</a>.</p><p>Ma configuration réseau est la suivante pour le fichier <em>/etc/network/interfaces</em>:</p><pre class="crayon-plain-tag">auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp</pre><p>et celle-ci pour le fichier <em>/etc/wpa_supplicant/wpa_supplicant.conf</em>:</p><pre class="crayon-plain-tag">ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="MONWIFI"
scan_ssid=1
key_mgmt=WPA-PSK
proto=WPA
psk="MACLEWIFI"
}</pre><p></p><h1>Shairport, le coeur de la borne Airplay</h1><p><a
href="https://github.com/albertz/shairport">Shairport</a> est une implémentation libre d'un serveur RAOP qui est lui même à la base des Airport Express d'Apple. Il n'implémente, pour l'instant, que la version 1.0 d'Airplay (prise en charge des flux audio mais pas de vidéo ni de photo).</p><p>L'installation se fait en 5 commandes:</p><pre class="crayon-plain-tag">sudo aptitude install git libao-dev libssl-dev libcrypt-openssl-rsa-perl libio-socket-inet6-perl libwww-perl avahi-utils
git clone https://github.com/albertz/shairport.git shairport
cd shairport
make
sudo make install</pre><p>Pour tester Shairport, il suffit de lancer:</p><pre class="crayon-plain-tag">/shairport.pl -a ShairPort</pre><p>Si, comme moi, vous avez l'erreur suivante qui s'affiche:</p><pre class="crayon-plain-tag">Can't locate Net/SDP.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at ./shairport.pl line 48.
BEGIN failed--compilation aborted at ./shairport.pl line 48.</pre><p>Alors, il faudra en plus saisir une sixième commande pour finaliser l'installation:</p><pre class="crayon-plain-tag">sudo cpan install Net::SDP</pre><p>Pour automatiser le lancement de ShairPort au démarrage de votre Raspberry Pi:</p><pre class="crayon-plain-tag">sudo cp ./shairport.init.sample /etc/init.d/shairport
sudo chmod a+x /etc/init.d/shairport</pre><p><span
style="text-decoration: underline;">Note</span>: il est possible d'éditer le "nom" de votre borne Airplay en modifiant l'option -a dans le script:</p><pre class="crayon-plain-tag">DAEMON_ARGS="-w $PIDFILE -a ShairPort"</pre><p>Il ne reste plus qu'à lancer le démon:</p><pre class="crayon-plain-tag">sudo update-rc.d shairport defaults
sudo service shairport start</pre><p></p><h1>Premier test: bien mais peut mieux faire</h1><p>Arrivez à ce stade (bravo si vous êtes encore là), vous devriez pouvoir détecter votre borne <del>Airplay</del> ShairPlay à partir de votre iPhone:</p><p
style="text-align: center;"><a
href="media/f2bb4608.photo-1.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/photo-1.png"><img
class="wp-image-6745 alignnone" alt="Airplay Spotify" src="media/27ab8d09.photo-1-386x580.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/photo-1-386x580.png" width="232" height="348" /></a> <a
href="media/276da432.photo.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/photo.png"><img
class="wp-image-6746 alignnone" alt="photo" src="media/4c84f212.photo-386x580.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/photo-386x580.png" width="232" height="348" /></a></p><p
style="text-align: center;"><span
style="color: #888888;">Configuration de l'iPhone pour utiliser la borne Airplay (Spotify à gauche et iTunes à droite)</span></p><p>En branchant votre casque | chaîne sur la sortie analogique (prise jack) du Raspberry, vous allez entendre le son émis par votre iPhone.</p><p>Avec un &lt;pub&gt; <a
href="https://github.com/nicolargo/glances">Glances</a> &lt;/pub&gt; lancé sur le Raspberry, on peut constater, avec une liaison réseau filaire la faible consommation CPU en utilisation et un débit de streaming audio de 1Mbps:</p><p><a
href="media/0d9e9928.capture_064.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/capture_064.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6744" alt="capture_064" src="media/68c2fa95.capture_064-580x171.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/03/capture_064-580x171.png" width="580" height="171" /></a></p><p>Par contre cette consommation grimpe à plus de 60% si vous utilisez un dongle Wifi. En effet, le protocole WPA implique un déchiffrement des données non négligeable pour le Raspberry.</p><p>Si fonctionnellement on est arrivés à notre objectif, ce n'est pas cas pour la qualité audio. En effet, la sortie analogique est incompatible avec une écoute Hifi.</p><h1>Raspberry + USB + DAC = Bonheur</h1><p>Heureusement pour moi et pour mes oreilles, mon DAC (Cambridge Audio DacMagic) dispose d'une entrée USB. Si ce n'est pas votre cas, il existe <a
href="http://www.son-video.com/Rayons/Hifi/DAC-Audio.html">pas mal de solutions plus ou moins chères</a> sur le marché.</p><p>Pour <a
href="http://www.jackenhack.com/raspberry-pi-usb-audio-quality-problems/">forcer le Raspberry à utiliser le DAC (sortie USB) comme carte son</a>, il faut éditer le fichier <em>/etc/modprobe.d/alsa-base.conf</em> en commentant une première ligne et en ajoutant une deuxième:</p><pre class="crayon-plain-tag">#options snd-usb-audio index=-2
options snd-usb-audio nrpacks=1</pre><p>Après un dernier redémarrage, votre borne Airplay est enfin prête !</p><p><span
style="color: #808080;">Update (28/04/2013)</span>: Pour vérifier que tout est configuré comme attendu, le plus simple est d'utiliser la commande aplay -l qui va afficher la liste des cartes sons de votre Raspberry Pi. On doit retrouver la "carte audio USB en premier" puis la classique carte intégrée bcm2835 en second:</p><pre class="crayon-plain-tag">pi@raspberrypi $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Set [C-Media USB Headphone Set], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 1: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7</pre><p>&nbsp;</p><h1>Conclusion</h1><p>Ma configuration fonctionne maintenant sans problème depuis quelques jours. Je suis justement en train d'écouter <a
href="https://twitter.com/nicolargo/status/301335340390699008">ma Playlist Spotify 2013</a> en rédigeant ce billet.</p><p>Seul problème rencontré: il faut que je redémarre mon Raspberry quand je désactive et réactive le Wifi sur ma Freebox. Si vous avez des idées, je suis preneur.</p><p><span
style="text-decoration: underline;">Quelques liens en bonus:</span></p><ul><li><span
style="line-height: 13px;">si vous êtes sous Windows (sors de ce corps), il existe <a
href="http://revolutionnumerique.wordpress.com/multiroom/appareils-et-logiciels-compatibles-airplay/">des "clients" Airplay</a> </span></li><li>sous Android, il y a des <a
href="https://play.google.com/store/apps/details?id=de.rah.airstream&amp;feature=search_result">applications pour transformer votre téléphone/tablette en source Airplay</a></li><li>sous GNU/Linux, j'ai essayé, sans succès pas mal de solutions (<a
href="http://betarelease.github.com/blog/2011/09/30/airport_express_as_remote_speakers_for_airplay.textile/">PulseAudio</a>, <a
href="http://pastebin.com/CVRQMdfP">GStreamer</a>...). Si vous avez une solution, je suis (encore) preneur !!!</li></ul><p>Cet article <a
href="http://blog.nicolargo.com/2013/03/utiliser-votre-raspberry-pi-comme-borne-airplay.html">Utiliser votre Raspberry Pi comme borne Airplay</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=S-fAJLaIH8k:k13Lv-b-_f4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=S-fAJLaIH8k:k13Lv-b-_f4:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/S-fAJLaIH8k" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6762
title: Quand votre Raspberry Pi devient serveur Spotify
uri: Quand-votre-Raspberry-Pi-devient-serveur-Spotify
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/LTuqf-UBl8U/quand-votre-raspberry-pi-devient-serveur-spotify.html

content:
<p
style="text-align: justify;"><a
href="media/1060df63.capture_067.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_067.png"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="alignright size-medium wp-image-6767" alt="capture_067" src="media/40df3f77.capture_067-300x140.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_067-300x140.png" width="300" height="140" /></a>C'est en lisant <a
href="http://korben.info/spotify-raspberry-pi.html">un article sur le blog de Korben</a> que j'ai découvert qu'il était possible de transformer une distribution GNU/Linux en une borne audio Spotify, pilotable à distance. L'objectif étant d'avoir un petit boîtier (type Raspberry Pi ou équivalent) branché directement à sa chaîne Hifi et de pouvoir naviguer à distance sur <a
href="http://blog.nicolargo.com/2012/01/gerer-sa-bibliotheque-musicale-en-2012.html">sa bibliothèque Spotify</a>.</p><p>La configuration que j'ai mis en place est la suivante:</p><ul><li><span
style="line-height: 13px;"><a
href="http://blog.nicolargo.com/2013/02/raspberry-pi-512-deballage-et-installation.html">Raspberry Pi modèle B avec Raspbian Wheezy</a> et le logiciel <a
href="http://www.mopidy.com/">Mopidy</a></span></li><li><a
href="http://blog.nicolargo.com/2010/04/tester-son-installation-audio.html">DAC Audio Cambridge</a> (connecté au Raspberry Pi via l'interface USB) &gt; C'est bien sûr optionnel et vous pouvez brancher directement votre amplificateur audio ou vos enceintes auto-alimentées sur le Raspberry</li><li><a
href="http://blog.nicolargo.com/2010/04/tester-son-installation-audio.html">Amplificateur Audio Cambridge</a></li><li>Enceintes B&amp;W</li><li>Un abonnement Spotify Premium et/ou des fichiers audios accessible depuis votre Raspberry</li></ul><h1>Mise en place du système</h1><p
style="text-align: justify;">Je ne vais pas faire un copier/coller de mon billet d'installation de Raspbian Wheezy sur un Raspberry Pi, il suffit de <a
href="http://blog.nicolargo.com/2013/02/raspberry-pi-512-deballage-et-installation.html">suivre ce lien</a>.</p><p
style="text-align: justify;"><span
style="text-decoration: underline;">Etape optionnelle, uniquement si vous avez un DAC ou une carte son USB branché à votre Raspberry:</span></p><p
style="text-align: justify;">Comme j'utilise un DAC afin de remplacer la médiocre sortie analogique du Raspberry, il faut effectuer une petite configuration complémentaire pour <a
href="http://www.jackenhack.com/raspberry-pi-usb-audio-quality-problems/">forcer le Raspberry à utiliser le DAC (sortie USB) comme carte son</a>. Il suffit d'éditer le fichier <em>/etc/modprobe.d/alsa-base.conf</em> en commentant une première ligne et en ajoutant une deuxième:</p><p></p><pre class="crayon-plain-tag">#options snd-usb-audio index=-2
options snd-usb-audio nrpacks=1</pre><p>Après un dernier redémarrage, votre Raspberry Pi est prêt à recevoir l'installation de Mopidy.</p><h1>Installation de Mopidy, le serveur Spotify</h1><p>Mopidy est un serveur Audio compatible avec les clients <a
href="http://docs.mopidy.com/en/latest/clients/upnp/#upnp-clients">uPnP</a> et <a
href="http://docs.mopidy.com/en/latest/clients/mpd/#mpd-clients">MDP</a> et permet donc de jouer des musiques stockés localement ou de streamer des musiques disponibles sur le service Spotify (c'est sur ce dernier point que nous allons nous focaliser dans ce billet).</p><p>On commence par installer le dépôt officiel de Mopidy puis le logiciel:</p><pre class="crayon-plain-tag">wget -q -O - http://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list http://apt.mopidy.com/mopidy.list
sudo apt-get update
sudo apt-get install mopidy</pre><p>On doit ensuite lancer un première fois Mopidy:</p><pre class="crayon-plain-tag">$ mopidy
INFO     Starting Mopidy 0.13.0
INFO     Platform: Linux-3.6.11+-armv6l-with-debian-7.0
INFO     Python: CPython 2.7.3
INFO     Creating dir /home/pi/.config/mopidy
INFO     Creating dir /home/pi/.local/share/mopidy
INFO     Creating file /home/pi/.config/mopidy/settings.py
WARNING  Could not open tag cache: [Errno 2] No such file or directory: u'/home/pi/.local/share/mopidy/tag_cache'
INFO     Loading tracks from /home/pi/None using /home/pi/.local/share/mopidy/tag_cache
INFO     Loading playlists from /home/pi/.local/share/mopidy/playlists
INFO     Audio output set to "autoaudiosink"
INFO     Audio mixer set to "alsamixer" using track "PCM"
ERROR    Setting "SPOTIFY_USERNAME" is empty.
ImportError: could not import gtk.gdk</pre><p>Cela va permettre à Mopidy de créer l'arborescence <strong>~/.config/mopidy</strong> qui va contenir les fichiers de configuration.</p><p>On doit éditer le fichier  <strong>~/.config/mopidy/settings.py</strong> avec les paramètres:</p><ul><li>du serveur MDP qui va permettre de contrôler à distance Mopidy</li><li>du répertoire local (ou distant sur un NAS) ou sont stockés vos fichiers audios</li><li>du compte Spotify Premium (obligatoire)</li><li>du compte LastFM (optionnel, uniquement pour le scrobbling)</li></ul><p></p><pre class="crayon-plain-tag">FRONTENDS = (u'mopidy.frontends.mpd.MpdFrontend', u'mopidy.frontends.lastfm.LastfmFrontend')
MPD_SERVER_HOSTNAME = u'0.0.0.0'
MPD_SERVER_PASSWORD = u'mdppassword'
LOCAL_MUSIC_PATH = u'/home/nicolargo/Musiques'
SPOTIFY_USERNAME = u'spotifylogin'
SPOTIFY_PASSWORD = u'spotifypassword'
SPOTIFY_BITRATE = 320
LASTFM_USERNAME = u'lastfmlogin'
LASTFM_PASSWORD = u'lastfmpassword'</pre><p>On peut relancer ensuite Mopidy:</p><pre class="crayon-plain-tag">$ mopidy
INFO     Starting Mopidy 0.13.0
INFO     Platform: Linux-3.6.11+-armv6l-with-debian-7.0
INFO     Python: CPython 2.7.3
WARNING  Could not open tag cache: [Errno 2] No such file or directory: u'/home/pi/.local/share/mopidy/tag_cache'
INFO     Loading tracks from /home/pi/.config/mopidy/None using /home/pi/.local/share/mopidy/tag_cache
INFO     Loading playlists from /home/pi/.local/share/mopidy/playlists
INFO     Audio output set to "autoaudiosink"
INFO     Audio mixer set to "alsamixer" using track "PCM"
INFO     Mopidy uses SPOTIFY(R) CORE
INFO     MPD server running at [0.0.0.0]:6600
INFO     Connected to Spotify
ImportError: could not import gtk.gdk
ERROR    MPRIS frontend setup failed (org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11)
INFO     Connected to Last.fm
INFO     Loaded 57 Spotify playlist(s)</pre><p>Vous pouvez ignore les erreurs, les lignes importantes étant:</p><pre class="crayon-plain-tag">INFO     MPD server running at [0.0.0.0]:6600
INFO     Connected to Spotify
INFO     Connected to Last.fm
INFO     Loaded 57 Spotify playlist(s)</pre><p></p><h1>Piloter à distance votre borne Mopidy</h1><p>Pour piloter votre tout nouveau serveur Mopidy, il suffit d'installer un client compatible avec le protocole implémenté dans MPD. Personnellement, j'utilise GMPC sur mon PC Ubuntu mais d'autres solutions existes:</p><ul><li>Sous GNU/Linux: En ligne de commande <a
href="http://docs.mopidy.com/en/latest/clients/mpd/#ncmpcpp">Ncmpcpp</a> (bon corage pour retenir le nom mais il marche à merveille) ou en GUI avec <a
href="http://docs.mopidy.com/en/latest/clients/mpd/#gmpc">GMPC</a></li><li>Sous Andoid: <a
href="http://docs.mopidy.com/en/latest/clients/mpd/#mpdroid">MPDroid</a></li><li>Sous iOS: <a
href="http://docs.mopidy.com/en/latest/clients/mpd/#mpad">MPaD</a></li></ul><h1>Conclusion</h1><p>Encore une utilisation sympa d'un Raspberry dans le monde de la Hifi. J'ai encore quelques problèmes de son (gros tics quand je passe d'un morceau à l'autre) mais dans l'ensemble c'est une solution bien pratique pour écouter sa bibliothèque musicale sur sa chaîne !</p><p>Retrouvez tous mes billets sur <a
href="http://blog.nicolargo.com/raspberry">le Raszberry Pi sur ma page dédiée</a> !</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/04/quand-votre-raspberry-pi-devient-serveur-spotify.html">Quand votre Raspberry Pi devient serveur Spotify</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=LTuqf-UBl8U:yiAIvs2EbyY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=LTuqf-UBl8U:yiAIvs2EbyY:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/LTuqf-UBl8U" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6770
title: Code promo pour le site Kubii.fr
uri: Code-promo-pour-le-site-Kubii-fr
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/SqfKcmhua4c/code-promo-pour-le-site-kubii-fr.html

content:
<p>Pour fêter la mise en ligne de <a
href="http://blog.nicolargo.com/raspberry">ma nouvelle page dédiée au Raspberry</a>, Kubii, revendeur officiel de Pi en France et sponsor du blog de Nicolargo,  nous propose <strong>un code promo de 5€</strong> pour 100€ d'achat sur son site:</p><p
style="text-align: center;">---===---</p><p
style="text-align: center;">Lien vers le site: <strong><a
onclick="_gaq.push(['_trackEvent', 'Lien sortant', 'www.kubii.fr']);" href="http://www.kubii.fr/">http://www.kubii.fr/</a></strong></p><p
style="text-align: center;">Code promo: <strong>kubireduc</strong></p><p
style="text-align: center;">Validité: <strong>Jusqu'au 30 juin 2013</strong></p><p
style="text-align: center;">---===---</p><p>Envoy !</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/04/code-promo-pour-le-site-kubii-fr.html">Code promo pour le site Kubii.fr</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=SqfKcmhua4c:GoYhjulSSVc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=SqfKcmhua4c:GoYhjulSSVc:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/SqfKcmhua4c" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6783
title: MetaGlances, une interface pour les gouverner tous&#8230;
uri: MetaGlances-une-interface-pour-les-gouverner-tous
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/sbslrFr7kC4/metaglances-une-interface-pour-les-gouverner-tous.html

content:
<p>Depuis la version 1.5 de Glances et la mise à disposition <a
href="https://github.com/nicolargo/glances/wiki/The-Glances-API-How-To">d'une API au format JSON XML/RPC</a>, l'écosystème autour de <a
href="http://nicolargo.github.io/glances/">Glances</a> grandit petit à petit. Un des premier projet à avoir vu le jour est <a
href="https://github.com/spin0us/MetaGlances">MetaGlances</a>, une interface Web "responsive" permettant de centraliser la gestion de ses serveurs Glances.</p><p><a
href="media/ccf7ed3b.metaglances.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/metaglances.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6794" alt="metaglances" src="media/c6940787.metaglances-580x266.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/metaglances-580x266.png" width="580" height="266" /></a></p><p>Développée par <strong>Laurent Spinelli (aka spin0us)</strong> et distribuée sous licence GPL version 3, cette interface s'installe en quelques commandes sur un serveur Web et permet grâce à un mélange de scripts PHP (pour l'interface JSON XML/RPC avec les serveurs Glances) et HTML/JavaScript/JQuery (pour l'UI):</p><ul><li><span
style="line-height: 13px;">d'ajouter un nombre illimité de machines à surveiller (ces machines n'ayant comme seul pré-requis d'avoir le Glances serveur lancé et accessible et peut donc surveiller de machines GNU/Linux, BSD, Mac OS ou Windows)</span></li><li><span
style="line-height: 13px;">de visualiser les statistiques (pour l'instant limités à la CPU, mémoire, charge, débits des interfaces réseau, entrées/sorties disques et espaces disponibles sur les systèmes de fichiers)</span></li><li><span
style="line-height: 13px;">de sauvegarder votre liste de serveurs à surveiller sur un compte "cloud" (enfin de pouvoir retrouver sa configuration d'une machine à l'autre) </span></li><li>de disposer d'une interface "responsive" donc qui s'adapte à votre navigateur (par exemple un screenshot de MetaGlances dans un navigateur Chromium sous Ubuntu puis dans un même navigateur Chromium sur un iPhone 4)</li></ul><p><a
href="media/51bf1829.capture_069.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_069.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6785" alt="capture_069" src="media/73e81686.capture_069-580x314.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_069-580x314.png" width="580" height="314" /></a><br
/> <a
href="media/960c8a1e.mg-ihone.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/mg-ihone.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="size-medium wp-image-6784 aligncenter" alt="mg-ihone" src="media/228dad82.mg-ihone-200x300.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/mg-ihone-200x300.png" width="200" height="300" /></a></p><p>&nbsp;</p><h1>Installer son propre serveur MetaGlances</h1><p>Si vous disposez d'un serveur Web opérationnel (sinon vous pouvez toujours utiliser <a
href="http://blog.nicolargo.com/2011/01/installation-automatique-de-nginx-php-fpm-memcached-sous-debian.html">ce script d'installation automatique de Nginx</a>) avec par exemple pour racine /var/www alors <em>l'installation</em> nécessite la saisie des commandes suivantes:</p><pre class="crayon-plain-tag">cd /var/www
sudo git clone https://github.com/spin0us/MetaGlances
sudo mkdir -p /var/www/MetaGlances/cache/config /var/www/MetaGlances/cache/data
sudo chown -R www-data:www-data /var/www/MetaGlances</pre><p>Puis saisir l'URL de votre serveur MetaGlances: <strong>http://nomdevotreserveur/MetaGlances</strong></p><p>La configuration de <em>MetaGlances</em> est centralisé dans le fichier /var/www/MetaGlances/config.php.</p><p>MetaGlances est en cours de développement. Pour <em>mettre à jour</em> votre serveur avec la dernière version, il faudra saisir les commandes:</p><pre class="crayon-plain-tag">cd /var/www/MetaGlances
sudo git pull
sudo chown -R www-data:www-data /var/www/MetaGlances</pre><p></p><h1>Ou tester directement en ligne !</h1><p>J'ai installé MetaGlances sur un de mes serveurs. Vous pouvez donc directement superviser vos machines disposant d'une interface IP publique et sur lesquelles Glances serveur est lancé (je vous conseille de lancer Glances en configurant un mot de passe et si possible en filtrant à l'aide d'un Firewall les accès entrant venant de mon serveur).</p><p>Pour tester MetaGlances cliquez sur le lien suivant: <strong><a
href="http://metaglances.nicolargo.com">http://metaglances.nicolargo.com</a></strong></p><p><span
style="color: #ff0000;"><span
style="text-decoration: underline;">Attention</span>: ce serveur MetaGlances est uniquement mis à disposition pour tester MetaGlances. Ne pas s'en servir pour en production, il peut être arrêté  mis à jour ou déplacé sans préavis.</span></p><h1>Utilisation de MetaGlances</h1><p>Grâce au travail de Laurent, l'utilisation est assez intuitive. Je vous la laisse découvrir dans cette série de screenshots:</p><p
style="text-align: center;"><a
href="media/7681dea9.capture_070.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_070.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6793" alt="capture_070" src="media/bbc59e3f.capture_070-580x222.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_070-580x222.png" width="580" height="222" /></a>Ajout d'un serveur à superviser</p><p><a
href="media/6df62f40.capture_071.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_071.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6792" alt="capture_071" src="media/3ac39e03.capture_071-580x257.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_071-580x257.png" width="580" height="257" /></a>Saisie des informations sur le serveur Glances</p><p><a
href="media/31ad2ab2.capture_072.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_072.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6791" alt="capture_072" src="media/050ac198.capture_072-580x252.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_072-580x252.png" width="580" height="252" /></a>Affichage de la liste des serveurs</p><p><a
href="media/46277f37.capture_073.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_073.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6790" alt="capture_073" src="media/34f275a7.capture_073-580x326.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_073-580x326.png" width="580" height="326" /></a>Affichage des statistiques d'un serveur Glances</p><p><a
href="media/a6711e7d.capture_074.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_074.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6789" alt="capture_074" src="media/f2fd4293.capture_074-580x204.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_074-580x204.png" width="580" height="204" /></a>Accès au cloud MetaGlances</p><p><a
href="media/cbc38d9f.capture_075.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_075.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6788" alt="capture_075" src="media/bc4af849.capture_075-580x206.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_075-580x206.png" width="580" height="206" /></a>Création d'un compte MetaGlances</p><p><a
href="media/7e2f03e9.capture_076.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_076.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6787" alt="capture_076" src="media/9a08b9fb.capture_076-580x226.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_076-580x226.png" width="580" height="226" /></a>Sauvegarde ou restauration de la liste des serveurs Glances</p><h1>Nous avons besoin de VOUS !</h1><p>MetaGlances est en cours de développement et Laurent Spinelli, le créateur à besoin de bêta testeurs pour améliorer ce logiciel. Si vous rencontrez un bug ou que vous trouvez qu'il manque des fonctions, n'hésitez pas à le dire directement via <a
href="https://github.com/spin0us/MetaGlances/issues?state=open">la page suivante sur le GitHub officiel</a>.</p><p>Perso, je suis fan de MetaGlances, il y a un bon potentiel pour en faire un outil simple de supervision système.</p><p>Vous en pensez quoi ?</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/04/metaglances-une-interface-pour-les-gouverner-tous.html">MetaGlances, une interface pour les gouverner tous&#8230;</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=sbslrFr7kC4:C-aOLaUEVZY:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=sbslrFr7kC4:C-aOLaUEVZY:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/sbslrFr7kC4" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6801
title: Glances a son application Android
uri: Glances-a-son-application-Android
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/Su0T7Y0QWdk/glances-a-son-application-android.html

content:
<p>Jon Renner est un des contributeur actif du projet <a
href="https://github.com/nicolargo/glances">Glances</a>. Il vient de mettre en ligne sur Google Play la première version de son client Glances pour Android (<a
href="https://play.google.com/store/apps/details?id=org.jrenner.androidglances">cliquer ici pour télécharger Android Glances</a>).</p><p>&nbsp;</p><p><center></p><div
class="wp-caption aligncenter" style="width: 163px;  border: 1px solid #dddddd; background-color: #f3f3f3; padding-top: 4px; margin: 10px; text-align:center; display: block; margin-right: auto; margin-left: auto;"><a
href="https://play.google.com/store/apps/details?id=org.jrenner.androidglances"><img
alt="" src="https://lh5.ggpht.com/urrsYvilkFjkemSWQMpnalIzKqixqYEorC341LEHxtn54wvQscOnlcBbh_VSJCjSXdk=h230" width="153" height="230" /></a><p
style=' padding: 0 4px 5px; margin: 0;'  class="wp-caption-text">Glances 4 Android</p></div><p></center>&nbsp;</p><p>Ce client permet d'aller directement consulter les statistique d'un serveur Glances à partir d'un smartphone ou d'une tablette Android.</p><p>Contrairement au projet <a
href="http://blog.nicolargo.com/2013/04/metaglances-une-interface-pour-les-gouverner-tous.html">MetaGlances</a> (dont j'ai parlé la semaine dernière), il ne necessite pas de machine intermédiaire et utilise une connection directe (via XML RPC) entre un device Android et votre serveur (qui doit bien sûr pésenter une interface publique). Pour cela, Jon a développé <a
href="https://github.com/jrenner/java-glances">une API Glances en Java</a> qui peut être récupéré et utilisé pour d'autres besoins.</p><p>Encore un grand bravo/merci pour son travail sur le coeur de Glances et pour le développement de l'ecosystème qui est en train de ce construire autour de Glances.</p><p>Quelques liens:</p><ul><li><a
href="https://play.google.com/store/apps/details?id=org.jrenner.androidglances"><span
style="line-height: 13px;">Le logiciel Android Glances sur Google Play</span></a></li><li><a
href="https://github.com/jrenner/java-glances">L'API Glances en Java</a></li><li><a
href="http://blog.nicolargo.com/2013/04/metaglances-une-interface-pour-les-gouverner-tous.html">Le projet MetaGlances</a></li></ul><p>Cet article <a
href="http://blog.nicolargo.com/2013/04/glances-a-son-application-android.html">Glances a son application Android</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=Su0T7Y0QWdk:75AcsgOAZIc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=Su0T7Y0QWdk:75AcsgOAZIc:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/Su0T7Y0QWdk" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6809
title: Raspberry Pi &#8211; Faire un backup de sa carte SD
uri: Raspberry-Pi-Faire-un-backup-de-sa-carte-SD
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/tDzWViTmn_0/raspberry-pi-faire-un-backup-de-sa-carte-sd.html

content:
<p style="text-align: justify;"><a href="media/42f4cfc0.cartesd.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/cartesd.jpg"><img class=" wp-image-6811 alignright" alt="cartesd" src="media/42f4cfc0.cartesd.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/cartesd.jpg" width="322" height="150" /></a>Ce qu'il y a de bien avec un Raspberry Pi c'est que l'on peut passer d'un système à l'autre en changeant simplement de carte SD et en redémarrant la machine. On peut ainsi avoir une carte avec une distribution classique (Raspbian), une autre avec un média center (OpenELEC ou Raspbmc) ou encore une autre avec un desktop light (ArchLinux). L'idéal étant d'avoir à disposition autant de cartes SD que de systèmes (vu le prix des cartes, ce n'est pas un gros investissement).</p>
<p style="text-align: justify;">Cependant, il est parfois utile, pour des tests ou pour économiser le nombre de ces cartes de sauvegarder puis de restaurer l'image disque sur une machine GNU/Linux classique. C'est ce que nous allons voir dans ce billet.</p>
<h1>Sauvegarde intégral d'une carte SD</h1>
<p>On commence par insérer la carte SD dans le lecteur du PC GNU/Linux sur lequel on veut faire la sauvegarde.</p>
<p>Pour identifier le périphérique correspondant à la carte SD à sauvegarder sur son système, il suffit de saisir la commande suivante et de regarder le device qui correspond à sa carte SD:</p>
<pre>$ sudo fdisk -l
[sudo] password for nicolargo: 

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 têtes, 63 secteurs/piste, 38913 cylindres, total 625142448 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x000e3a56

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sda1   *        2048   617170943   308584448   83  Linux
/dev/sda2       617172990   625141759     3984385    5  Étendue
/dev/sda5       617172992   625141759     3984384   82  partition d'échange Linux / Solaris

Disk /dev/sdb: 16.0 GB, 16012804096 bytes
64 têtes, 32 secteurs/piste, 15271 cylindres, total 31275008 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00014d34

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdb1            8192      122879       57344    c  W95 FAT32 (LBA)
/dev/sdb2          122880    31275007    15576064   83  Linux</pre>
<p>J'ai donc deux disques détectés sur ma machine:</p>
<ul>
<li>/dev/sda (disque de 320 Go) qui est mon disque dur système sur mon PC portable. Ce n'est pas ce disque que l'on veut sauvegarder.</li>
<li><strong>/dev/sdb</strong> (disque de 16 Go) qui est ma carte SD que je souhaite sauvegarder.</li>
</ul>
<p>On lance la sauvegarde avec la commande suivante:</p>
<pre class="lang:sh decode:true">sudo dd if=/dev/sdb | gzip -9 &gt; ./raspberry-20130420-sdb.img.gz</pre>
<h1>Restauration intégrale d'une carte SD</h1>
<p>Après avoir inséré la clé USB sur laquelle on souhaite faire la restauration (attention la clé va être effacée), on commence par identifier l'identifiant du périphérique comme dans le paragraphe précédant (/dev/sdb dans mon cas).</p>
<p>Puis ensuite, il suffit de saisir la ligne de commande:</p>
<pre class="lang:sh decode:true">gunzip ./raspberry-20130420-sdb.img.gz | sudo dd of=/dev/sdb</pre>
<p style="text-align: center;">---</p>
<p style="text-align: center;"><span style="color: #ff0000;">Nous allons ensuite voir comment sauvegarder les carte SD partition par partition, ce qui peut être utile si vous ne voulez que sauvegarder le système et pas une éventuelle partition de données.</span></p>
<h1>Sauvegarde partition par patition d'une carte SD</h1>
<p>Comme on peut le voir sur les deux dernières lignes de la commande fdisk du premier paragraphe , la carte SD (point de montage /dev/sdb dans mon cas) comporte deux partitions (mais il peut y en avoir plus selon la configuration de votre Raspberry Pi).</p>
<p>Il faut sauvegarder toutes les partitions:</p>
<pre class="lang:sh decode:true">sudo dd if=/dev/sdb1 | gzip -9 &gt; ./raspberry-20130420-sdb1.img.gz
sudo dd if=/dev/sdb2 | gzip -9 &gt; ./raspberry-20130420-sdb2.img.gz</pre>
<p>Ces commandes peuvent prendre plus ou moins de temps selon la taille de votre carte SD. J'ai ainsi mis plus d'une dizaine de minute pour faire la sauvegarde de ma carte SD de 16 Go. On voit ici l'avantage de choisir la taille de ses cartes SD en fonction de ses besoins...</p>
<h1>Restauration partition par patition d'une carte SD</h1>
<p>Nous allons maintenant restaurer la carte préalablement sauvegardée. La procédure consiste à créer les partitions avec la commande <em>fdisk</em> puis ensuite à y écrire les images avec <em>dd</em>.</p>
<p>On part sur le principe ou la carte est vierge est sans partition (sinon utilisé la commande <strong>d</strong> pour chacune des partitions puis <strong>w</strong> pour valider):</p>
<pre class="lang:sh decode:true">$ sudo fdisk /dev/sdb

Commande (m pour l'aide): p

Disk /dev/sdb: 16.0 GB, 16012804096 bytes
64 têtes, 32 secteurs/piste, 15271 cylindres, total 31275008 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00014d34

Périphérique Amorce  Début        Fin      Blocs     Id  Système</pre>
<p>On commence par créer le première partition (sdb1):</p>
<pre class="lang:sh decode:true">Commande (m pour l'aide): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Numéro de partition (1-4, par défaut 1): 
Utilisation de la valeur par défaut 1
Premier secteur (2048-31275007, par défaut 2048): 8192
Dernier secteur, +secteurs or +taille{K,M,G} (8192-31275007, par défaut 31275007): 122879

Commande (m pour l'aide): t
Partition sélectionnée 1
Code Hexa (taper L pour lister les codes): c
Type système de partition modifié de 1 à c (W95 FAT32 (LBA))</pre>
<p>puis la seconde (sdb2):</p>
<pre class="lang:sh decode:true crayon-selected">Commande (m pour l'aide): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Numéro de partition (1-4, par défaut 2): 
Utilisation de la valeur par défaut 2
Premier secteur (2048-31275007, par défaut 2048): 122880
Dernier secteur, +secteurs or +taille{K,M,G} (122880-31275007, par défaut 31275007):

Commande (m pour l'aide): p

Disk /dev/sdb: 16.0 GB, 16012804096 bytes
64 têtes, 32 secteurs/piste, 15271 cylindres, total 31275008 secteurs
Unités = secteurs de 1 * 512 = 512 octets
Taille de secteur (logique / physique) : 512 octets / 512 octets
taille d'E/S (minimale / optimale) : 512 octets / 512 octets
Identifiant de disque : 0x00014d34

Périphérique Amorce  Début        Fin      Blocs     Id  Système
/dev/sdb1   *        8192      122879       57344    c  W95 FAT32 (LBA)
/dev/sdb2          122880    31275007     15576064  83  Linux</pre>
<p>On valide les partitions:</p>
<pre class="lang:sh decode:true">Commande (m pour l'aide): w
Synchronisation des disques.</pre>
<p>Ensuite on restaure les images:</p>
<pre>gunzip ./raspberry-20130420-sdb1.img.gz | sudo dd of=/dev/sdb1
gunzip ./raspberry-20130420-sdb2.img.gz | sudo dd of=/dev/sdb2</pre>
<p>Et voilà le travail !</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=tDzWViTmn_0:RktM7KGF8b4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=tDzWViTmn_0:RktM7KGF8b4:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/tDzWViTmn_0" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6815
title: Test d&#8217;OpenElec sur Raspberry Pi
uri: Test-d-OpenElec-sur-Raspberry-Pi
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/WNduSHRS19A/test-openelec-raspberry-pi.html
content:
<p
style="text-align: justify;">Avec l'apparition du <a
onclick="_gaq.push(['_trackEvent', 'Click Kubii', 'www.kubii.fr']);" href="http://www.kubii.fr/">Raspberry Pi</a> et de son GPU Broadcom VideoCore IV intégré, les logiciels de "media center", c'est à dire les systèmes permettant de connecter directement un PC à une télévision pour exploiter sa bibliothèque vidéo, se sont rapidement intéressés à ce nouvel OVNI technologique. Ainsi plusieurs distributions Linux orientés "media center" ont vus le jour pour nous permettre et permettent, pour moins de 30€, de disposer d'un système intégré pour lire des vidéos HD téléchargés plus ou moins légalement sur le Internet.</p><p
style="text-align: justify;">Nous allons dans ce billet nous intéresser à l'une d'entre elle: <a
href="http://openelec.tv/">OpenElec</a> (<strong>O</strong>pen <strong>E</strong>mbedded <strong>L</strong>inux <strong>E</strong>ntertainment <strong>C</strong>enter) qui dispose d'un bonne notoriété sur les réseaux sociaux, notamment grâce à une interface de navigation fluide et à une documentation bien fournie (<a
href="http://wiki.openelec.tv/index.php?title=Main_Page">notamment leur Wiki</a>). Il faut juste garder en tête que toutes ces distributions "media center" se base sur le même noyau composé de <a
href="http://www.raspbian.org/">Raspbian</a> (le système d'exploitation Debian adapté au Raspberry Pi) et <a
href="http://xbmc.org/">XBMC</a> pour le logiciel.</p><p
style="text-align: justify;"><a
href="media/7a725e49.capture_078.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_078.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6816" alt="OpenElec screenshot" src="media/7a725e49.capture_078.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_078.png" width="554" height="321" /></a></p><h1>Installation d'OpenElec</h1><p
style="text-align: justify;">Pour installer OpenElec, les auteurs du projet ont eu la bonne idée de créer un script qui va partitionner et graver la dernière version du système (3.0.1 au moment de l'écriture de cet article) sur une carte SD que vous n'aurez plus qu'à insérer dans votre Raspberry Pi.</p><p>Voici les lignes de commandes à saisir sur votre machine GNU/Linux pour installer la version 3.0.1 d'OpenElec sur une carte SD disponible via l'identifiant système /dev/sdb (<span
style="color: #ff0000;">c'est bien sûr à contrôler avec la commande "fdisk -l" pour être sûr que /dev/sdb correspond bien à votre carte SD histoire de ne pas effacer un autre disque dur</span>):</p><pre class="crayon-plain-tag">wget -O OpenELEC-RPi.arm-3.0.1.tar.bz2 http://openelec.tv/get-openelec/download/finish/10-raspberry-pi-builds/87-openelec-stable-raspberry-pi-arm
bzip2 -d OpenELEC-RPi.arm-3.0.1.tar.bz2
tar xvf OpenELEC-RPi.arm-3.0.1.tar
cd OpenELEC-RPi.arm-3.0.1/
sudo ./create_sdcard /dev/sdb</pre><p></p><h1>Installation de votre Raspberry Pi</h1><p>Voici la configuration que j'ai utilisé pour le test:</p><ul><li>Un téléviseur <a
href="http://www.lesnumeriques.com/tv-televiseur/samsung-ue46b6000-p6652/test.html">Samsung UE46B6000</a> (pour une description de mon système home cinéma avant l'arrivée de mon Raspberry, <a
href="http://blog.nicolargo.com/2009/06/mon-systeme-home-cinema.html">cliquez ici !</a>)</li><li>Un <a
onclick="_gaq.push(['_trackEvent', 'Click Kubii', 'www.kubii.fr']);" href="http://www.kubii.fr/">Raspberry Pi model B</a> (j'ai ensuite utilisé un model A)</li><li>Une carte SD 4 Go (mais une de 2 Go suffit) avec OpenELec 3.0.1 (voir le premier paragraphe pour l'installation)</li><li>Un disque dur USB contenant mes vidéos (<em>attention de bien alimenter le disque par une source externe car le Raspberry Pi n'y arrive pas</em>).</li><li>Un câble HDMI pour la liaison numérique avec le téléviseur (vidéo, son et télécommande avec la norme <a
href="http://fr.wikipedia.org/wiki/High-Definition_Multimedia_Interface#Consumer_Electronics_Control_.28CEC.29_:_contr.C3.B4le_.C2.AB_inter-.C3.A9l.C3.A9ments_.C2.BB">HDMI CEC</a>).</li><li>Une souris pour manipuler l'interface d'OpenElec ou mieux encore votre télécommande si votre téléviseur est compatible avec la norme HDMI CEC (comme c'est le cas pour mon téléviseur Samsung via l'implémentation de la <a
href="http://www.samsung.com/fr/article/use-one-remote-to-control-your-entire-entertainment-system-with-anynet">fonction Anynet+</a>)</li><li>Un câble réseau (pour l'accès distant et l'accès au NAS) (optionnel et seulement pour le model B)</li></ul><p
style="text-align: justify;">Après branchement, le système devrait démarrer automatiquement et l'interface va apparaître sur votre téléviseur. Si vous avez un modèle B, l'accés en SSH (l'adresse IP de votre Raspberry Pi est donnée dans le menu configuration) se fait à l'aide de l'utilisateur <em>root</em> et du mot de passe <em>openelec</em>.</p><p><span
style="font-size: 2em;">Test de la bête</span></p><p>J'ai d'abord testé OpenElec avec un Raspberry Pi model B puis quand j'ai reçu <span
style="text-decoration: underline;">mon model A</span> j'ai basculé vers ce boîtier car je n'utilise pas mon NAS pour stocker mes films mais <span
style="text-decoration: underline;">un simple disque dur portable connecté directement au Raspberry Pi</span>.</p><p
style="text-align: justify;">Le <strong>démarrage</strong> du système est assez rapide (entre 1 minute et 1 minute 30), on arrive directement sur l'interface XMBC customisée à la sauce OpenElec. La navigation dans les différents menus se fait de manière relativement fluide. Le "relativement" n'est pas vraiment un problème quand comme moi vous utilisez une télécommande. Par contre on ressent une certaine difficulté du Raspberry Pi à suivre le rythme quand on utilise une souris. <em>A noter que l'utilisation direct de la télécommande est assez blufante, une vraie bonne idée cette norme HDMI CEC.</em></p><p
style="text-align: justify;">Sur ma configuration, je n'ai presque pas eu de <strong>configuration</strong> à faire mis à part un calibrage de l'écran. En effet, je perdais des petites bandes d'image sur les cotés. Le plus simple pour faire cela est de lire un film et de cliquer sur le bouton "Vidéos - Paramétrage" puis "Étalonnage de l'écran". Vous aurez alors droit à un wizard qui va vous permettre de bien redimensionner la vidéo par rapport à votre télévision.</p><p
style="text-align: justify;">On peut ensuite passer au test de <strong>lecture vidéo</strong> qui est l'objectif principal de notre boîtier.  Pour cela j'ai fait tourner pendant une journée entière OpenElec en lecture d'un rip HD Xvid 720p de "The art of flying" qui avec ses traveling n'est pas une vidéo facile à décoder.</p><p><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6825" alt="The art of flying" src="media/bdac9c77.capture_079-580x337.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/04/capture_079-580x337.png" width="580" height="337" /></p><p
style="text-align: justify;">Le résultat est très concluant, aucune saccade constatée de la vidéo lors de la lecture (mais bon je suis pas non plus resté toutes la journée devant l'écran <img
src="media/a8d8b248.icon_smile.gif" data-original-source="http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> ). Le son 5.1, récupéré directement via la liaison HDMI, est bon. J'ai également fait des tests avec des trailers en HD 1080p et il n'y a également aucun problème de lecture. Le GPU fait vraiment bien son boulot.</p><p
style="text-align: justify;">Le Raspberry Pi ne chauffe presque pas (j'ai mis la carte <a
onclick="_gaq.push(['_trackEvent', 'Click Kubii', 'www.kubii.fr']);" href="http://www.kubii.fr/">dans un boîtier transparent que l'on peut trouver pour quelques €</a> pour que la carte ne prenne pas la poussière et pour éviter que mes enfants mettent les doigts dessus, c'est curieux ces bêtes là...).</p><p
style="text-align: justify;">A noter qu'avant la rédaction de ce billet, j'avais demandé à mon copain Twitter des retours d'expériences sur les "media center" du Raspberry PI. De nombreux followers m'avaient signalés qu'il avait des problèmes de lags lors de la lecture de vidéo HD 1080p sur OpenElec. Je n'ai pas constaté de problème sur ma configuration et je pense que leurs problèmes viennent du fait qu'il utilise des vidéos stockées sur un NAS. Il faut donc regarder du coté du réseau et notamment si vous utilisez un dongle Wifi sur votre Raspberry Pi.</p><h1>Problème d'avance et de retour rapide</h1><p>Lors des tests, j'ai constaté un problème au niveau de l'avance et du retour rapide lors de la lecture des vidéos. C'est <a
href="http://openelec.tv/forum/124-raspberry-pi/38952-fast-forward-and-rewind">un problème connu</a> au niveau de XBMC.</p><p>Il existe heureusement <a
href="http://www.raspberrypi.org/phpBB3/viewtopic.php?p=117234#p117234">une solution de contournement</a> qui consiste à remplacer le "fast forward" (&amp; rewind) par le "step forward" (&amp; rewind). Pour cela, il faut éditer le fichier remote.xml (à chercher sur votre configuration via la commande "find / -name remote.xml"), puis à éditer la section FullscreenVideo:</p><pre class="crayon-plain-tag">&lt;FullscreenVideo&gt;
    &lt;remote&gt;
      &lt;title&gt;Stop&lt;/title&gt;
      &lt;back&gt;Stop&lt;/back&gt;
      &lt;reverse&gt;StepBack&lt;/reverse&gt;
      &lt;forward&gt;StepForward&lt;/forward&gt;
    &lt;/remote&gt;
  &lt;/FullscreenVideo&gt;</pre><p>Le pas par défaut est de 30 secondes, pour le changer il faut éditer un autre fichier nommé advancedsettings.xml qui est à créer pour l'occasion (<a
href="http://wiki.xbmc.org/index.php?title=Userdata/advancedsettings.xml">cliquer ici pour voir comment créer ce fichier</a> selon la documentation de XBMC) puis à l'éditer avec le contenu suivant:</p><pre class="crayon-plain-tag">&lt;advancedsettings&gt;
&lt;video&gt; &lt;!-- "VideoSettings" instead of "video" for builds prior to May 22, 2006 --&gt;
  &lt;usetimeseeking&gt;true&lt;/usetimeseeking&gt;  &lt;!-- Whether to use time based or percentage based seeking. --&gt;
  &lt;timeseekforward&gt;15&lt;/timeseekforward&gt;  &lt;!-- Time to seek forward in seconds when doing a short seek.  Defaults to 30. --&gt;
  &lt;timeseekbackward&gt;-15&lt;/timeseekbackward&gt;  &lt;!-- Time to seek backward in seconds when doing a short seek.  Defaults to -30. --&gt;
  &lt;timeseekforwardbig&gt;600&lt;/timeseekforwardbig&gt;  &lt;!-- Time to seek forward in seconds when doing a long seek.  Defaults to 600 (10 minutes). --&gt;
  &lt;timeseekbackwardbig&gt;-600&lt;/timeseekbackwardbig&gt;
&lt;/video&gt;
&lt;/advancedsettings&gt;</pre><p></p><h1>Conclusion</h1><p>Le Raspberry Pi est vraiment un joujou surprenant par ses capacités à faire des choses habituellement réservées à du matériel beaucoup plus cher. Avec les solutions intégrées comme OpenElec, on n'a même plus la complexité de configuration et ces solutions de "media center" deviennent à la porté de n'importe quel bidouilleur.</p><h1>... pour faire la fine bouche</h1><p
style="text-align: justify;">Il manque encore le support du HDMI Ethernet Channel qui permettrait au Raspberry d'utiliser via le câble HDMI la liaison Internet de la télé. C'est prévue dans la norme HDMI 1.4 mais pas implémenté dans les modèles actuels du Raspberry Pi (<a
href="http://www.raspberrypi.org/phpBB3/viewtopic.php?t=6378&amp;p=243457">voir la page suivante pour les explications</a>).</p><p
style="text-align: center;">---</p><p><span
style="color: #000000;">Allez, à vos claviers, parlez moi de votre configuration "media center". Utilisez-vous OpenElec ou bien une autre distribution ? Si oui pourquoi ?</span></p><p
style="text-align: center;">---</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/04/test-openelec-raspberry-pi.html">Test d&#8217;OpenElec sur Raspberry Pi</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=WNduSHRS19A:ZssEmSkyzpk:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=WNduSHRS19A:ZssEmSkyzpk:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/WNduSHRS19A" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6833
title: De Squeeze à Wheezy&#8230;
uri: De-Squeeze-à-Wheezy
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/y8yqU_zieq0/de-squeeze-a-wheezy.html
content:
<p
style="text-align: justify;">Depuis aujourd'hui, Wheezy est officiellement devenue la septième version stable du système d'exploitation GNU/Linux Debian. Nous allons dans ce billet voir une migration simple d'un serveur Squeeze (Debian 6) vers cette nouvelle version de Debian. Cette migration est adapté uniquement aux serveurs avec une configuration standard. Pour des configurations exotiques, je vous conseille fortement de <a
href="http://www.debian.org/releases/wheezy/amd64/release-notes/ch-upgrading.fr.html">suivre la procédure officielle</a> très bien détaillée sur le site de Debian.</p><h1 style="text-align: justify;">Avant de commencer...</h1><ul><li>Effectuez la migration à un moment ou vous avez du temps et ou votre serveur n'est pas beaucoup sollicitée (par exemple un dimanche pour un serveur perso).</li><li><a
href="http://blog.nicolargo.com/2011/02/sauvegarde-journalisee-de-votre-machine-avec-rsnapshot.html">Sauvegarder vos données avant de commencer</a>.</li><li>Préparez <a
href="http://blog.nicolargo.com/2011/08/installation-pas-a-pas-dun-serveur-de-blog-wordpress-sur-debian-squeeze.html">une procédure</a> de ré-installation simple et rapide au cas ou quelque chose se passe mal.</li><li>Idéalement se faire la main sur un serveur non critique avant de passer aux serveurs critiques.</li><li>Pas de panique, ce n'est que de l'informatique.</li></ul><p>Se loguer en root (ou avec un user ayant les droit root):</p><pre class="crayon-plain-tag">su - root</pre><p></p><h1 style="text-align: justify;">On commence par préparer le terrain</h1><p
style="text-align: justify;">Avant de procéder à la migration vers Wheezy, il faut s'assurer que votre Squeeze et propre et à jour. Pour cela, on commence par mettre à jour les repos et les packages Squeeze:</p><p></p><pre class="crayon-plain-tag">$ apt-get update &amp;&amp; apt-get upgrade</pre><p>On doit ensuite et c'est une des étapes les plus lourdes, vérifier que l'ensemble des repos non standards sont disponibles pour Wheezy.</p><p>On commence par visualiser le fichier /etc/apt/sources.list:</p><pre class="crayon-plain-tag">deb http://debian.mirrors.ovh.net/debian/ squeeze main
deb-src http://debian.mirrors.ovh.net/debian/ squeeze main
deb http://security.debian.org/ squeeze/updates main
deb-src http://security.debian.org/ squeeze/updates main
## DotDeb Package
deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all</pre><p>On peut donc voir que j'utilise les miroirs officiels de Debian fournis par OVH (l'hébergeur de mon serveur de test) <a
href="http://debian.mirrors.ovh.net/debian/dists/">qui sont disponibles pour Wheezy</a> ainsi que le repo DotDeb  <a
href="http://packages.dotdeb.org/dists/">également disponible pour Wheezy</a>.</p><p>On poursuit avec les repos disponibles sous /etc/apt/sources.list.d/. Je n'ai personnellement qu'un seul repo qui est compatible avec Wheezy:</p><pre class="crayon-plain-tag">$ cat /etc/apt/sources.list.d/10gen.list
deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen</pre><p></p><h3>Pour les utilisateurs de sudo</h3><p>Si vous utilisez sudo sur votre système, il faut effectuer les manipulations suivantes avant la mise à jour sous peine de se retrouver sans fichier de configuration valable.</p><pre class="crayon-plain-tag">cp /etc/sudoers /etc/sudoers.d/mysettings</pre><p>On édite ensuite le fichier /etc/sudoers.d/mysettings pour lui enlever les lignes <em>Defaults</em> et <em>#includedir</em>. Lors de l'upgrade, le fichie /etc/sudoers doit être remplacé par le nouveau.</p><h3>Pour les utilisateurs de php5-suhosin</h3><p>Le paquet php5-suhosin n'existe plus dans cette nouvelle version de Debian. Il faut donc saisir la commande suivante pour supprimer la configuration correspondante <em>/etc/php5/conf.d/suhosin.ini</em>:</p><pre class="crayon-plain-tag">dpkg --purge php5-suhosin</pre><p></p><h1>Puis on migre vers Debian 7 (aka) Wheezy</h1><p>Si tous les repos que vous utilisez sont compatibles, alors il suffit de saisir la commande suivante pour migrer les fichiers de configuration vers Wheezy:</p><pre class="crayon-plain-tag">sed -i 's/squeeze/wheezy/g' /etc/apt/sources.list
for i in `ls /etc/apt/sources.list.d/*.list`; do sed -i 's/squeeze/wheezy/g' $i; done</pre><p>On va ensuite enchaîner la mise à jour proprement dite en faisant:</p><ul><li>une mise à jour des sources (repos)</li><li>une première mise à jour minimale</li><li>une seconde mise à jour totale</li></ul><p></p><pre class="crayon-plain-tag">apt-get update
apt-get upgrade
apt-get dist-upgrade</pre><p></p><p
style="text-align: justify;">Il ne vous reste plus qu'à attendre et vérifier qu'il n'y a pas de problème lors des ces trois étapes. Si vous avez une erreur, attention de bien la résoudre (Google est ton ami) avant de passer à l'étape suivante. PAr exemple, il est possible que certains paquets n'arrive pas à se mettre à jour. Les deux ligne suivantes devraient corriger ce problème:</p><p></p><pre class="crayon-plain-tag">apt-get -f install
apt-get dist-upgrade</pre><p>On finalise la configuration en vérifiant que le fichier</p><p>Sinon, il ne vous reste plus qu'à redémarrer votre serveur (cette dernière étape étant facultative).</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/05/de-squeeze-a-wheezy.html">De Squeeze à Wheezy&#8230;</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=y8yqU_zieq0:oR8CV9tpPPE:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=y8yqU_zieq0:oR8CV9tpPPE:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/y8yqU_zieq0" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6841
title: Witsub télécharge automatiquement vos sous-titres
uri: Witsub-télécharge-automatiquement-vos-sous-titres
url: http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/JST6zl5pHLg/witsub-telecharge-sous-titres.html
content:
<p
style="text-align: justify;"><a
href="https://github.com/nicolargo/witsub"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-full wp-image-6842" alt="subtitles" src="media/e5d31741.subtitles.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/05/subtitles.jpg" width="499" height="258" /></a></p><p
style="text-align: justify;"><a
href="https://github.com/nicolargo/witsub">Witsub</a> est mon dernier <a
href="https://github.com/nicolargo">projet personnel</a> visant à développer un utilitaire en ligne de commande permettant de télécharger automatiquement l'ensemble des sous-titres disponibles de votre bibliothèques de vidéos. L'objectif étant de disposer d'un outil simple, rapide, efficace et facilement déclenchable par script shell.</p><h1>Comment marche Witsub</h1><p
style="text-align: justify;">Witsub est développé en pure Python (sans bibliothèque non standard) et devrait donc fonctionner sur tous les systèmes d'exploitations (je l'ai uniquement testé sous GNU/linux). Dans son utilisation la plus simple, il prend en entrée un fichier ou un répertoire et une langue souhaitée pour les sous-titres. Ensuite il va parcourir la base de donnée <a
href="http://www.opensubtitles.org/fr">OpenSubtitles</a> pour y trouver les fichiers .srt correspondant à vos fichiers vidéos.</p><p
style="text-align: justify;">Pour installer Witsub, vous pouvez directement<a
href="https://github.com/nicolargo/witsub/blob/master/witsub/witsub.py"> télécharger le script sous Github</a>:</p><p></p><pre class="crayon-plain-tag">wget https://github.com/nicolargo/witsub/blob/master/witsub/witsub.py
chmod a+x witsub.py</pre><p>ou bien utiliser les sources avec <a
href="https://s3.amazonaws.com/witsub/witsub-1.1.tar.gz">l'installeur</a> au format tar.gz:</p><pre class="crayon-plain-tag">wget https://s3.amazonaws.com/witsub/witsub-1.1.tar.gz
tar zxvf witsub-1.1.tar.gz
cd witsub-1.1
sudo python setup.py install</pre><p>ou plus propre <a
href="https://pypi.python.org/pypi/witsub">utiliser PiPY</a> pour l'installer sur votre système:</p><pre class="crayon-plain-tag">sudo pip install witsub</pre><p>Un exemple valant mieux qu'un long discours, voici Witsub en action.</p><p
style="text-align: justify;">On commence par visualiser le répertoire videos avant le lancement de Witsub</p><p></p><pre class="crayon-plain-tag">videos
	├── A wonderfull movies.avi
	├── A top serie
	│   ├── A top serie - S1E01.avi
	│   └── A top serie - S1E02.avi
	└── Not a video file.txt</pre><p>Puis on lance Witsub en fixant la langue Française (code ISO <em><strong>fre</strong></em>, voir la liste complète <a
href="http://www.loc.gov/standards/iso639-2/php/code_list.php">des codes ici</a>):</p><pre class="crayon-plain-tag">witsub -l fre -f ./videos</pre><p>On se retrouve avec:</p><pre class="crayon-plain-tag">videos
	├── A wonderfull movies.avi
	├── A wonderfull movies.srt
	├── A top serie
	│&nbsp;&nbsp; ├── A top serie - S1E01.avi
	│&nbsp;&nbsp; ├── A top serie - S1E01.srt
	│&nbsp;&nbsp; ├── A top serie - S1E02.avi
	│&nbsp;&nbsp; └── A top serie - S1E02.srt
	└── Not a video file.txt</pre><p></p><h1>Voir ce qui se passe</h1><p>J'ai fait en sorte, avec l'option -V, que Witsub affiche chacune des étapes de sa recherche de sous-titres. Par exemple, pour forcer (-w) le téléchargement des sous-titres Anglais de la vidéo breakdance.avi en mode debug:</p><pre class="crayon-plain-tag"># witsub -V -w -f ./test/testdata/breakdance.avi
19/05/2013 15:19:29 DEBUG - Running witsub version 1.0
19/05/2013 15:19:29 DEBUG - Debug mode is ON
19/05/2013 15:19:29 DEBUG - Force overwrite if file exist: True
19/05/2013 15:19:29 DEBUG - No language define. Default is eng
19/05/2013 15:19:29 DEBUG - Subtitle language search set to eng
19/05/2013 15:19:29 DEBUG - Connect to XML-RPC server http://api.opensubtitles.org/xml-rpc
19/05/2013 15:19:29 DEBUG - Login to XML-RPC server &lt;ServerProxy for api.opensubtitles.org/xml-rpc&gt;
19/05/2013 15:19:29 DEBUG - Login successfull with status 200 OK
19/05/2013 15:19:29 DEBUG - Compute hash tag for file test/testdata/breakdance.avi
19/05/2013 15:19:29 DEBUG - Hash tag for file test/testdata/breakdance.avi is 0x8e245d9679d31e12L
19/05/2013 15:19:29 DEBUG - Search subtitle in the database
19/05/2013 15:19:29 DEBUG - Search done in 0.008 seconds
19/05/2013 15:19:29 DEBUG - 4 subtitles found
19/05/2013 15:19:29 DEBUG - Subtitle 1/4 (English - Dwnl: 364): The.Sea.Inside.2004.DVDRip.XviD-RiZZ.srt
19/05/2013 15:19:29 DEBUG - Subtitle 2/4 (English - Dwnl: 224): breakdance.srt
19/05/2013 15:19:29 DEBUG - Subtitle 3/4 (English - Dwnl: 421): breakdance2.srt
19/05/2013 15:19:29 DEBUG - Subtitle 4/4 (English - Dwnl: 143): breakdance2.srt
19/05/2013 15:19:29 DEBUG - Select the first one (most downloaded): The.Sea.Inside.2004.DVDRip.XviD-RiZZ.srt
19/05/2013 15:19:29 DEBUG - Download the compressed subtitle file (id 1951887680): http://dl.opensubtitles.org/en/download/filead/1951887680.gz
19/05/2013 15:19:30 DEBUG - Download processed in 0.05 seconds
19/05/2013 15:19:30 DEBUG - Unzip the compressed subtitle file
19/05/2013 15:19:30 DEBUG - Write the subtitle to test/testdata/breakdance.srt
19/05/2013 15:19:30 INFO - Download completed: test/testdata/breakdance.srt
19/05/2013 15:19:30 DEBUG - Logout from XML-RPC server &lt;ServerProxy for api.opensubtitles.org/xml-rpc&gt;
19/05/2013 15:19:30 DEBUG - Logout successfull with status 200 OK</pre><p></p><h1>Les sources !</h1><p>Witsub est hébergé sur GitHub: <a
href="https://github.com/nicolargo/witsub">https://github.com/nicolargo/witsub</a></p><p>Merci d'y poster vos problèmes, questions, demandes d'amélioration !</p><p>Faites tourner <img
src="media/a8d8b248.icon_smile.gif" data-original-source="http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /></p><p
style="text-align: justify;">PS: Je ne suis pas très actif sur le blog en ce moment, la faute à pas mal de choses qui me laissent peu d'énergie pour rédiger des billets. Mais ne vous inquiétez pas, certains sont en préparation, notamment un sur la nouvelle caméra pour Raspberry Pi.</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/05/witsub-telecharge-sous-titres.html">Witsub télécharge automatiquement vos sous-titres</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=JST6zl5pHLg:pilkIxfDR18:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=JST6zl5pHLg:pilkIxfDR18:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/JST6zl5pHLg" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6850
title: Test de la caméra Raspberry Pi 5M
uri: Test-de-la-caméra-Raspberry-Pi-5M
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/no-XGk3ajtA/test-de-la-camera-raspberry-pi-5m.html

content:
<p
style="text-align: justify;">Raspberry propose depuis peu et pour moins de 25€ une caméra dédiée à sa gamme Pi. Cette caméra de quelques grammes se connecte à une Raspberry Pi (model A ou B) à travers <a
href="http://www.mipi.org/specifications/camera-interface">une interface CSi v2</a> (MIPI camera interface) dédiée. Grâce à <a
href="http://www.kubii.fr/">Kubii (fournisseur Farnell en France)</a> j'ai pu obtenir rapidement un de ces caméra que nous allons tester dans ce billet.</p><h1>Découverte de la (petite) bête</h1><p
style="text-align: justify;">Avec un capteur d'une résolution native de 5 mégapixels (5M) et au niveau optique d'une lentille de focalisation fixe, la caméra peut servir d'appareil photo (résolution maximale de 2592 par 1944 pixels) ou de caméra vidéo (format HD juqu'à 1080p). Son poids est impressionnant car elle ne pèse pas plus de 4 grammes pour une dimension de L25 l20 H9 (en millimètre).</p><p
style="text-align: justify;"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6856" alt="Raspberry Camera 5M 1.3" src="media/83645f0e.capture_082-580x323.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/05/capture_082-580x323.png" width="580" height="323" /></p><h1 style="text-align: justify;">Installation de la caméra</h1><p
style="text-align: justify;">On commence par brancher la caméra sur l'interface CSi. Il faut y aller doucement, sans forcer comme un bourrin. Je vous conseille de visualiser la vidéo suivante:</p><p
style="text-align: center;"><iframe
width="640" height="390" src="http://www.youtube.com/embed/GImeVqHQzsE" frameborder="0" allowfullscreen=""></iframe></p><p
style="text-align: justify;">Il faut disposer d'une distribution Raspbian à jour avant de pouvoir activer la caméra:</p><p></p><pre class="crayon-plain-tag">sudo apt-get update &amp;&amp; sudo apt-get upgrade</pre><p>Puis on lance ensuite l'utilitaire raspi-config ou un nouveau menu devrait vous permettre d'activer la caméra (choix numéro 5 - Activate the camera):</p><pre class="crayon-plain-tag">sudo raspi-config</pre><p>Un reboot plus tard vous pouvez commencer à jouer avec la caméra</p><h1>Utilisation de la caméra pour prendre des photos</h1><p>Première surprise un peu désagréable: la caméra n'est pas reconnue comme un device vidéo standard (accessible via /dev/videoX). En l'état actuel des choses on ne peut donc pas l'utiliser avec une bibliothèque comme GStreamer.</p><p>Pour utiliser la caméra comme appareil photo, il faut donc passer par un utilitaire installé de base dans Raspbian: <a
href="https://github.com/raspberrypi/userland/tree/master/host_applications/linux/apps/raspicam">Raspistill (les sources sont disponibles sur Github)</a>.</p><p>Ce logiciel est utilisable en ligne de commande.</p><p>Prenons donc notre première "photo" en résolution maximale et à main levé (2592 par 1944 pixels):</p><pre class="crayon-plain-tag">raspistill -o image001.jpg</pre><p></p><p
style="text-align: center;"><a
title="RaspberryCamera by nicolargo, on Flickr" href="http://www.flickr.com/photos/nicolargo/8815489915/"><img
alt="RaspberryCamera" src="media/8cea34b9.8815489915_82ba673938.jpg" data-original-source="http://farm6.staticflickr.com/5322/8815489915_82ba673938.jpg" width="500" height="375" /></a></p><p>La même photo avec l'option de stabilisation activée (pas de grosse différence mais je ne bougeais pas):</p><pre class="crayon-plain-tag">raspistill -ev -o image002.jpg</pre><p></p><p
style="text-align: center;"><a
title="RaspberryCamera by nicolargo, on Flickr" href="http://www.flickr.com/photos/nicolargo/8826075912/"><img
alt="RaspberryCamera" src="media/c4ac4bba.8826075912_69438236a6.jpg" data-original-source="http://farm4.staticflickr.com/3778/8826075912_69438236a6.jpg" width="500" height="375" /></a></p><p>Il est possible de désactiver la compression JPEG en utilisant le tag --raw (mais attention la taille des images passes à plus de 5 Mo):</p><pre class="crayon-plain-tag">raspistill --raw -o image002.jpg</pre><p>Voir le résultat <a
href="http://www.flickr.com/photos/nicolargo/8826072432/in/set-72157633681798672">ici</a>.</p><p>Il est bien sûr possible de fixer la résolution avec les tag -h et -w. Par exemple une photo en 1280x1024:</p><pre class="crayon-plain-tag">raspistill -w 1280 -h 1024 -o image003.jpg</pre><p><a
title="RaspberryCamera by nicolargo, on Flickr" href="http://www.flickr.com/photos/nicolargo/8826065002/"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter" alt="RaspberryCamera" src="media/5492f4e5.8826065002_4e78b457a0.jpg" data-original-source="http://farm3.staticflickr.com/2852/8826065002_4e78b457a0.jpg" width="500" height="400" /></a></p><h1>Utilisation de la caméra pour capturer des vidéo</h1><p>Tout comme pour les photos, il faut passer par le l'utilitaire <a
href="https://github.com/raspberrypi/userland/tree/master/host_applications/linux/apps/raspicam">Raspivid (les sources sont disponibles sur Github)</a>. Le logiciel va permettre de générer des vidéos au format H.264.</p><p>Capturons notre première vidéo en full HD (1080p) pendant  10 secondes (-t 10000):</p><pre class="crayon-plain-tag">raspivid -t 10000 -o video001.h264</pre><p>La vidéo est stocké au format H.264 dans le fichier video001.h264. Pour lire cette vidéo sur votre Raspberry, vous pouvez utiliser la commande omxplayer qui va utiliser le GPU interne et afficher la vidéo d'une manière fluide sans consommation CPU.</p><pre class="crayon-plain-tag">omxplayer video001.h264</pre><p>On peut voir que la qualité du capteur est au rendez-vous, la vidéo est lumineuse et fluide, comparable à ce que l'on peut obtenir avec un bon smartphone.</p><p>Pour activer la prévisualisation de la vidéo dans un coin de l'écran (position 0x0 et taille de 640x480) on peut utiliser l'option -p:</p><pre class="crayon-plain-tag">raspivid -t 10000 -p 0,0,640,480 -o video0012.h264</pre><p></p><h1>Aller plus loin ?</h1><p>La documentation officielle des deux commandes.</p><h3>Raspistill</h3><p></p><pre class="crayon-plain-tag">raspistill
==========
--width,	-w		Set image width &lt;size&gt;
--height,	-h		Set image height &lt;size&gt;
--quality,  -q		Set jpeg quality &lt;0 to 100&gt;
Quality 100 is almost completely uncompressed. 75 is a good all round value
--raw,	-r		Add raw bayer data to jpeg metadata
This option inserts the raw Bayer data from the camera in to the JPEG metadata
--output	-o		Output filename &lt;filename&gt;.
Specify the output filename. If not specified, no file is saved. If the filename is '-', then all output is sent to stdout.
--verbose,	-v		Output verbose information during run
Outputs debugging/information messages during the program run.
--timeout,	-t		Time before takes picture and shuts down.
The program will run for this length of time, then take the capture (if output is specified). If not specified, this is set to 5 seconds
--timelapse,-tl		Timelapse mode.
The specific value is the time between shots in milliseconds. Note you should specify %d at the point in the filename where you want a frame count number to appear. e.g.
	-t 30000 -tl 2000 -o image%d.jpg
will produce a capture every 2 seconds, over a total period of 30s, named image1.jpg, image2.jpg..image15.jpg.
--thumb,	-th		Set thumbnail parameters (x:y:quality)
Allows specification of the thumbnail image inserted in to the JPEG file. If not specified, defaults are a size of 64x48 at quality 35.
--demo, 	d	 	Run a demo mode &lt;milliseconds&gt;
This options cycles through range of camera options, no capture is done, the demo will end at the end of the timeout period, irrespective of whether all the options have been cycled. The time between cycles should be specified as a millisecond value.
--encoding,	-e		Encoding to use for output file
Valid options are jpg, bmp, gif and png. Note that unaccelerated image types (gif, png, bmp) will take much longer to save than JPG which is hardware accelerated. Also note that the filename suffix is completely ignored when encoding a file.
--exif,	-x		EXIF tag to apply to captures (format as 'key=value')
Allows the insertion of specific exif tags in to the JPEG image. You can have up to 32 exif tge entries. This is useful for things like adding GPS metadata. For example, to set the Longitude
	--exif GPS.GPSLongitude=5/1,10/1,15/100
would set the Longitude to 5degs, 10 minutes, 15 seconds. See exif documentation for more details on the range of tags available; the supported tags are as follows.</pre><p></p><h3>Raspivid</h3><p></p><pre class="crayon-plain-tag">raspivid
========
--width,	-w		Set image width &lt;size&gt;
Width of resulting video. This should be between 64 and 1920.
--height,	-h		Set image height &lt;size&gt;
Height of resulting video. This should be between 64 and 1080.
--bitrate,	-b		Set bitrate.
Use bits per second, so 10MBits/s would be -b 10000000. For H264, 1080p a high quality bitrate would be 15Mbits/s or more.
--output	-o		Output filename &lt;filename&gt;.
Specify the output filename. If not specified, no file is saved. If the filename is '-', then all output is sent to stdout.
--verbose,	-v		Output verbose information during run
Outputs debugging/information messages during the program run.
--timeout,	-t		Time before takes picture and shuts down.
The program will run for this length of time, then take the capture (if output is specified). If not specified, this is set to 5seconds
--demo, 	d	 	Run a demo mode &lt;milliseconds&gt;
This options cycles through range of camera options, no capture is done, the demo will end at the end of the timeout period, irrespective of whether all the options have been cycled. The time between cycles should be specified as a millisecond value.
--framerate, 	-fps  Specify the frames per second to record
At present, the minimum frame rate allowed is 2fps, the maximum is 30fps. This is likely to change in the future.
--penc,	-e	Display preview image *after* encoding
Switch on an option to display the preview after compression. This will show any compression artefacts in the preview window. In normal operation, the preview will show the camera output prior to being compressed. This option is not guaranteed to work in future releases.</pre><p></p><h1>Conclusion</h1><p>Pour moins de 60€, il est donc possible d'avoir un Raspberry Pi model B + Camera qui vous ouvre la porte à pas mal de possibilité. J'espère rapidement voir apparaître une API (en Python par exemple) permettant de programmer directement la caméra.</p><p>De mon coté je vais faire un peu mumuse avec ce nouveau jouet puis revenir prochainement vers vous pour de nouveaux billets sur le sujet !</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/05/test-de-la-camera-raspberry-pi-5m.html">Test de la caméra Raspberry Pi 5M</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=no-XGk3ajtA:VooPegjVEdc:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=no-XGk3ajtA:VooPegjVEdc:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/no-XGk3ajtA" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6864
title: Streaming depuis la Raspberry Camera
uri: Streaming-depuis-la-Raspberry-Camera
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/0MkC8y3VuV4/streaming-depuis-la-raspberry-camera.html

content:
<p
style="text-align: justify;">Après une rapide présentation de la <a
href="http://www.kubii.fr/85-camera-board-raspberry-pi-5mp.html">Raspberry Camera 5M</a> (<a
href="http://blog.nicolargo.com/2013/05/test-de-la-camera-raspberry-pi-5m.html">voir ce précédant billet</a>), entrons dans le vif du sujet avec une utilisation pratique:<em> le streaming "live" du flux vidéo vers une autre machine de votre réseau</em>. Les applications peuvent aller d'un "baby video phone" à  un "interphone vidéo" pour votre maison en passant par toutes les autres choses qui vous passent par la tête !</p><p
style="text-align: justify;">Actuellement, la camera dispose d'un logiciel spécifique <a
href="https://github.com/raspberrypi/userland/tree/master/host_applications/linux/apps/raspicam">Raspivid (dont les sources sont disponibles sur Github)</a>, pour capturer et encoder en H.264 la vidéo dans un fichier ou bien sur le flux standard de sortie (stdout). C'est cette dernière particularité que nous allons exploiter afin de rediriger le flux vidéo vers une pipeline GStreamer qui va s'occuper du streaming vers notre machine cible (celle ou l'on souhaite voir la vidéo).</p><h1>Installation des composants GStreamer</h1><p>On commence par installer GStreamer sur notre Raspberry PI. Pour cela on saisi la commande suivante:</p><pre class="crayon-plain-tag">sudo apt-get install gstreamer-tools gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-bad gstreamer0.10-plugins-ugly</pre><p>L'installation va prendre un certain temps. Passiensa !</p><p>Pour vérifier que les composants ont été correctement installé, saisir la commande suivante:</p><pre class="crayon-plain-tag">gst-inspect</pre><p>Qui devrait afficher les chiffres suivants (qui peuvent varier légèrement selon votre configuration):</p><p><span
style="color: #333399;"><em><strong>Total count: 233 plugins, 695 features</strong></em></span></p><h1>Lancement de la diffusion (streaming) sur le Raspberry</h1><p>On utilise la pipeline suivante:</p><pre class="crayon-plain-tag">raspivid -t 0 -w 1280 -h 720 -fps 25 -b 2500000 -p 0,0,640,480 -o - | gst-launch -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host=192.168.0.9 port 5000</pre><p></p><p
style="text-align: justify;">Détaillons un peu cette ligne de commande. La première partie est dédiée à Raspvid et s'occupe de l'encodage H.264. Les paramètres sont très importants pour avoir une qualité vidéo conforme à vos besoins. Ainsi, dans mon exemple, je n'y suis pas allé avec le dos de la cuillère car j'ai opté pour une résolution HD 720p (<strong>-w 1280 -h 720</strong>) à 25 images par seconde (<strong>-fps 25</strong>) pendant un temps infini (<strong>-t -1</strong>).</p><p
style="text-align: justify;">Pour le streaming, le paramètre de débit (bitrate, <strong>-b 2500000</strong>) est primordial car il va fixer le débit sortant de la vidéo (à 2.5 Mbps dans mon exemple).</p><p
style="text-align: justify;">Ce débit est à adapté selon votre résolution. Après quelques tests, voici une table indicative des débits à utiliser:</p><ul><li>SD Low: -w 480 -h 260 -fps 25 -b  800000</li><li>SD Medium: -w 640 -h 360 -fps 25 -b  1200000</li><li>SD High: -w 960 -h 540 -fps 25 -b  1800000</li><li>HD Ready: -w 1280 -h 720 -fps 25 -b  2500000</li><li>Full HD: -w 1920 -h 1080 -fps 25 -b  5000000</li></ul><p><span
style="text-decoration: underline;">Note</span>: attention au dimensionnement de votre réseau si vous utilisez des débits élevés, en effet même avec des bornes Wifi ressentes, il est difficile de garder un débit constant de 5 Mbps (Full HD).</p><p><span
style="text-decoration: underline;">Note 2</span>: sur le Raspberry, je conseille d'utiliser l'interface Ethernet et pas un dongle Wifi, surtout avec des résolutions importantes.</p><p
style="text-align: justify;">La commande passe ensuite la main à GStreamer qui va encapsuler le flux H.264 dans un conteneur RTP puis créer le serveur TCP en écoute des clients (il faudra penser à remplacer l'adresse IP par celle de votre Raspberry Pi).</p><h1>Lecture de la vidéo depuis une autre machine</h1><p>J'ai fait le test depuis mon portable Ubuntu 13.04 en saisissant la ligne de commande suivante pour récupérer et afficher la vidéo:</p><pre class="crayon-plain-tag">gst-launch-1.0 -v tcpclientsrc host=192.168.0.9 port=5000  ! gdpdepay ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink sync=false</pre><p></p><p
style="text-align: justify;">La qualité de la vidéo est très bonne, fluide. On note quelques retard quand on sollicite le réseau en parallèle mais cela semble normal vu les débits utilisés.</p><p
style="text-align: justify;"><a
href="media/e24fc12a.capture_083.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/05/capture_083.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6866" alt="Lecture streaming Raspberry Pi Camera 720p" src="media/1f7a3f07.capture_083-580x326.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/05/capture_083-580x326.png" width="580" height="326" /></a></p><p
style="text-align: justify;">Ce qui est très impressionnant au niveau du Raspberry, c'est <strong>la faible consommation CPU</strong>. En effet, Raspivid ne dépasse pas les 2% (merci le GPU) et GStreamer les 25%. On peut sans aucun problème laisser tourner le tout sans risque de surchauffe.</p><h1 style="text-align: justify;">Conclusion</h1><p
style="text-align: justify;">J'espère que cette rapide introduction sur le streaming vidéo depuis le Raspberry vous a donné des idées que vous aller vous empresser de nous faire partager dans les commentaires ci-dessous !</p><p
style="text-align: center;"><strong>Retrouvez mes articles sur l’écosystème Raspberry Pi <a
href="http://blog.nicolargo.com/raspberry">en cliquant ici</a>.<br
/> </strong></p><p>Cet article <a
href="http://blog.nicolargo.com/2013/05/streaming-depuis-la-raspberry-camera.html">Streaming depuis la Raspberry Camera</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=0MkC8y3VuV4:MMx9it2wg2o:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=0MkC8y3VuV4:MMx9it2wg2o:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/0MkC8y3VuV4" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6889
title: Encore un effort pour la libération du cahier Debian
uri: Encore-un-effort-pour-la-libération-du-cahier-Debian
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/ruJBxQaX51M/encore-un-effort-pour-la-liberation-du-cahier-debian.html

content:
<p
style="text-align: center;"><span
style="color: #ff0000;"><strong>Mise à jour du billet</strong></span></p><p
style="text-align: center;"><span
style="color: #ff0000;"><strong>La libération du livre est désormais acquise, merci à vous tous !</strong></span></p><p
style="text-align: center;"><a
href="http://fr.ulule.com/liberation-cahier-admin-debian/">Il est cependant possible de continuer à y participer pour soutenir un peu plus le projet Debian.</a></p><p><object
width="500" height="415"><param
name="movie" value="http://static.ulule.me/site/img/widget.swf"/><param
name="flashvars" value="src=http://fr.ulule.com/liberation-cahier-admin-debian/widget.xml"/><param
name="wmode" value="transparent"/><param
name="allowFullScreen" value="true"/><param
name="allowscriptaccess" value="always"/><embed
src="http://static.ulule.me/site/img/widget.swf" flashvars="src=http://fr.ulule.com/liberation-cahier-admin-debian/widget.xml" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" wmode="transparent" width="500" height="415"/></object></p><p
style="text-align: center;">===</p><p>Raphaël Hertzog s'est lancé dans un projet qui mérite un petit coup de pouce de la part de la communauté des logiciels libres: <em>la libération du Cahier Debian</em>, la référence littéraire pour les utilisateurs et administrateurs du système d'exploitation Debian (traduction et adaptation de la version originale en Anglais de "The Debian administrator's Handbook").</p><p><a
href="media/ebf8648c.bandeau-toutes-couvertures.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/06/bandeau-toutes-couvertures.png"><img
style=' display: block; margin-right: auto; margin-left: auto;'  class="aligncenter size-large wp-image-6890" alt="bandeau-toutes-couvertures" src="media/a316bf30.bandeau-toutes-couvertures-580x122.png" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/06/bandeau-toutes-couvertures-580x122.png" width="580" height="122" /></a></p><p>Trois objectifs sont en fait visés:</p><ul><li>garantir la <strong>libération du livre</strong></li><li>effectuer sa <strong>mise à jour pour Debian 7</strong></li><li>mise en place d'une <strong>nouvelle édition en librairie</strong></li></ul><p>Pour cela Raphaël et Roland, après négociation préalable avec l'éditeur Eyrolles, sont passés par un système de financement de type "crowfunding". Ainsi, à partir du site Ulule, il vous est possible de participer à cette aventure en finançant en amont ce beau projet. Pour cela, plusieurs offres sont possibles, de 5€ à 600€+ pour les plus riches <img
src="media/a8d8b248.icon_smile.gif" data-original-source="http://blog.nicolargo.com/wp-includes/images/smilies/icon_smile.gif" alt=':)' class='wp-smiley' /> . Pour que celle-ci commence vraiment et que le projet soit réalisé, il faut un minimum de 15.000€.</p><p>A l'heure actuelle (2 juin à 18h), il reste encore 4.500€ à trouver.</p><p>Je compte sur vous pour donner quelques €€€€.</p><p
style="text-align: center;"><a
href="http://fr.ulule.com/liberation-cahier-admin-debian/"><em><strong>Cliquez ici pour participer au projet de libération du cahier Debian !</strong></em></a></p><p>Bonne fin de week-end !</p><p><span
style="text-decoration: underline;">Note</span>: personnellement, je trouve l'offre à 50€ la plus atractive car elle permet d'avoir le cahier au format papier (c'est mon coté old school qui parle).</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/06/encore-un-effort-pour-la-liberation-du-cahier-debian.html">Encore un effort pour la libération du cahier Debian</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=ruJBxQaX51M:Thr0a54byo8:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=ruJBxQaX51M:Thr0a54byo8:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/ruJBxQaX51M" height="1" width="1"/>


feed_id: http://blog.nicolargo.com/?p=6897
title: Ma méthode pour gérer les règles IpTables
uri: Ma-méthode-pour-gérer-les-règles-IpTables
url:
http://feedproxy.google.com/~r/LeBlogDeNicolargo/~3/oIUtkcH8W_I/ma-methode-pour-gerer-les-regles-iptables.html

content:
<p><em><strong><a
href="media/85b2d3e2.iptables.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/06/iptables.jpg"><img
style=' float: right; padding: 4px; margin: 0 0 2px 7px;'  class="size-thumbnail wp-image-6916 alignright" alt="iptables" src="media/cf27e7df.iptables-150x150.jpg" data-original-source="http://blog.nicolargo.com/wp-content/uploads/2013/06/iptables-150x150.jpg" width="150" height="150" /></a>"Ooopsss..."</strong></em></p><p
style="text-align: justify;">Cette phrase a été prononcée au moins une fois par toute personne ayant administré les règles de Firewall d'un serveur. Les conséquences vont du simple blocage d'une application critique (dont on s’aperçoit de l'indisponibilité au prochain "check" sur son serveur de monitoring) à la perte de connexion pure et simple vers la machine (même pour corriger sa boulette).</p><p
style="text-align: justify;">Pour éviter de se retrouver dans cette situation et ainsi éviter les rires et moqueries des collègues, voici quelques pistes que j'utilise pour administrer mes règles IpTables sur mes serveurs Debian.</p><h1 style="text-align: justify;">1. Regrouper la sécurité dans un script de démarrage</h1><p
style="text-align: justify;">Il y a plusieurs écoles pour gérer les règles de Firewall. <a
href="http://wiki.debian.org/iptables">Celle proposée par le wiki officiel de Debian</a> repose sur l'utilisation exclusive des commandes iptables-save et iptables-restore qui permettent respectivement de sauvegarder et de restaurer une configuration IpTables existante.</p><p
style="text-align: justify;">Pour ma part, je préfère inclure ces commandes dans un script de plus haut niveau que je positionne dans le répertoire /etc/init.d et qui sera donc lancé au démarrage du serveur. Ce fichier firewall.sh est disponible sur mon <a
href="https://github.com/nicolargo/debianpostinstall">GitHub DebianPostInstall</a> ou <a
href="https://gist.github.com/nicolargo/5734412">via Gist</a>.</p><p
style="text-align: justify;">En voici une version à ce jour:</p><p></p><pre class="crayon-plain-tag"></pre><p></p><p>Par défait le script met en place les règles suivantes:</p><ul><li>autorise les connexions SSH entrantes (pour administrer son serveur à distance)</li><li>autorise les connexions HTTP, HTTPs et DNS sortante (pour l'installation et mise à jour du système et des logiciels)</li><li><span
style="line-height: 13px;">interdiction et log des autres flux, entrant et sortant</span></li><li>et en cadeau bonux (ce qui on plus de 35 ans peuvent comprendre) <a
href="http://www.cyberciti.biz/faq/linux-kernel-etcsysctl-conf-security-hardening/">sécurise un peu plus le kernel Linux</a></li></ul><p>L'utilisation de ce script est standard, ainsi pour appliquer les règles de Firewall:</p><p></p><pre class="crayon-plain-tag">sudo service firewall.sh start</pre><p>Pour supprimer les règles de Firewall (attention votre serveur sera ainsi exposé aux attaques extérieures puisqu'aucunes restriction d'accès ne sera appliquée):</p><pre class="crayon-plain-tag">sudo service firewall.sh clear</pre><p></p><p
style="text-align: justify;"><span><span
style="text-decoration: underline;">Attention</span><span
style="color: #993300;">: Il est également possible d'utiliser cette commande avec l'option </span><strong
style="color: #993300;">stop</strong><span
style="color: #993300;"> (sudo service firewall.sh stop), mais il faut être conscient que toutes les connexions, entrantes et sortantes seront alors interdites (même votre SSH !!!). Cette commandes est don<span
style="color: #993300;">c à <del>éviter</del> </span>bannir si l'on utilise une connexion à distance pour administrer son serveur...</span></span></p><h1>2. Modifier les règles</h1><p>On entre ici dans le vif du sujet de ce billet: <em>Comment procéder quand on doit modifier les règles de sécurité ?</em></p><p
style="text-align: justify;">La première chose à faire est <strong>d'être sûr d'avoir les connaissances nécessaires</strong> avant de toucher à quoi que ce soit. Cela peut sembler évident, mais faire des copier/coller de règles trouver sur le net et que l'on ne maîtrisent pas est, sans aucun doute, le meilleur moyen de tout faire planter. Pour modifier les tables IpTables, il faut donc avoir un verni de connaissance général sur le protocole TCP/IP (notamment les notions d'adresses et de port sources/destinations). On trouve pour cela quelques très bon cours en ligne comme <a
href="http://reseau.developpez.com/tutoriels/laissus/cours-introduction-tcp-ip/">celui de chez Developpez.com</a> ou bien <a
href="http://www.amazon.fr/gp/product/2744075213/ref=as_li_ss_tl?ie=UTF8&amp;camp=1642&amp;creative=19458&amp;creativeASIN=2744075213&amp;linkCode=as2&amp;tag=leblogdenico-21">la bible de Tanenbaum: Réseaux 5em édition aux éditions Pearson</a>. Bien évidemment, il faut également connaitre les rudiments de la commande IpTables en lisant la documentation officielle (<a
href="http://www.netfilter.org/documentation/">disponible en Français</a>) et notamment <a
href="http://www.netfilter.org/documentation/HOWTO/fr/packet-filtering-HOWTO.html">la section sur le filtrage de paquets</a>.</p><p
style="text-align: justify;">On peut passer aux choses sérieuses en identifiant les règles courantes grâce à la commande:</p><p></p><pre class="crayon-plain-tag">sudo iptables -n -L -v --line-numbers</pre><p>On obtiendra alors une sortie dépendante des règles actives (exemple pour un de mes serveurs):</p><pre class="crayon-plain-tag">Chain INPUT (policy DROP 13 packets, 1398 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1     381M  138G fail2ban-ALL  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
2     495K   83M fail2ban-SSH  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
3     251M   23G fail2ban-HTTP  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
4     380M  138G fail2ban-ALL  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0
5     606M  241G ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
6    64473 3711K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
7      12M  653M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
8        1    44 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:1337
9    55724 3343K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:4949
10      85  4064 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:5001
11   53603 3216K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:61209
12      13   532 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:123
13    224K   21M ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:161
14       0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:5001
15       0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
16    230K   22M ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
17   4822K  289M ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0
18   3684K  435M LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           LOG flags 0 level 4
19       0     0 ACCEPT     tcp  --  *      *       88.190.254.200       0.0.0.0/0           tcp spt:20
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      98M  183G ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0
2     253M  912G ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED
3        1    84 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0
4        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            195.20.242.89       tcp dpt:80
5        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            212.211.132.32      tcp dpt:80
6        0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            212.211.132.250     tcp dpt:80
7      179 10740 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:21
8      276 14700 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:22
9     1254 75180 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:25
10   91789 5507K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:80
11   12940  776K ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpt:443
12    688K   46M ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           tcp dpts:1024:65534
13     90M 5705M ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:53
14   30171 2293K ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp dpt:123
15       0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            88.190.254.200      tcp dpt:21
16      78  3120 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0           LOG flags 0 level 4
17      78  3120 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           reject-with icmp-port-unreachable
Chain fail2ban-ALL (2 references)
num   pkts bytes target     prot opt in     out     source               destination
1     761M  277G RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0
2        0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain fail2ban-HTTP (1 references)
num   pkts bytes target     prot opt in     out     source               destination
1     251M   23G RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0
Chain fail2ban-SSH (1 references)
num   pkts bytes target     prot opt in     out     source               destination
1       10  1568 DROP       all  --  *      *       61.155.150.217       0.0.0.0/0
2     408K   77M RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0</pre><p>Une fois que vous avez identifié la règle IpTables à ajouter dans votre configuration,  il est maintenant temps de passer à l'action.</p><p
style="text-align: justify;"><strong>Ne jamais, jamais, modifier directement la table avec une commande IpTables sur un serveur en production...</strong></p><p>Plusieurs solutions sont possibles, personnellement, j'utilise la méthodologie suivantes:</p><ol><li><span
style="line-height: 13px;">je commence par copier le script firewall.sh dans un autre répertoire (par exemple dans /tmp/firewall.sh)</span></li><li>j'ajoute la règle IpTables dans la copie du script (/tmp/firewall.sh)</li><li>je teste les nouvelles règles en utilisant l'option "test" du script ainsi modifié qui va sauvegarder les règles actuelles, appliquer les nouvelles, attendre 30 secondes puis ré-appliquer les règles actuelles (donc au pire au fait une boulette de 30 secondes...)</li><li>si tout se passe comme attendu pendant les 30 secondes, alors je copie le fichier /tmp/firewall.sh sous /etc/init.d</li><li>et j'applique les règles en production le moment voulu</li></ol><p>Les lignes de commandes correspondantes sont:</p><pre class="crayon-plain-tag">sudo cp /etc/init.d/firewall.sh /tmp/
sudo vim /tmp/firewall.sh
sudo sh /tmp/firewall.sh test
sudo cp /tmp/firewall.sh /etc/init.d/
sudo service firewall.sh restart</pre><p>Ainsi, en cas de problème dans les règles, le serveur ne sera indisponible que pendant 30 secondes. Dans le cas "pas de bol" ou le serveur crache durant ces 30 secondes alors les anciennes règles seront rechargées au redémarrage.</p><h1>Pas de script ?</h1><p>Si vous ne souhaitez pas mettre en place un tel script de démarrage des règles de Firewall, il est quand même possible (même si je ne le conseille pas pour avoir une vue d'ensemble des règles à appliquer) de reproduire la méthodologie d'écrite dans le chapitre précédant.</p><p>Ainsi, il est tout à fait possible d'utiliser une commande du type:</p><pre class="crayon-plain-tag">sudo iptables-save &gt; /etc/iptables.backup &amp;&amp; sudo iptables &lt;nouvelle regle a appliquer&gt; &amp;&amp; sleep 30 &amp;&amp; sudo iptables-restore &lt; /etc/iptables.backup</pre><p></p><h1>Conclusion</h1><p>Comment gérez-vous vos règles de Firewall sur vos serveurs GNU/Linux ? Des astuces à partager avec nous dans les commentaires ?</p><p>Cet article <a
href="http://blog.nicolargo.com/2013/06/ma-methode-pour-gerer-les-regles-iptables.html">Ma méthode pour gérer les règles IpTables</a> est apparu en premier sur <a
href="http://blog.nicolargo.com">Le blog de NicoLargo</a>.</p><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=oIUtkcH8W_I:lOi4z9FJ4X4:dnMXMwOfBR0"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=dnMXMwOfBR0" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?a=oIUtkcH8W_I:lOi4z9FJ4X4:RW9bx_9rXgo"><img src="http://feeds.feedburner.com/~ff/LeBlogDeNicolargo?d=RW9bx_9rXgo" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/LeBlogDeNicolargo/~4/oIUtkcH8W_I" height="1" width="1"/>


