Le Blog Utux

HTTP 200 GET /

Pourquoi Pluxml ?

Rédigé par uTux 21 commentaires

Mon blog est "propulsé" par Pluxml, ce n'est pas une surprise. Le choix de ce moteur de blog a été difficile car il en existe de très nombreux avec leurs avantages et inconvénients.

Je suis "un vieux" du net, j'ai connu dotclear1 donc pour moi un CMS c'est principalement un bidule en PHP qui offre une interface d'administration dans laquelle je rédige mes articles et génère des aperçus avant de publier. J'ai donc rapidement écarté tous les moteurs de blog "statiques", c'est à dire ceux qui "compilent" un fichier d'entrée au format markdown vers une page html car même si j'aime beaucoup l'idée (un simple serveur web sans dépendance suffit pour publier les pages) ce n'est pas ce que je recherche.

J'ai regardé du côté de Ghost pour le look très attirant et le dynamisme du projet. Malheureusement, c'est du Node. Ce langage est probablement super du point de vue développeur mais du point de vue sysadmin c'est une horreur. Il y a des tonnes de dépendances à installer et à maintenir et il faut toujours une version bien précise car la compatibilité n'est pas assurée. Donc on compile, on lance des scripts qui compilent les dépendances et on prie pour que ça ne pète pas. Ajoutons aussi à cela le fait que Ghost ne prend pas en charge les commentaires et qu'il y a un consensus sur le fait d'utiliser Disqus pour ça... or moi je n'ai pas envie, je ne veux pas sous-traiter les commentaires et je ne veux pas forcer les gens à s'inscrire pour pouvoir discuter !

J'ai ensuite essayé Wordpress mais je l'ai rapidement écarté car c'est un CMS qui a tellement de facettes qu'on ne sait plus vraiment à quoi il sert, de plus sa complexité (au niveau code) le rend difficile à bidouiller. Dotclear a aussi eu droit à un essai. Je ne l'ai pas trouvé déplaisant malheureusement je ne suis pas très fan du thème par défaut et n'ai pas envie d'en télécharger sur le web, c'est trop risqué et peu original.

Donc ce bon vieux Pluxml s'est finalement imposé. Le thème de base est simple, utilise du responsive design, et est facile à modifier. L'interface d'administration est classique et je suis complètement familier avec. Bien sûr Pluxml n'est pas parfait, il a plusieurs défauts :

  • Pas de support markdown
  • Ps d'éditeur wysiwyg
  • Pas de moteur de recherche
  • Trop dépendant envers Apache
  • Pas d'antispam dans les commentaires

Si vous connaissez des moteurs de blogs alternatifs à Pluxml, qui ne sont pas en Node, qui gèrent les commentaires, ça m'intéresse car je suis toujours à la recherche de nouvelles aventures !

YunoHost pour mon cloud perso

Rédigé par uTux 6 commentaires

Qu'est-ce que le cloud ? C'est d'abord un terme commercial qui veut dire "je veux tes données, tes logiciels, tes bottes et ta moto je m'en occupe pour toi". Mais pas toujours heureusement car on peut avoir du cloud géré par soi même et c'est même une solution avantageuse. Le cloud c'est un ensemble de services synchronisé ou au moins accessibles depuis plusieurs endroits. Par exemple si j'ajoute un élément dans mon calendrier sur Thunderbird je veux qu'il apparaisse sur mon téléphone automatiquement et ça c'est possible avec le cloud. Il existe de nombreuses solutions propriétaires mais aussi des libres. Avant d'aller plus loin voici mes besoins :

  • E-mail
  • Agenda
  • Contacts
  • Fichiers (dropbox-like)

J'utilise depuis 2 ans YunoHost qui est une solution libre prête à l'emploi pour installer son propre serveur de "cloud". Techniquement c'est Debian + un ensemble de services de base (LDAP, MySQL, XMPP, SMTP, IMAP) auxquels des "applications" viennent se greffer. Le tout est géré par une interface Web et un portail SSO (authentification 1 fois puis accès à toutes les applications).

L'installation se fait soit avec une ISO soit un script à exécuter sur Debian 7 ou 8. Ensuite on se connecte à l'interface d'administration web puis on créé ses domaines, ses utilisateurs, et on installe ses applications comme par exemple Roundcube pour les e-mail. L'application sera automatiquement configurée pour se connecter au serveur mail et au LDAP afin d'authentifier les utilisateurs, c'est aussi simple que ça.

Le portail YunoHost.

Voici quelques applications que j'utilise :

  • Baikal : serveur caldav/carddav pour agenda/contacts.
  • Z-Push : connecteur ActiveSync pour mon Windows Phone.
  • Seafile : Dropbox-like avec interface web et client lourd.
  • TinyTinyRSS : lecteur de flux RSS.
  • DokuWiki : wiki perso.
  • Zerobin : pour copier-coller du texte et le partager en 1 lien.
  • Jirafeau : partage rapide de fichiers.
  • Movim : que j'utilise comme client XMPP web.

YunoHost a une belle interface, c'est coloré, c'est sexy, c'est moderne. L'équipe est sympathique et souvent disponible sur leur salon XMPP (support@conference.yunohost.org). Et si vous voulez packager vos propres applications, le système est assez simple. Il faut faire des scripts bash faisant appel à des fonctions de l'api yunohost (exemple : création d'une database et d'un utilisateur) puis stocker le tout sur github. L'URL du dépôt sera ensuite utilisée pour installer l'application.

Utilisateur de Yunohost depuis deux ans je suis plus que satisfait, c'est une excellente solution pour celui qui veut avoir son propre serveur sur Linux mais n'a pas le temps ou les compétences pour tout configurer soit-même. Je recommande.

HP ProLiant MicroServer Gen8 : mon NAS homemade

Rédigé par uTux 10 commentaires

Le HP Proliant Gen8 G1610T format micro tour est un petit serveur en forme de cube ayant la particularité d'offrir 4 baies de disque. Il est totalement silencieux avec une consommation électrique maîtrisée et est proposé à un prix abordable. Il existe en version Intel Celeron ou Intel Xeon, la première étant trouvable à moins de 300 euros (j'ai eu le miens à 226€ neuf chez Amazon en Septembre). Ce n'est pas si cher si on le compare à un NAS Synlogy d'autant qu'on a droit à du hardware beaucoup plus intéressant :

  • CPU Intel Celeron G1610T (double cœur, 64 bits, virtualisation)
  • 2GB de RAM ECC (extensible)
  • 2 cartes réseau gigabit
  • iLo (KVM IP)
  • Un emplacement PCI Express 16x format low profile.
  • Consommation en idle et sans disques de ~30W
  • Silencieux
Lien vers la fiche constructeur.

On a donc un vrai serveur sur lequel on peut mettre l'OS de son choix et faire de la virtualisation.

Après avoir mis 8GB de RAM ECC ainsi que 4 disques de 1To dans les baies, j'ai installé FreeNAS sur une clé USB. Au démarrage le ventilateur souffle fort (puisqu'on a affaire à un vrai serveur) mais il ralenti progressivement pour devenir quasiment inaudible. C'est simple : ce serveur fait moins de bruit qu'une Bbox Sensation fibre.

Les disques en cours d'ajout dans les baies.

Je connaissais déjà un peu FreeNAS mais il y a quelques années encore je n'étais pas très familier avec ZFS et FreeBSD. Aujourd'hui je le suis beaucoup plus et je découvre donc à quel point ce produit est bon. Quelle joie d'avoir à portée de main les outils pour gérer un zpool, programmer des scrub périodiques, des snapshots avec durée de rétention, des dataset, des périphériques block...

Bien entendu FreeNAS est orienté NAS donc au delà de ZFS on a les fonctionnalités de partage Windows, UNIX et Apple ainsi qu'une gestion complète des utilisateurs (intégration LDAP ou AD possible).

Les sysadmin FreeBSD seront ravis de noter la présence des jails. Si vous voulez que votre NAS fasse office de serveur DNS, il suffit de créer une jail qui tournera sur FreeBSD 9.3 et dans laquelle vous pourrez configurer named. Backuppc ? Idem, une jail avec les ports qui vont bien (ou pkg).

Mes jails sur FreeNAS.

Pour le stockage j'ai testé deux configurations :

  • 4 disques en raidz-1, similaire à du RAID5 : 3TB utiles
  • 2 disques en mirror + 2 disques en mirror, similaire à du RAID10 : 2TB utiles.

La première configuration semble la plus avantageuse car elle offre la plus grosse capacité de stockage mais souffre de mauvaises performances en écriture sans que je comprenne réellement pourquoi (bloqué à 30Mo/s). Refaire le zpool avec 3 disques + 1 spare règle le problème mais c'est dommage d'avoir un disque inutilisé. Il faut noter aussi que beaucoup de sysadmin déconseillent le raidz-1/RAID5 en raison de la reconstruction stressante en cas de changement de disque. Cet excellent article résume la situation. La deuxième configuration en mirror+mirror n'offre que 2TB de stockage (50%) mais fonctionne mieux et la maintenance est facilitée. Voici mon zpool de stockage "data" :


[root@freenas] ~# zpool status
  pool: data
 state: ONLINE
  scan: scrub repaired 0 in 1h38m with 0 errors on Wed Jan 20 03:38:41 2016
config:

	NAME                                            STATE     READ WRITE CKSUM
	data                                            ONLINE       0     0     0
	  mirror-0                                      ONLINE       0     0     0
	    gptid/094171e0-69d3-11e5-81a0-d0bf9c46b918  ONLINE       0     0     0
	    gptid/0a481bb7-69d3-11e5-81a0-d0bf9c46b918  ONLINE       0     0     0
	  mirror-1                                      ONLINE       0     0     0
	    gptid/0b1b6253-69d3-11e5-81a0-d0bf9c46b918  ONLINE       0     0     0
	    gptid/0bf02931-69d3-11e5-81a0-d0bf9c46b918  ONLINE       0     0     0

errors: No known data errors

Explication : le zpool data est composé de deux vdev additionnés : mirror-0 et mirror-1. Chaque mirror est composé de deux disques qui, comme leur nom l'indique, sont en miroir (comme du RAID1). Notez qu'il n'y a pas de "stripping" comme dans le RAID10 entre mirror-0 et mirror-1, les données sont écrites là où il y a de la place. L'avantage est qu'on peut avoir deux vdev de taille différente. Par exemple mirror-0 pourrait faire 1TB et mirror-1 faire 2TB, le zpool aurait donc une taille de 1+2 = 3TB là où un RAID10 s'alignerait sur le plus petit et n'aurait donc que 2TB disponibles. ZFS permet aussi de remplacer les disques au fur et à mesure et augmenter la taille du stockage, le tout à chaud. Pour la petite histoire, je l'ai déjà fait sur un serveur de production en remplaçant des disques de 2TB par des 4TB, le zpool est passé de 4 à 6 puis à 8TB.

La compression lz4 est activée par défaut dans FreeNAS car avantageuse en terme de stockage mais aussi de performances. En effet le coût CPU est faible et la réduction du nombre de blocs physiquement écrits et lus améliore la rapidité.

En conclusion le HP Proliant G1610T est le serveur que j'attendais depuis des années. Silencieux, peu gourmand mais néanmoins véloce, il a tout d'un grand surtout les baies de disque qui permettent de faire du stockage. Associé à FreeNAS, il bat toutes les solutions propriétaires du marché et se révèle beaucoup plus souple pour un sysadmin comme moi qui ne jure que par les produits qui offrent un vrai accès root.

Fil RSS des articles de cette catégorie