SheevaPlug

36h

Tuesday, 15 July 2014
|
Écrit par
Grégory Soutadé

36 heures d'interruptions, ce sont les joies de l'auto hébergement... Tout commence par une (je suppose) mise à jour de la livebox. Chouet, une nouvelle interface eye candy, mais toujours pas de support de l'IPv6 et moins de contrôle de la livebox... S'ensuit naturellement une déconnexion intempestive. On débranche tout, on rebranche, on fait un reset (non !!!!!!!!!!!).

Bref, il faut vingt-quatre heures pour que je puisse intervenir physiquement sur la box, puis encore deux heures pour retrouver ce satané mot de passe de connexion (heureusement enregistré dans un ancien profil de Firefox). À priori tout est OK, pourtant le serveur n'est pas accessible depuis l'extérieur. Sûrement les DNS qui n'ont pas encore été mis à jour. En fait non, le reset avait aussi effacé les règles NAT. Cinq heures pour m'en rendre compte !

Maintenant tout est redevenu normal (sauf erreur que je n'aurais pas encore rencontrée). Tout ceci souligne (mais je le savais) la fragilité de l'installation :

  • Pas de serveur de secours
  • Pas d'IP fixe (donc coupures régulières de DNS, merci Orange)
  • Pas de carte d'accès à distance style DRAC

Vivement la réplication sur un autre site physique avec un fournisseur d'accès internet indépendant comme FDN et un vrai modem routeur (pas de services inutiles comme le téléphone, la télévision...). Le tout relié à un serveur un peu plus musclé comme l'alléchante Cubox-i2eX. L'idéal serait même un modem sous *BSD pour limiter les backdoors de la NSA/DGSE !

Debian Wheezy

Saturday, 11 May 2013
|
Écrit par
Grégory Soutadé

Logo Debian

La dernière version stable de Debian (Wheezy 7.0) est officiellement sorti le week end dernier. Le temps de laisser les sys admins du monde entier se ruer sur cette nouvelle mouture, j'ai moi aussi franchi le pas du apt-get upgrade ! Mis à part quelques fichiers de configs (dont le mail) et la mystérieuse disparition du serveur MySQL ?? la mise à jour s'est effectuée sans accrocs. Dans deux ou trois releases on sera paré pour les 5 prochaines années !

Au passage, le dégel de testing (Jessie) m'a permis d'installer le tant attendu e17 (enlightenment). Il y a encore quelques bugs qui doivent être corrigés dans sa version stable (dans experimental pour le moment) mais je dois reconnaître que, passer le thème de base relativement moche, il y a pas mal d'avancées par rapport à e16. Vivement qu'elle passe en testing !

Merci Debian !

Notification par SMS

Tuesday, 19 February 2013
|
Écrit par
Grégory Soutadé

SMS in classroom

Un serveur perso c'est bien, un serveur auto hébergé c'est très bien, mais un serveur auto hébergé qui a planté, c'est nul ! L'inconvénient du plantage système est qu'il ne prévient pas, du coup la durée d'indisponibilité peut être longue si l'on ne s'en rend pas compte.

Pour pallier à ce problème, j'ai fait un petit retour vers OVH. Mon compte n'ayant pas été clôturé après la migration du nom de domaine, j'en ai profité pour acheter un pack SMS. Pour environ 10€ TTC, j'ai 100 SMS que je peux envoyer via le web. Ce petit script bash permet de me notifier lorsque le serveur tombe. Bien sûr, il faut pouvoir l'exécuter sur un PC connecté h24...

L'idée est de faire un HEAD sur la favicon de mon blog (qui n'existe pas et qui n'apparaît pas dans les log). La requête est exécutée toutes les 10 minutes. Au bout de 3 échecs successifs (pour éviter les problèmes de changement d'IP), un SMS est envoyé et le script quitte.

#!/bin/bash BASE_URL="https://www.ovh.com/cgi-bin/sms/http2sms.cgi" ACCOUNT="sms-sgXXXXX-1" LOGIN="BBBBBB" PASSWORD="YYYYYYYY" FROM="SOUTADE" TO="%2B33666ZZZZZZ" #+33666ZZZZZZ MESSAGE="Cybelle%20is%20down" # Cybelle is down MAX_TRIES=3 TARGET="http://blog.soutade.fr/favicon.ico" request="$BASE_URL?account=$ACCOUNT&login=$LOGIN&password=$PASSWORD&from=$FROM&to=$TO&message=$MESSAGE&noStop=1" #echo $request tries=$MAX_TRIES while [ 1 ] ; do HEAD $TARGET | grep "404" >/dev/null # Found if [ $? -eq 0 ] ; then # Reset counter if [ ! $tries -eq $MAX_TRIES ] ; then tries=$MAX_TRIES fi else # Fail tries=`expr $tries - 1` fi # No more tries, send notification and exit if [ $tries -eq 0 ] ; then GET "$request" break fi sleep 10m done

PS : Pour utiliser le script, il faut créer un nouvel utilisateur et ajouter un expéditeur depuis l'interface OVH. Attention, les champs doivent être encodés sous la forme URL (voir la partie "encode" de http://soutade.fr/urlunshortener)

I believe I can fly

Sunday, 27 January 2013
|
Écrit par
Grégory Soutadé

Mon Sheeva est tombé un lundi matin (le 7 janvier). J'ai reçu l'alimentation deux semaines plus tard... Le serveur a pu redémarrer vers 16h, mais les plus attentifs auront remarqué que le blog était en ligne depuis le mardi 8 janvier 11h. C'est le résultat de mes premiers pas dans les nuages. La situation est critique : l'alimentation a lâchée, pas de serveur de secours sous la main (mais les sauvegardes sont là), pas de serveur distant, impossible de laisser tourner un PC h24 et (a priori) quelques jours à attendre avant d'avoir la pièce de rechange.

Le blog est la partie la plus visitée, il fallait au moins essayer de le remettre en ligne. Pour le coup, le passage à un blog statique simplifie énormément les choses ! Bref il faut trouver un petit espace de stockage en ligne pour pas longtemps et pas trop cher (tant pis pour les autres services, ils ne sont pas critiques et je ne voulais pas perdre du temps à configurer une instance qui sera détruite par la suite).

Goku sur son nuage

Je suis référencé chez Gandi, j'ai donc cherché par là. Concernant les sites web simples, ils ne proposent que la création via Gandi BaseKit ou Sitemaker à partir de 5€ par mois. Sinon, ils ont une solution "Simple Hosting" : un pack PHP/MySQL ou PHP/PostGre à partir de 5€/mois, ça pourrait presque être adapté, mais je ne voulais pas souscrire pour un mois. Enfin, dernière option : les nuages (le cloud) : louer une part d'un serveur que l'on peut relâcher quand on n'en a plus besoin. Bingo ! Je paye via mon compte pré payé (le surplus servira pour le renouvellement du nom de domaine). Une fois l'instance crée avec une Debian stable 64 bits (quelques minutes), un petit SSH, on installe emacs, nginx, un autre coup de scp, on reconfigure la zone DNS et roulez jeunesse, le blog est de nouveau en ligne. Les mails sont redirigés sur le webmail de Gandi. C'est une solution de secours flexible, pas chère (0.50 euros par jour) et très intéressante (surtout quand on a déjà tous les fichiers de conf) puisqu'on maîtrise tout (ce qui est plus facile pour adapter son ancienne configuration) avec en prime une addresse IPV6. Pour ce prix-là, j'ai :

  • 1 coeur dédié
  • 512Mo de mémoire
  • 12 Go de disque
  • Une connexion 10Mbits

De loin on pourrait dire que c'est à peu près la même chose que le Sheeva (hors débit de la connexion), sauf qu'en fait ça va VRAIMENT plus vite. Suite à l'aller-retour de l'alimentation en Angleterre (...), j'ai quand même ré installé la majorité des services sur l'instance.

En réalité, ça fait quelques semaines que j'y pensais. Lorsque ce sera possible, il faudrait installer un serveur de secours (fallback) pour faire face à un problème matériel, un crash de disque ou même une connexion qui tombe. C'est un gros problème de l'auto hébergement : pas de réplication des ressources. Tandis que dans les gros datacenter de Gandi, tout est virtuel, dupliqué 15 fois sur plusieurs sites physiques et avec des débits plus qu'intéressants. Bref, avoir deux serveurs physiques c'est presque jouable (ami, famille ...). Les problèmes sont les suivants :

  • Le DNS : si l'IP change tout le temps des deux côtés, c'est galère. On doit s'appuyer sur un serveur DNS fixe et éditer les zones en évitant les conflits (ou activer/désactiver manuellement l'édition des zones sur le serveur qui va bien). Il faut au moins avoir une IP fixe sur les deux (pour avoir un DNS primaire/secondaire).
  • Les données utilisateurs : un simple rsync suffit
  • Les projets versionnés : a priori une simple copie des fichiers suffit, mais c'est plus élégant de faire un clone/checkout des dépôts
  • Base de données : la plupart des moteurs incluent un système de maître/esclave

Il existe quelques solutions qui prennent en compte tous ces paramètres ou faire un script perso, reste plus qu'à le mettre en place si j'achète un nouveau serveur !

Concernant ma solution dans les nuages, je pourrais aussi faire un script de migration (copie, installation et configuration des paquets sur un nouveau serveur virtuel).

Et pour le plaisir :

Alimentation SheevaPlug et CuBox

Sunday, 27 January 2013
|
Écrit par
Grégory Soutadé

Le SheevaPlug est mort, vive le SheevaPlug !

Suite à mon dernier article concernant le travail le dimanche, mon SheevaPlug a décidé de se mettre en grève ! À mon réveil lundi matin (7 janvier) : plus rien ! Ma première idée est qu'il y a eu une coupure de courant et qu'il a eu du mal à redémarrer sur la clé USB, Ubuntu ayant pour sa part planté. Pourtant, je n'arrive pas à me connecter par le lien série. Les symptômes sont :

  • Une seule des deux LED du frontpanel est allumée
  • Les deux LED de l'ethernet sont allumées

Et pourtant, rien ne marche :( En consultant le net, je retombe régulièrement sur LE problème du SheevaPlug : son alimentation. Ce serait donc la PSU (Power Supply Unit) qui aurait lâché. Quatre coups de tournevis plus tard (et surtout en suivant ces instructions), je découvre ça :

SheevaPlug broken PSU
Je ne comprends pas grand-chose en électronique, mais je me dis que ça a vraiment été monté à l'arrache. Elle aura quand même tenu 2 ans et demi (donc la garantie de 12 mois a expirée depuis bien longtemps), ce qui est quand même très bien (ça fait du 3.61€ par mois). J'ai ensuite commandé une nouvelle alimentation sur newit (ils ont tout prévu !) : 26.5€ avec les frais de port. J'aurais pu en acheter une chez un marchand d'élec, mais je ne voulais pas qu'elle pende lamentablement à l'extérieur, ni avoir à souder. J'espère que celle-ci tiendra au moins aussi longtemps que la précédente.

SheevaPlug with new PSU


PS : Lors du voyage par Royal Air Mail, ils ont oublié de préciser les informations additionnelles, du coup elle a fait un joli aller-retour et j'ai pris deux semaines dans les dents + le prix d'un transporteur TNT. Du coup le transport a coûté plus cher que l'alimentation en elle-même.

Une fois la nouvelle alimentation installée : Oh miracle ! Ça fonctionne !!!! J'ai même pu tuner mon Sheeva avec un embout blanc sur un fond noir.

Sheevaplug working


CuBox

cubox.jpg

Régulièrement je regarde le site newit pour voir les nouveautés. GlobalScale Technologies (le constructeur du SheevaPlug) s'est rapidement éloigné de la philosophie du Sheeva (le GuruPlug a eu un succès mitigé) : on rajoute un disque dur, on rajoute le wifi, on rajoute le bluetooth, on rajoute le HDMI... Mais on garde le même processeur et la même quantité de mémoire... Alors qu'il fallait faire tout l'inverse : garder un appareil petit avec quelques connexions (le double ethernet peut être sympa) tout en augmentant la puissance (processeur et mémoire). Solid Run (une startup de seulement 7 personnes !) l'a bien compris en sortant la CuBox. Pour moi c'est le digne successeur du SheevaPlug :

  • Marvel PJ4 (Dual Cortex A8) @ 800Mhz
  • 1GB de DDR3 32 bits @ 800Mhz
  • GPU OpenGL ES / Décodeur HD / HDMI (c'était dans le SoC)
  • InfraRouge
  • 1 Gigabit Ethernet / 2 USB / 1 eSata / 1 SPDIF / 1 MicroSD
  • 55mm x 55mm x 42mm

Plus petit (le Sheevaplug fait 110 mm x 69.5 mm x 48.5 mm), plus puissant et le tout pour 3 Watts (comme le Sheeva). Le prix est identique à celui du Sheeva (130 €). Et pour ceux qui sont un minimum patient, une version à 2GB (CuBox pro) devrait sortir fin janvier. Si elle avait été disponible de suite (ou pré commandable depuis le site de Solid Run, qui ne livre pas en France...), je l'aurais bien échangé contre mon Sheeva qui commence un peu à ramer quand on lui demande du PHP ou du Python ! Au passage, j'ai remplacé ma clé USB Toshiba par une SDCard 16GB class 10 : en plus d'accélérer les entrées/sorties elle devrait être plus fiable.

La CuBox sera incontestablement ma prochaine acquisition pour un serveur perso (à faible charge, s'entend). D'ici là, c'est bien de voir comment va se comporter le hard, qui vient tout juste de paraître (on n'est pas sans rappeler les défauts d'alimentation du Sheeva...).