Planet Libre

genma : Yunohost - Usage depuis le réseau local

Configuration du réseau : mon PC portable et mon serveur Yunohost sont branchés tout deux derrière la Freebox, qui crée un réseau locale entre ces deux machines. La Freebox est configuré en routeur, son IP publique est associée au nom de domaine du serveur Yunohost et la configuration NAT fait que toute entrée depuis l'extérieur (via l'IP publique), sur le bon port, est redirigée vers le serveur Yunohost.

Dans son message sur le forum Yunohost, Koantig a une configuration similaire et s'inquiète de l'usage du nom de domaine quand on est en local

Le hic, c'est que tout ça passe par internet, alors que tout est local. J'aimerais faire en sorte que si je suis sur le réseau local, les requêtes ne passent pas par internet.

Et arrive à la conclusion qu'il faut associer l'IP locale de la machine au nom de domaine dans le fichier /etc/hosts.

Sa solution marche, mais dans le cas où on déplace la machine (cas d'un PC portable par exemple), il faut penser à enlever cette ligne.

Est-ce que ça sort vraiment sur Internet ?

Pour le vérifier, si je fais depuis mon réseau local un "traceroute mondomaine.fr", on voit qu'on s'arrête au premier routeur, qui a pour IP l'IP publique de la Freebox. On ne sort donc pas de la Freebox et d'Internet. Certe la Freebox va refaire du transfert NAT et changer les paquets pour les retransferer à la machine Yunohost, ce qui est une étape de plus contrairement à l'usage directement de l'IP locale (dans ce cas les fonctions de routeur et de NAT de la Freebox ne sont pas sollicités)

Sur le réseau local, derrière ma Freebox, ma Freebox sait que si une machine local demande l'IP publique correspondant à Yunohost, elle doit rediriger le trafic vers mon Yunohost. La Freebox fait une redirection NAT en interne, mais ça "ne sort" pas sur Internet.

Est-ce qu'on perd du temps ?
Si je fais
ping IP locale, j'ai :

64 bytes from IP Locale: icmp_seq=1 ttl=64 time=0.303 ms
64 bytes from IP Locale: icmp_seq=2 ttl=64 time=0.314 ms
64 bytes from IP Locale: icmp_seq=3 ttl=64 time=0.306 ms
64 bytes from IP Locale: icmp_seq=4 ttl=64 time=0.273 ms
64 bytes from IP Locale: icmp_seq=5 ttl=64 time=0.269 ms

Soit 289 ms de moyenne.

Si je fais ping IP publique, j'ai :

64 bytes from IP Publique: icmp_seq=1 ttl=64 time=0.253 ms
64 bytes from IP Publique: icmp_seq=2 ttl=64 time=0.488 ms
64 bytes from IP Publique: icmp_seq=3 ttl=64 time=0.488 ms
64 bytes from IP Publique: icmp_seq=4 ttl=64 time=0.253 ms

Soit 370 ms de moyenne.

C'est effectivement "un peu plus lent" (vu qu'on fait le routage et la redirection NAT avec l'IP publique), mais ce n'est pas suffisament sensible.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Journal du hacker : Liens intéressants Journal du hacker semaine #1

Pour la première semaine de l'année 2018, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Miamondo : Programmer une fenêtre de déconnexion en langage Python

Salut la compagnie,

Il y a quelques semaines, j’avais récupéré sur internet une fenêtre de déconnexion fabriquée grâce à la bibliothèque Pygtk. Voici à quoi elle ressemblait :

Bitte ausw_007

Elle possédait toutes les fonctions (« Mise en veille », « Redémarrer », « Éteindre » etc…) mais son design triste comme un jour de pluie ne me satisfaisait point. L’honnêteté m’oblige même à vous dire que je trouvais ça vilain comme tout. Comme cela fait plusieurs mois que je n’ai pas programmé en Python, je me suis dit qu’instancier ma propre fenêtre de déconnexion serait peut-être un bon exercice. Ça me dégourdirait les neurones.

Ni une ni deux, j’ai ouvert mon éditeur de texte et hop! après plusieurs heures de labeur, j’ai obtenu quelque chose qui me contente :

Abmeldungsfenster_009

J’ai déposé le tout sur framagit : https://framagit.org/Ordinosor/logout-window

Le code est ici.

Le cahier des charges

Je m’étais donné trois objectifs :

  1. Détecter la langue du système, (la « locale » comme on dit) et afficher les textes en conséquence.
  2. Remplacer chaque icône par le texte correspondant à la fonction du bouton, à chaque fois que le curseur de la souris survole une des cinq icônes. Effectuer l’opération inverse à chaque fois que le curseur quitte une des cinq icônes.
  3. Centrer la fenêtre au milieu de l’écran.
Détecter la langue du système
  • Importation du module locale,
  • Lignes 62 à 96 :
self._locale = locale.setlocale(locale.LC_ALL, "")[0:2]
  • la variable self._locale stocke les deux premiers caractères de la langue détectée (« en », « fr », « de » etc…)
  • Ensuite, j’ai créé une liste de trois listes contenant les traductions des boutons en allemand, en anglais et en français. À l’aide d’une condition if-elif-else, c’est la langue détectée qui sera utilisée.
  • Si la variable self._locale stocke les initiales d’une autre langue (par exemple le patois vendéen), la fenêtre sera en anglais car c’est la langue que j’ai définie par défaut. Vous devez bien vous douter que je ne vais pas m’amuser à traduire cette application dans tous les idiômes de la Terre!
Remplacer chaque icône par le texte correspondant à la fonction du bouton au survol de la souris (et le contraire pour l’opération inverse)
  • Lignes 175 à 194 : J’ai lié les boutons aux événements <« Enter »> et <« Leave »>
  • Ligne 48 : J’ai reconfiguré le bouton survolé pour faire disparaitre l’image et la remplacer par le texte. C’est là que j’ai eu un petit problème:
event.widget.config(image="", text=self.button_name...)

.

  • Comme vous pouvez le constater, il a fallu d’abord que j’affecte une chaîne de caractères vide à l’option image avant de configurer l’option text sinon ça ne fonctionnait pas.
Centrer la fenêtre au milieu de l’écran
  • Lignes 105 à 116: Ça n’a pas été simple. J’ai déniché un bout de script qui fait le boulot mais j’avoue que j’ai du mal à comprendre la formule mathématique. On récupère les dimensions de l’écran  auxquelles on retranche les dimensions requises pour afficher le widget, le tout divisé par deux. J’ai traduit le commentaire en français pour celles et ceux que ça intéresse.
Conclusion

Je suis content de m’être replongé dans le langage Python. Il est clair que le code mérite d’être retravaillé pour le rendre plus concis mais malgré tout, le résultat me donne entière satisfaction, à telle point que depuis ce matin, je n’arrête pas d’éteindre et de rallumer mon ordinateur… Jour… Nuit… Jour… Nuit… Jour… Nuit…

 


Gravatar de Miamondo
Original post of Miamondo.Votez pour ce billet sur Planet Libre.

Articles similaires

Tom : Installer PokerStars sur Fedora

Salut les amis,

Hier soir je voulais tranquillement me faire une petite partie de Poker, mais il est vrai que je suis sous Fedora 27 comme OS principal depuis quelques temps maintenant. Et je n’avais pas envie de booter sur Windows rien que pour ça !!

Donc je me rend sur leur site … Et impossible de télécharger leur client. Merde alors !

Bon un peu de Google et je trouve rapidement comment faire … pour cela il faut passer par Wine. Bon bon … Les développeurs sont toujours incapable de développer un client multi plateforme ? … Et pourtant il en existe des langages de programmations multi-plateformes bordel !

Bon c’est du Wine, le programme est en Silver donc tourne depuis un moment, ce n’est pas difficile. Juste 2 prérequis en terme de police d’écriture.

Bon alors on va installer tout ça :

cd ~/tmp sudo dnf install wine wine-tahoma-fonts wine-arial-fonts wget http://www.pokerstars.net/PokerStarsInstallFR.exe wine PokerStarsInstallFR.exe

Et c’est tout ! Vous faites next, next, puis vous vous logguez et hop c’est bon 🙂

Bon gaming 🙂

Gravatar de Tom
Original post of Tom.Votez pour ce billet sur Planet Libre.

Jehan : Nouvelle image pour nouvelle année

Bonne année à tous!

Aryeom a commencé le premier jour de l’année par un dessin en live de bienvenue à la nouvelle année, qui est dorénavant l’image d’en-tête du présent site.  Il était temps d’ailleurs, notre précédent en-tête était un peu à tendances estivales. 🙂

New year 2018Cette image est aussi au format 16:9 donc vous pouvez l’utiliser en fond d’écran si vous le souhaitez et si le format correspond. Cliquez simplement la miniature à droite pour la télécharger pleine taille.
Elle est sous licence Creative Commons BY 4.0 par Aryeom Han, réalisatrice de ZeMarmot.

En outre la session de dessin numérique fut diffusée live (comme beaucoup de sessions de GIMPage d’Aryeom dorénavant, tel qu’expliqué dans la section “Live Streaming du travail sur ZeMarmot” de notre compte-rendu 2017). Si vous avez manqué le live, vous pouvez vous rattrapper en regardant l’enregistrement. Comme d’habitude, nous rappelons que ce ne fut pas édité après coup, ni accéléré, ni rien; nous n’avons pas non plus rajouté de musique pour rendre la vidéo “cool” ou quoi que ce soit du genre. 😛
Il s’agissait d’un vrai live, avec Aryeom concentrée sur son dessin, ce qui explique qu’il s’agisse d’une vidéo de presque une heure avec des endroits où il ne se passe d’ailleurs rien. Faites avance rapide si vous voulez juste voir la progression en quelques minutes. 😉
Bon visionnage!

Ce live et ce dessin sont rendus possibles grâce à nos nombreux donateurs!

Rappel: les créations (Art Libre) d'Aryeom peuvent être soutenues financièrement sur Liberapay, Tipeee ou Patreon (projet ZeMarmot).

Gravatar de Jehan
Original post of Jehan.Votez pour ce billet sur Planet Libre.

Articles similaires

System Linux : Le bordel arrive sous peu...Différence entre Meltdown et Spectre

m_s.jpg

OuCh...

Petit lien pour s'informer :

https://danielmiessler.com/blog/simple-explanation-difference-meltdown-spectre/

Pour les windobiens :

https://support.microsoft.com/en-us/help/4056892/windows-10-update-kb4056892

https://meltdownattack.com/

Va falloir choisir entre la vitesse et la sécurité :p

Pour vérifier en ligne de commande si les patchs sont bien passés :

grep bugs /proc/cpuinfo

Si vous n'avez pas insecure_cpu c'est que vous êtes encore vulnérable.

Gravatar de System Linux
Original post of System Linux.Votez pour ce billet sur Planet Libre.

Carl Chenet : Meilleurs articles 2017 du Courrier du hacker, newsletter du Logiciel Libre

Quels sont les meilleurs articles publiés cette année via le Courrier du hacker, la newsletter hebdomadaire résumant l’actualité francophone du Logiciel Libre ?

E-mail S'abonner

L’année 2017 a vu naître le Courrier du hacker pour une publication de 16 numéros dans cette première année d’existence. Pour ce classement, nous considérons l’article le plus consulté de chaque numéro, classé par catégorie. Pour rappel tous les articles proposés chaque semaine dans le Courrier du hacker sont tirés du Journal du hacker.

Et sans plus attendre, voici les meilleurs articles de 2017 !

Vie privée Gafam Administration système Auto-hébergement Sécurité Communauté La démarche du Courrier du hacker

Le Courrier du hacker a été créé dans l’idée que la publication sous format de newsletter permettrait de prendre un peu de distance vis-à-vis de l’actualité.

En effet nous sommes aujourd’hui submergés de micro-événements et il devient de plus en plus difficile de prendre du recul par rapport à ce sentiment de manquer quelque chose. Se poser et être capable de lire des articles évoquant des problèmes récurrents d’ordre technique, de vie privée ou encore dans les communautés du Logiciel Libre devient précieux pour ne pas être formaté par une actualité que les principaux sites assènent lordement et répètent souvent en modifiant à peine leurs articles.

Nous espérons continuer dans la même veine en 2018. Un grand grand merci à toute la blogosphère francophone du Logiciel Libre qui fait un travail formidable.

Me suivre sur les réseaux sociaux

N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre :

Gravatar de Carl Chenet
Original post of Carl Chenet.Votez pour ce billet sur Planet Libre.

Articles similaires

Jehan : ZeMarmot, GIMP 2.9.8 et compte-rendu de fin 2017…

Et voilà, GIMP 2.9.8 est sorti il y a quelques jours, dernière version de développement de GIMP! Comme il est de  coutume, nous détaillons ci-dessous notre implication dans cette version, notamment pour que nos donateurs sur les plateformes de financement participatif savent ce qu’ils financent.

Comme en plus, l’année 2017 vient de terminer, je complèterai aussi ce post avec notre rapport de fin d’année, comme nous avions déjà fait fin 2016.

Qu’avons-nous fait dans GIMP 2.9.8?

Pendant ces derniers mois, j’ai décidé de me concentrer surtout sur de la correction de bug. J’ai terminé quelques fonctionnalités ici ou là, mais me suis en fait beaucoup retenu de coder trop de nouvelles choses. Pourquoi donc? Parce que je pense que nous avons assez de nouveautés et qu’on est à un point où on doit simplement sortir GIMP 2.10 au plus vite. Bien sûr, GIMP 2.10 pourrait être 2 fois mieux en repoussant de quelques mois, et 10 fois mieux en repoussant encore plus. Mais au final, quel intérêt si personne ne le voit?! Je prévois donc de me focaliser essentiellement sur les bugs et finalisations de fonctionnalités commencées jusqu’à la sortie de 2.10.

J’ai aussi passé beaucoup de temps à la gestion des rapports de bugs (plus d’une  centaine de participation à des rapports de bug entre 2.9.6 et 2.9.8, i.e. en 3 mois et demi).  J’ai notamment entamé la réorganisation de notre cible 2.10 en sélectionnant les bugs “bloquant” pour GIMP 2.10. À ce jour, il nous reste donc 29 bloqueurs à considérer en priorité pour GIMP 2.10.

De même, j’ai redoublé d’effort pour que nous puissons enfin avoir une sortie flatpak officielle de GIMP sur flathub, ce qui est le cas depuis le 16 octobre! Ce paquet est bien sûr disponible dans la section GNU/Linux de la page de téléchargement de GIMP, avec un gros bouton orange “Install GIMP flatpak” (au passage, vous remarquez le dessin en haut de page? C’est un dessin d’Aryeom!).

À ce jour, on ne peut installer que la version stable par ce biais, c’est à dire GIMP 2.8.x (flathub n’accepte que les versions stables) mais en l’installant par ce biais, quand GIMP 2.10 sortira, vous serez en mesure de le mettre à jour aisément et rapidement (probablement le jour de la sortie) avec une build officielle!
Dans tous les cas, la maintenance de ce flatpak me prend un temps certain (en particulier pour garder le manifest flatpak à jour dans notre dépôt de source et tester les builds)!

En tout, je suis l’auteur de 122 commits entre GIMP 2.9.6 et 2.9.8, sur 474 commits totaux (soit ~25%), et j’ai poussé quelques autres commits de développeurs tiers après revue de code…
Notons aussi encore 2 commits “invités” par Lionel N., membre du Conseil d’Administration de LILA, l’association loi 1901 gérant le projet ZeMarmot.

Bien entendu, même si je dis m’être concentré sur les bugs, j’ai participé à quelques fonctionnalités sympas qui sont arrivées avec cette sortie:

  • Prise en charge d’import de fichiers PDF protégés par mot de passe (les 2 commits de Lionel de LILA!) et une nouvelle procédure `file-pdf-load2()` pour que les plug-ins et scripts puissent aussi ouvrir des PDFs avec mot de passe, mais aussi des PDFs multi-pages (il était déjà possible d’importer des PDFs multi-pages graphiquement, mais la fonctionnalité n’était pas disponible pour les scripts et plug-ins).
  • Amélioration du système d’aide: en cas de détection d’installations multiples de manuels dans plusieurs languages, GIMP permettra dorénavant la sélection du langage de manuel préféré dans les Préférences (Interface > Help System). Il me semble que cette fonctionnalité est importante car nous avons régulièrement des gens ne comprenant pas pourquoi GIMP ne voyait pas le manuel qu’ils avaient installés.  En outre, nous n’avons pas autant de traductions du manuel que de l’interface graphique. Ainsi nous avons 3 traductions chinoises de l’interface (zh_CN|TW|HK) mais uniquement une traduction du manuel (zh_CN). Je pourrais tout à fait imaginer quelqu’un avec une interface zh_HK (chinois de Hong Kong) utilisant alors le manuel zh_CN (chinois simplifié). De même que quelqu’un pourrait vouloir son interface en breton (oui, on a une traduction bretonne!) et un manuel en français.
  • La version verbeuse (ligne de commande: gimp -v) affiche maintenant aussi des informations sur le compilateur C utilisé (utile pour le debugging).
  • Les information de rotation et de retournement du canevas sont maintenant visibles dans la barre de statut et cette information est interactive (en cliquant les icones de retournement, vous remettez le canevas à l’endroit; cliquer l’angle de rotation ouvre la boîte de dialogue “Sélectionner l’angle de rotation“). Certaines personnes remarquaient en effet qu’à force de retourner ou tourner le canevas, on pouvait “s’y perdre” et ne plus savoir s’il était retourné ou non. En outre la barre de statut a déjà les informations de zoom, très similaires. 🙂
  • Implémentation de la capture d’écran pour KDE/Wayland.
  • Implémentation de la pipette à couleur pour KDE/Wayland.
  • Amélioration de la gestion du délai pour les captures d’écran.
  • Revue des patches de prise en charge du format HGT et amélioration de ceux-ci avec de l’auto-détection des variantes (SRTM-1 et SRTM-3), et aussi une procédure `file-hgt-load()` pour les scripts et plug-ins.

Quoiqu’il en soit, je considère que les corrections de bug et la maintenance de code que j’ai faites furent plus importantes que cette liste de fonctionnalités, mais c’est malheureusement toujours compliqué de rendre une liste de bugs aussi attrayante qu’une liste de fonctionnalités! Cela ne m’empêchera pas de continuer à me focaliser sur les bugs jusqu’à la sortie de 2.10.

ZeMarmot en 2017: notre compte-rendu!

Vous le savez bien: ZeMarmot, ce n’est pas seulement du code sur GIMP, même si ce logiciel est une grosse partie du projet. ZeMarmot est avant tout la réalisation d’un film d’animation, en 2D dessinée, animation traditionnelle mais néanmoins numérique (dessin sur ordinateur et non papier). Bien sûr, nous dessinons dans GIMP. Pour être plus précis, Aryeom Han, animatrice et réalisatrice, dessine (pas moi). Et nous finançons le projet participativement.

Finances

Cette année fut un peu dure psychologiquement et nous nous sommes demandés à plusieurs reprises si le projet était bon pour nos vies.  En effet, le financement participatif augmentait, mais très lentement pendant tout 2017 (autour des 400 € par mois).

C’est ainsi qu’en octobre, j’ai lancé un appel à l’aide après que mon ordinateur ait cassé, et nous fûmes très heureux que beaucoup de gens y répondent. Le financement a doublé en quelques jours.

Ensuite, soyons clair: notre financement actuel est plus ou moins de 1000€ mensuels (depuis octobre), ce qui est mieux et nous a donné beaucoup d’espoir; cependant cela ne nous paie pas 2 salaires (en fait, pas même un seul temps plein). Nous espérons donc que si vous appréciez notre projet, que ce soit pour le développement de GIMP et/ou pour le film ZeMarmot, vous ne nous oublierez pas et soutiendrez le projet en donnant. Nous vous en serons très reconnaissant!

Les donations à ZeMarmot peuvent se faire là:

» Liberapay «
(donations hebdomadaires, USD et EUR possibles, frais les plus bas)

» Patreon «
(donations mensuelles, USD ($) seulement)

» Tipeee «
(donations mensuelles, EUR (€) seulement)

Live Streaming du travail sur ZeMarmot

Nous sommes conscients que le peu de nouvelles du côté animation n’était pas idéal. L’animation est un travail qui prend beaucoup de temps; donc le travail sur le film avance, mais c’est simplement très dur de donner des nouvelles concrètes.

À titre d’exemple, en fonction de la complexité et du détail d’animation, une minute d’animation peut prendre un mois de travail à temps plein, voire plus (vous trouverez pleins de liens sur le web, qui donnent tous des infos similaires).
Cela dépend bien sûr de vos choix artistiques. De l’animation vectorielle ou de  l’animation limitée (Les Simpson par exemple) seront animées bien plus rapidement. En gros vous n’animerez pas South Park ou un film Disney à la même vitesse (ce qui n’est pas un problème, mais un choix; j’apprécie aussi Les Simpson ou South Park). Dans le cas de ZeMarmot, comme vous le savez, nous avons choisi un style détaillé et une animation traditionnelle classique. C’est un choix (que nous avons parfois regretté à cause du temps pris, mais ce qui est fait est fait!).

C’est ainsi qu’ Aryeom a décidé de diffuser des lives de ses sessions de travail! Après quelques jours de recherche de logiciel, elle a choisi OBS comme logiciel libre de streaming (on a au passage réussi à casser Fedora en réinstallant les pilotes NVidia en suivant des tutoriels! :p), et après plusieurs tests en décembre, elle a commencé officiellement ses lives publics le 25 décembre 2017!

Voici le lien où les lives sont régulièrement visibles:

» https://www.youtube.com/c/LibreArtInfo/live «

Nous n’avons pas encore trouvé l’organisation idéale pour planifier les lives à venir. Par conséquent, le mieux pour le moment est soit de nous suivre sur Twitter, soit de s’inscrire à la chaîne Youtube, ou simplement de jeter un œil de temps en temps sur le lien ci-dessus.

Les lives précédents sont automatiquement enregistrés et visibles en différé sur la chaîne à la fin du streaming. Soyez prévenus cependant: il s’agit de vrais lives de quelqu’un travaillant réellement. Cela signifie déjà que c’est du temps réel (et pas accéléré 20 fois comme on peut le voir dans divers “speed painting”), des erreurs peuvent se produire et cela n’est pas édité ensuite. Il n’y a pas de son (ni musique, ni parole) et Aryeom n’intéragit pas avec les gens en direct. Elle est concentrée sur son travail et ne regarde pas le streaming. De temps en temps, nous regardons le chat et on peut répondre à des questions, mais ne considérez pas cela comme une évidence. Il s’agit d’un aperçu du travail d’animateur professionnel et non d’un service de chat ou de questions-réponses. De même, il arrive que l’animateur fasse une pause au milieu d’un live et nous ne vous promettons pas que vous ne vous ennuierez jamais. 😉
D’ailleurs le plus long streaming qu’elle ait enregistré à ce jour est de plus de 7 heures d’affilées! Vous êtes prévenus! 😛

Dans tous les cas, c’est une expérience vraiment très enrichissante et nous avons déjà reçu des commentaires très positifs de la communauté.

 

Symbiose Art+Code

Nous avons eu régulièrement la question: “pourquoi ne pas faire de financements participatifs séparés pour le développement et l’animation?

Réponse: parce que ce projet est un tout. C’est une symbiose. Je code du Logiciel Libre car je l’utilise; si ZeMarmot n’existait pas (ou un autre projet où on utiliserait GIMP), alors je ne contribuerais probablement pas à GIMP. C’est aussi simple que cela. Aryeom de son côté n’utiliserait probablement pas GIMP si elle n’avait pas un développeur à ses côtés.

Nous rappellons que c’est ainsi que nous avons commencé nos premiers patchs à GIMP: nous avions des bugs et des crashs et considérions alors que GIMP n’était pas suffisant pour un usage professionnel à l’époque. Nous sommes heureux de pouvoir dire que c’est beaucoup beaucoup mieux de nos jours (avec la version de développement). Soyons clairs que nous ne sommes pas les seuls responsables, loin de là! Nous sommes chanceux de pouvoir hacker GIMP aux côtés de plusieurs développeurs vraiment talentueux (notamment Mitch, le mainteneur de GIMP, qui est toujours là après 20 ans!). Par contre le fait qu’on nous ait permis d’y mettre du notre est clairement la raison pour laquelle nous nous accrochons à ce projet.

Pour illustrer à quel point notre projet est un tout, lors d’un streaming d’Aryeom, il y a quelques jours, nous avons été capable de démontrer en live comment nous travaillons ensemble. Pendant le live, un crash de GIMP s’est produit! Ouch! En quelques minutes, elle fut capable de trouver des étapes de reproduction du crash, et moins de 2 heures plus tard (cela ne m’a pas pris 2H, mais je pouvais pas non plus abandonner mon activité du moment d’un coup!), j’ai poussé un correctif dans le dépôt de source de GIMP.

Et c’est ainsi que le projet ZeMarmot est un projet très efficace de 2 personnes, une collaboration d’un développeur et d’une animatrice (qui travaille quotidiennement et professionnellement avec ce logiciel), et absolument pas 2 projets séparés. 🙂

Ainsi si jamais vous vous êtes retenu de donner jusque là car vous souhaitez seulement donner pour un film, ou au contraire seulement donner pour du développement GIMP, nous espérons que vous pourrez revoir votre jugement et voir qu’en donnant à ZeMarmot, vous aidez tous les aspects du projet en même temps!

GIMP Motion

GIMP Motion est notre our plug-in pour l’animation dans GIMP (nous en avions déjà parlé en démontrant la création d’animations simple puis complexes). Vous pouvez d’ailleurs aussi le voir en action presque quotidiennement dans les lives d’Aryeom maintenant.

Malheureusement j’en ai un peu négligé le développement dernièrement pour la raison donnée précédemment: je me concentre surtout sur la sortie de GIMP 2.10 pour le moment. J’espère donc bien que cette sortie sera très bientôt (pour en finir enfin avec GIMP 2 et commencer l’aventure GIMP 3!).
Cela signifie que GIMP Motion ne sera vraisemblablement pas inclus dans GIMP 2.10, mais il sera sûrement dans une sortie GIMP 2.10.x puisque nous avons décidé début 2017 que nous relâchions notre politique d’absence de nouvelles fonctionnalités dans les versions mineures. J’ai donc décidé que GIMP Motion n’était pas prêt pour être considéré “stable”. C’est d’ailleurs exactement pour cela que je pousse cette relâche de notre politique de sortie depuis 2014 (cf. la section “Les Réunions GIMP” dans notre compte-rendu LGM 2014!): pour ne pas se presser à sortir des fonctionnalités à moitié faites ni pousser les sorties indéfiniment.

Nous utilisons ce plugin en interne bien sûr, mais il reste instable et avec de nombreux bugs. Vous êtes prévenus!

Documenter le processus d’animation

Cette année, nous avons beaucoup moins documenté notre travail. On a bien eu un article sur l’animatique, le key-framing, etc. et un sur le background design. Nous avons aussi fait quelques conférences pendant le festival NUMOK des bibliothèques parisiennes ainsi qu’aux JM2L avec quelques explications du processus d’animation que nous n’avons pas encore mises noir sur blanc (mais bientôt!).

Mais ce n’est pas assez puisque nous souhaitons vraiment documenter le plus possible pour que les techniques de films animées n’aient pas de secret pour tous. Comme je disais, cette année ne fut pas rose et nous n’étions tout simplement pas dans dans l’esprit. Espérons que nous ferons mieux l’an prochain!

ZeMarmot à la télé!

Grâce aux JM2LZeMarmot est passé 2 fois à la télé en fin d’année. Dans toutes les vidéos, GIMP est clairement mentionné et visible à l’écran, de même qu’Aryeom hackant des animations dans GIMP, sous bureau GNOME. 🙂

Nous sommes ainsi passé sur France 3 côte-d’Azur (à l’écrit aussi):

Puis sur PleinSud TV (à 2:32):

Et une mention dans le journal papier Nice Matin:

Matériel mis à jour

Grâce au financement accru de fin d’année, nous avons pu renouveler notre matériel. En particulier nous avons acheté une Wacom MobileStudio Pro (en gros un portable-tablette de Wacom) sur laquelle notre première action fut de remplacer Windows par une distribution GNU/Linux (Fedora 27) et d’installer GIMP. Cela fontionne bien! Bon soyons clair: on a tout de même ouvert plus d’une dizaine de rapports de bug pour divers projets libres, donc ne vous attendez pas à une prise en charge parfaite. Mais on y travaille!

Nous avons d’ailleurs documenté  un peu l’évolution sur un moment Twitter avant de devoir faire une pause à cause de problèmes matériels (nous avons dû renvoyer la tablette au service après-vente qui a mis plus de 3 semaines à nous la retourner!).

Nous publierons plus tard un guide complet pour ce matériel de peintre numérique avec GNU/Linux et GIMP. 🙂

Conclusion

L’année fut dure mais intéressante et la fin d’année en particulier nous a redonné de l’espoir que l’on croyait perdu, avec un financement un peu plus raisonnable et une mise-à-jour du matériel.

Les streamings d’Aryeom GIMPant ZeMarmot furent aussi une idée super cool et nous sommes heureux de voir que les gens semblent apprécier. À ce jour, nous n’avons eu que des retours positifs. Nous aurions dû en faire plus tôt!

Nous avons donc espoir que les choses continueront à s’améliorer. Nous aimons ce que nous faisons et notre projet, et rêvons de ce jour où nous pourrons dire fièrement que nous sommes capable de vivre de Logiciel Libre et d’Art Libre.
Lorsque ce jour arrivera, ce sera clairement un jour heureux où nous pourrons sabrer le champagne. 🙂

En attendant, nous vous souhaitons à tous une année 2018 heureuse, amusante et libre!

Gravatar de Jehan
Original post of Jehan.Votez pour ce billet sur Planet Libre.

Articles similaires

Morot : Un système de fichiers Haute Disponibilité avec GlusterFS ! (Paru dans GLMF 144)

GlusterFS est un système de fichiers réseau client/serveur permettant d’agréger différents nœuds de stockage afin de fournir un environnement NAS hautement disponible.

1. Présentation 1.1 Pour quoi faire ?

Admettons que j’ai une application Web lambda, je vais pouvoir déployer plusieurs instances Apache ou Nginx qui se trouveront derrière un équilibreur de charge, lui-même hautement disponible. Sur chaque instance de serveur Web, il me sera facile de déployer l’application. Toutefois chaque instance aura besoin d’accéder à des fichiers communs, générés ou non par l’application. Bien souvent, je vais rencontrer dans ce cas un serveur NFS qui va donc lui-même constituer un point de faiblesse dans l’architecture.

Gluster permet de mettre en cluster plusieurs nœuds de stockage (à minima deux), ce qui permet de répondre à deux problématiques majeures dès qu’une application a besoin de pouvoir monter en charge : la parallélisation et la réplication du stockage. Pour fournir ces fonctionnalités sur un volume, une « brick » en langage Gluster, le système s’appuie sur des systèmes de fichiers traditionnels, XFS ou EXT4 au-dessus d’un périphérique en mode bloc (partition, LVM, RAID, etc..). Gluster travaille donc principalement au niveau fichier.

Contrairement à un certain nombre d’autres systèmes de fichiers de ce type, Gluster offre l’immense avantage de ne pas nécessiter de serveur de méta données pour fonctionner. De fait, cette absence ne constitue pas un point de faiblesse ou un élément supplémentaire à maintenir dans l’infrastructure de stockage. De plus, chaque fois que l’on ajoute un nœud au cluster, le système devient plus performant et l’augmentation de la performance est linéaire avec l’extension de l’infrastructure. Dernier point pour mettre en évidence cette simplicité de conception, il n’existe pas de notion de maître ou d’esclave avec GlusterFS.

1.2 Les volumes GlusterFS

Un volume est une agrégation de plusieurs bricks répartis sur différents nœuds de stockage. Le choix du type de volume se fait en fonction des attentes de performances, de sécurité ou de la combinaison des deux. Voyons les types de volumes standards, sachant qu’il existe des modes géo-répliqués, strippés ou basés sur l’erasure coding pour des workflows spécifiques.

1.2.1 Volume distribué

Ce mode est le mode par défaut de GlusterFS. Les fichiers sont répartis sur l’ensemble des bricks du volume sans redondance aucune. Par conséquent, lors de la perte d’un nœud, les données de celui-ci sont perdues et il faudra se baser sur des mécanismes complémentaires pour assurer la reprise après incident. La volumétrie utile est celle de l’ensemble des nœuds du cluster Ce mode permet une croissance aisée de la volumétrie en ajoutant simplement des nœuds au volume. Il faut donc au minimum deux nœuds, et la distribution peut se faire sur autant de nœuds du cluster (voir figure 1).

Fig. 1: Volume distribué.

1.2.2 Volume répliqué

Ce mode permet de répondre au problème de la sécurité de la donnée posé par le mode distribué. Dans ce mode opératoire, le système maintient n copies de chaque fichier au sein des « bricks » spécifiées. Il faut donc autant de nœuds au cluster que de réplicas désirés. De la même façon que sur du RAID1, la volumétrie utile est la moitié de la volumétrie allouée (voir figure 2).

Fig. 2: Volume répliqué.

1.2.3 Volume distribué répliqué

Vous l’aurez compris, ce mode est une combinaison des deux modes précédents. Cela permet de traiter des workflows nécessitant disponibilité et capacité à monter en charge. Le nombre de bricks nécessaires est un multiple du niveau de réplication attendu. De plus, la réplication entre les bricks est définie par leur ordre de déclaration à la création du volume. Pour quatre bricks avec deux réplicas, les deux premières bricks répliquent ensemble et de même pour les deux suivantes (voir figure 3). Si nous souhaitions quatre réplicas, il nous faudrait donc huit bricks et les quatre premières répliqueraient entre elles.

Fig. 3: Volume distribué répliqué.

2 Un peu de pratique 2.1 L’environnement

GlusterFS est assez agnostique par rapport à l’environnement et à la distribution. Pour ma part, les démonstrations suivantes seront toutes réalisées sous Ubuntu 16.04. Un point indispensable étant que les nœuds soient capables de discuter par leur nom, qu’il soit résolu par DNS ou par le fichier hosts, mais pas par adresse IP. Pour la suite, je partirai sur deux VMs stor0 et stor1 afin de monter un cluster à deux nœuds.

Chaque serveur dispose d’un second disque virtuel de 10 Gio pour la démonstration. Le périphérique doit par contre impérativement disposer d’un système de fichiers supportant les attributs étendus, ext4 ou XFS sachant qu’XFS est de loin le système de fichiers recommandé. La convention de nommage veut, mais n’impose pas, que les données soient placées dans /data/glusterfs/volume/brick. La création des volumes peut se faire simplement comme ceci :

$ apt-get -y install lvm2 acl attr xfsprogs $(echo o; echo n; echo p; echo 1; echo ; echo; echo t; echo 8E; echo w) | fdisk /dev/sdb $ pvcreate  /dev/sdb1 $ vgcreate VG-Brick0 /dev/sdb1 $ lvcreate  -l 100%VG -n LV-Brick0 VG-Brick0 $ mkfs.xfs -i size=512 -L Brick0 /dev/VG-Brick0/LV-Brick0 $ mkdir -p /data/glusterfs/vol0/ $ echo "/dev/VG-Brick0/LV-Brick0 /data/glusterfs/vol0/ xfs defaults 1 2" >> /etc/fstab $ mount /data/glusterfs/vol0/ $ mkdir /data/glusterfs/vol0/brick0

Le LVM n’est pas obligatoire, mais s’y tenir permet d’avoir les bons réflexes pour de la production. Pour le reste, l’installation des packages est très simple, cette simple commande suffit :

$ apt-get -y install glusterfs-server

Par souci de simplification, aucun pare-feu n’est activé sur les différentes machines. Point de vigilance, il ne faudra pas cloner les machines avec le disque de données supplémentaire.

2.2 Le trusted pool

Avant d’être en mesure de gérer des volumes de stockage, les membres d’un cluster GlusterFS doivent se reconnaître entre eux et faire partie d’un même trusted pool. Tant que cette opération n’est pas réalisée, il n’est pas possible pour un hôte de joindre le réseau de stockage. Pour cela, c’est très simple, il suffit depuis un nœud de sonder avec la commande gluster peer probe d’ajouter les autres nœuds :

root@stor1:~# gluster peer probe stor0 peer probe: success.

Pour vérifier :

root@stor1:~# gluster peer status Number of Peers: 1 Hostname: stor0 Uuid: a920b020-9e5a-46f6-b073-1cc8ec00ba0e State: Peer in Cluster (Connected) 2.3 Un volume répliqué

On va poursuivre notre itinéraire au sein de GlusterFS en créant un volume répliqué à deux nœuds. J’ai donné en introduction un exemple basé sur des attentes de haute disponibilité du stockage, il me semble pertinent de poursuivre sur cet exemple qui parlera sans doute davantage. Notre cluster ayant deux nœuds, avec conservation de deux copies, cela nous fait donc un système en miroir. Sur chaque serveur, on indique le dossier dans lequel se trouvent les données. Par sécurité, il est préconisé de créer le volume dans un sous-répertoire du point de montage afin qu’en cas d’échec de montage du volume, cela n’ait pas d’incidence sur la réplication gluster. Du fait du risque d’avoir un dossier vide sur un membre du cluster lors du démarrage des services, le comportement ne serait pas forcément prévisible.

root@stor1:~# gluster volume create repl-vol replica 2 transport tcp stor0:/data/glusterfs/vol0/brick0/ stor1:/data/glusterfs/vol0/brick0/ volume create: repl-vol: success: please start the volume to access data root@stor1:~# gluster volume start repl-vol volume start: repl-vol: success

On peut donc vérifier que tout est en ordre avec la commande ci-dessous. Le volume doit être marqué comme online sur l’ensemble des nœuds :

root@stor1:~# gluster volume status Status of volume: repl-vol Gluster process                             TCP Port  RDMA Port  Online  Pid ------------------------------------------------------------------------------ Brick stor0:/data/glusterfs/vol0/brick0     49152     0          Y       2536 Brick stor1:/data/glusterfs/vol0/brick0     49152     0          Y       2338 NFS Server on localhost                     2049      0          Y       2359 Self-heal Daemon on localhost               N/A       N/A        Y       2364 NFS Server on stor0                         2049      0          Y       2557 Self-heal Daemon on stor0                   N/A       N/A        Y       2562 Task Status of Volume repl-vol ------------------------------------------------------------------------------ There are no active volume tasks 2.4 Connexion d’un client

Il existe trois mécanismes d’accès principaux côté client :

– le client natif accédé au travers de FUSE, le système permettant de créer des pilotes de filesystem au niveau userland. Il suffit pour cela d’installer les packages nécessaires.

– via NFS, Gluster impémentant nativement le support NFS. Si vous avez été vigilant lors de l’installation du package glusterfs-server, vous avez sûrement remarqué certaines dépendances. Le serveur NFS n’est pas activé par défaut cependant.

– en CIFS, avec un serveur Samba.

Dans les deux derniers cas, il est souhaitable d’associer les serveurs à un système de type CTDB pour fournir de la haute disponibilité. NFS et Samba ne savent en effet pas tirer parti de l’ensemble des fonctionnalités contrairement au client natif. Connectons donc un premier client :

$ apt-get -y install glusterfs-client $ mkdir /data $ mount -t glusterfs stor1:/repl-vol /data

Créons un fichier aléatoire avec par exemple la commande ci-dessous.

$ dd if=/dev/urandom of=/data/toto bs=1024 count=10240

Pour confirmer que la réplication est fonctionnelle, il suffit de vérifier avec une simple commande ls que le fichier est présent sur les bricks de chacun des deux serveurs GlusterFS :

$ ls -l /data/glusterfs/vol0/brick0/toto -rw-r--r-- 2 root root 10485760 sept.  9 19:58 /data/glusterfs/vol0/brick0/toto

Un point qui a dû vous surprendre est la commande de montage. On a en effet explicitement spécifié l’un des serveurs alors que l’on est censé avoir déployé un stockage hautement disponible. En pratique, le client natif glusterfs ne fait que récupérer lors de la commande de mount les informations de configuration du cluster. Il communiquera directement avec l’ensemble des serveurs définis dans les volfile (dans le répertoire /var/lib/glusterd/vols/repl-vol sur les nœuds de stockage). Un bon moyen de vérifier est d’arrêter  le nœud vers lequel on a réalisé le montage (un halt -p sur stor1 dans ce cas) : le client doit continuer à fonctionner. Côté client, la perte de connexion doit être visible dans le fichier /var/log/glusterfs/data.log

[2017-09-09 18:01:18.933835] W [socket.c:588:__socket_rwv] 0-glusterfs: readv on 192.168.69.61:24007 failed (Aucune donnée disponible) [2017-09-09 18:01:37.954070] W [socket.c:588:__socket_rwv] 0-repl-vol-client-1: readv on 192.168.69.61:49152 failed (Connexion terminée par expiration du délai d'attente)

Un point que vous aurez noté également, c’est que la bascule n’est pas immédiate. En pratique, le délai est de 42 secondes. Pour ramener ce délai à une valeur plus raisonnable de 5 secondes, modifions notre nœud comme suit :

root@stor1:~# gluster volume set repl-vol network.ping-timeout 5 volume set: success

Ce changement est tracé dans le log /var/log/glusterfs/glustershd.log avec une ligne par nœud comme celle-ci :

[2017-09-09 18:33:19.591108] I [rpc-clnt.c:1823:rpc_clnt_reconfig] 0-repl-vol-client-0: changing ping timeout to 5 (from 42) 2.5 Un brin de sécurité

Jusqu’ici, on a pu monter le volume simplement en contactant l’un des serveurs du pool GlusterFS, mais aucune sécurité supplémentaire n’a été imposée. Il est possible de restreindre l’accès à notre volume en définissant une ACL similaire à ce qui existe en NFS via le fichier /etc/exports.

root@stor2:~# gluster volume set repl-vol auth.allow 192.168.69.104 volume set: success

Il est également possible de définir une wildcard, par exemple 192.168.69.* afin d’autoriser tout un réseau. Dans cet exemple, nous avons autorisé explicitement une adresse IP à se connecter au volume.

Nous aurions également pu autoriser un nom d’hôte ou plusieurs adresses IP ou noms séparés par des virgules. Le fait de définir l’attribut auth.allow a comme effet immédiat d’interdire toutes les autres machines qui n’ont pas été explicitement autorisées. Pour revenir au comportement par défaut, il faut autoriser le caractère wildcard (*) tout simplement. A l’inverse, l’attribut auth.reject n’interdit aucune machine par défaut (auth.reject avec comme valeur NONE). Il sert comme vous l’avez deviné à interdire explicitement une machine. Pour résumer, le contrôle d’accès a une logique similaire avec ce qui existe côté TCP Wrappers.

2.6 Une corbeille sur le volume

GlusterFS sait gérer une corbeille au niveau volume pour conserver les fichiers supprimés. Le dossier est créé automatiquement par gluster et ne peut être supprimé. Fait intéressant, gluster sait si on le lui dit, tirer parti de cette corbeille pour ses opérations internes. Activons donc une corbeille pour les fichiers de moins de 10 Mio :

$ gluster volume set repl-vol features.trash on $ gluster volume set repl-vol features.trash-dir "Corbeille" $ gluster volume set repl-vol features.trash-max-filesize 10485760 $ gluster volume set repl-vol features.trash-internal-op on 2.7 Node HS ? Pas de panique !

Un incident majeur sur un équipement sensible d’un système d’information, c’est bien entendu quelque chose auquel on se doit d’être préparé. Dans un système hautement disponible, tout élément qui n’est pas considéré comme un point unique de défaillance (SPOF) doit pouvoir être indisponible sans impacter fortement le bon fonctionnement du système. Nous nous retrouvons dans un état de fonctionnement dégradé. Si le système défaillant ne peut être dépanné, un processus de reconstruction doit être mis en œuvre.

Nous allons considérer que le nœud stor0 est irrémédiablement défaillant, la VM est même supprimée. Cela se vérifie par la commande suivante :

root@stor1:~# gluster volume heal repl-vol info Brick stor0:/data/glusterfs/vol0/brick0 Status: Noeud final de transport n'est pas connecté Brick stor1:/data/glusterfs/vol0/brick0 Number of entries: 0

Voyons étape par étape comment le nouveau serveur nommé stor2 va prendre de relais de celui-ci. Pour cela, la première étape que je ne vais pas détailler consiste à provisionner un nouveau serveur avec le disque de données et les dépendances comme indiqué précédemment.

Premièrement, on ajoute le nouveau nœud et on va confirmer qu’on a bien un nouveau nœud présent, et un ancien toujours connu du cluster mais manquant :

root@stor1:~# gluster peer probe stor2 peer probe: success. root@stor1:~# gluster peer status Number of Peers: 2   Hostname: stor0 Uuid: a920b020-9e5a-46f6-b073-1cc8ec00ba0e State: Peer in Cluster (Disconnected)   Hostname: stor2 Uuid: f2a03465-11bb-4c2a-a882-22933cfa2d08 State: Peer in Cluster (Connected)

Remplaçons maintenant la brick du stor0 par celle de notre nouveau serveur stor2 et vérifions son état de santé :

root@stor1:~# gluster volume replace-brick repl-vol stor0:/data/glusterfs/vol0/brick0 stor2:/data/glusterfs/vol0/brick0 commit force volume replace-brick: success: replace-brick commit force operation successful

On réconcilie le volume :

root@stor1:~# gluster volume heal repl-vol full Launching heal operation to perform full self heal on volume repl-vol has been successful Use heal info commands to check status root@stor1:~# gluster volume heal repl-vol info Brick stor2:/data/glusterfs/vol0/brick0 Number of entries: 0 Brick stor1:/data/glusterfs/vol0/brick0 Number of entries: 0

Et depuis le nouveau node, lançons une synchronisation :

root@stor2:/data/glusterfs/vol0/brick0# gluster volume sync stor1 repl-vol Sync volume may make data inaccessible while the sync is in progress. Do you want to continue? (y/n) y

Il nous reste une dernière étape : répliquer le volume id dans les attributs étendus du système de fichiers et le propager au second serveur. Pour le récupérer, il faut lancer la commande suivante :

root@stor1:~# getfattr  -n trusted.glusterfs.volume-id /data/glusterfs/vol0/brick0/ getfattr: Suppression des « / » en tête des chemins absolus # file: data/glusterfs/vol0/brick0/ trusted.glusterfs.volume-id=0seEhN1zXZTFOXmRGV92ibvw==

Sur le nouveau serveur, on applique l’ID du volume sur la brick :

root@stor2:/data/glusterfs/vol0/brick0# setfattr -n trusted.glusterfs.volume-id -v '0seEhN1zXZTFOXmRGV92ibvw==' /data/glusterfs/vol0/brick0/ service glusterfs-server restart

La configuration de notre volume est bien mise à jour comme on peut le voir ci-dessous. Dans le cadre d’un volume distribué, il faudrait lancer un rééquilibrage (rebalance) du volume :

root@stor1:~# gluster volume info repl-vol Volume Name: repl-vol Type: Replicate Volume ID: 1c493043-9c2d-4be6-afcd-8512577342c9 Status: Started Number of Bricks: 1 x 2 = 2 Transport-type: tcp Bricks: Brick1: stor2:/data/glusterfs/vol0/brick0 Brick2: stor1:/data/glusterfs/vol0/brick0 Options Reconfigured: performance.readdir-ahead: on cluster.self-heal-daemon: enable network.ping-timeout: 5

Enfin, il ne reste plus qu’à retirer l’ancien nœud des peers autorisés dans le trusted pool :

root@stor1:~# gluster peer detach stor0 peer detach: success root@stor1:~# gluster peer status Number of Peers: 1 Hostname: stor2 Uuid: f2a03465-11bb-4c2a-a882-22933cfa2d08 State: Peer in Cluster (Connected)

Il ne doit plus apparaître dans la liste des nœuds :

root@stor1:~# gluster pool list UUID                                    Hostname        State 0cb0f3b6-10e5-41c4-ad7e-cb9ca794db9e    stor2           Connected d5ff9617-6989-48ae-be3a-3e1286060ea1    localhost       Connected

Vous savez désormais comment remplacer un nœud défaillant, sachant que ce processus s’applique également en cas de migration de la brick de stor0 vers un nouveau serveur.

2.8 Étendre le volume

Quand l’espace disque commence à manquer, une première solution peut être d’étendre l’espace libre sur les bricks, d’où l’intérêt d’être partis au départ sur du LVM. Une autre solution est d’étendre le cluster avec de nouveaux nœuds afin d’améliorer la disponibilité du système dans son ensemble. Cette extension du cluster se fait en outre sans interruption de service.

Pour étendre un cluster répliqué, il faut ajouter un nombre de bricks avec un nombre multiple du nombre de réplicas. Nous avons monté un volume à deux réplicas, il nous faut donc ajouter deux bricks supplémentaires. La commande gluster volume info repl-vol nous permet de le confirmer (1×2). Nous allons ajouter donc deux serveurs stor3 et stor4, avec le volume disque préparé et le package glusterfs-server installé.

La première étape consiste à autoriser les deux nœuds avec la commande gluster peer probe vue précédemment. On peut donc ensuite ajouter des bricks au volume en spécifiant les bricks de nos deux nouveaux serveurs :

root@stor2:~# gluster volume add-brick repl-vol stor3:/data/glusterfs/vol0/brick0 stor4:/data/glusterfs/vol0/brick0 volume add-brick: success

Vérifions notre volume, nous devons retrouver nos deux bricks supplémentaires.

root@stor2:~# gluster volume info repl-vol Volume Name: repl-vol Type: Distributed-Replicate Volume ID: 78484dd7-35d9-4c53-9799-1195f7689bbf Status: Started Number of Bricks: 2 x 2 = 4 Transport-type: tcp Bricks: Brick1: stor2:/data/glusterfs/vol0/brick0 Brick2: stor1:/data/glusterfs/vol0/brick0 Brick3: stor3:/data/glusterfs/vol0/brick0 Brick4: stor4:/data/glusterfs/vol0/brick0 Options Reconfigured: performance.readdir-ahead: on

Notre volume à deux réplicas comportant quatre nœuds se comporte donc désormais comme un volume distribué répliqué par la magie de l’extension du volume. Seul problème, il n’y a aucune donnée sur les serveurs stor3 et stor4, ce qui n’a pas eu pour effet de libérer de l’espace disque sur les deux premiers serveurs. Il est donc nécessaire de répartir la volumétrie sur l’ensemble des bricks qui composent le volume :

root@stor2:~# gluster volume rebalance repl-vol start< volume rebalance: repl-vol: success: Rebalance on repl-vol has been started successfully. Use rebalance status command to check status of the rebalance process. ID: dffbed2e-3a0c-4d7d-9f43-9d978a546b04

Pour vérifier il suffit de lancer la même commande avec le paramètre status :

root@stor2:~# gluster volume rebalance repl-vol status                                     Node Rebalanced-files          size       scanned      failures       skipped               status   run time in secs                                ---------      -----------   -----------   -----------   -----------   -----------         ------------     --------------                                localhost                5        0Bytes            10             0             0            completed               2.00                                    stor1                0        0Bytes             0             0             0            completed               1.00                                    stor3                0        0Bytes             2             0             0            completed               1.00                                    stor4                0        0Bytes             0             0             0            completed               1.00 volume rebalance: repl-vol: success 2.9 Les quotas

GlusterFS dispose d’un mécanisme permettant de définir des quotas au niveau dossier. Ils ne sont pas activés par défaut. Pour changer ce comportement :

root@stor2:~# gluster volume quota repl-vol enable volume quota : success

Nous allons appliquer une limite à 1Gio sur le sous-dossier subdir de notre volume. Ce dossier devra avoir été impérativement créé depuis le client glusterfs ajouté précédemment. Pour créer ce quota :

root@stor2:~# gluster volume quota repl-vol limit-usage /subdir 1GB volume quota : success

Si nous avions souhaité créer un quota au niveau du volume, il suffit d’indiquer / dans le chemin. Créons un fichier approchant le quota depuis notre client GlusterFS :

root@desktop:/data/subdir# dd if=/dev/zero of=/data/subdir/toto bs=1024 count=1024000 1024000+0 enregistrements lus 1024000+0 enregistrements écrits 1048576000 bytes (1,0 GB, 1000 MiB) copied, 223,044 s, 4,7 MB/s

Et voyons l’état du quota :

root@stor1:~# gluster volume quota repl-vol list                   Path                   Hard-limit  Soft-limit      Used  Available  Soft-limit exceeded? Hard-limit exceeded? ------------------------------------------------------------------------------------------------------------------------------- /subdir                                    1.0GB     80%(819.2MB) 1000.0MB  24.0MB             Yes                   No

Reprenons notre commande précédente, en créant un fichier au nom différent, la création est bien interrompue sur le dépassement de quota hard :

root@desktop:/data# dd if=/dev/zero of=/data/subdir/tata bs=1024 count=1024000 dd: erreur d'écriture de '/data/subdir/tata': Débordement du quota d'espace disque dd: fermeture du fichier de sortie '/data/subdir/tata': Débordement du quota d'espace disque Conclusion

Il est difficile d’être exhaustif sur un sujet aussi vaste. J’espère toutefois avoir aiguisé votre appétit sur GlusterFS et vous avoir donné l’envie de tester ce qui n’a pas été détaillé ici.

 

Gravatar de Morot
Original post of Morot.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : Meet-Up Yunohost - Présentation du projet et comment contribuer

Meetup le mercredi 17 janvier 2018

Suite à mon appel pour un lieu pour un Meet-up Yunohost, Un Meetup Yunohost ? Appel pour aider ce projet, nous avons un local et une date ! L'entreprise Nbs-system nous accueillera donc le mercredi 17 janvier à 19h00 pour un meet-up de présentation de Yunohost et de comment on peut contribuer au projet.

Je remercie Emmanuel Seyman (Fedora-fr, Parinux...) Au programme : un "meet-up" (pour le buzz word) de présentation de Yunohost et de comment on peut contribuer au projet et l'occasion de se rencontrer autour de ce projet :).

Le lieu : Nbs-system, au 8 Rue Bernard Buffet, Paris 17 ème, Métro Brochant (ligne 13)

Pour s'inscrire, merci de saisir un pseudo sur le Framadate suivant : https://framadate.org/meetupyunohost

Présentation du Meetup

YunoHost est une distribution basée sur Debian GNU/Linux composée, essentiellement, de logiciels libres, ayant pour objectif de faciliter l'auto-hébergement. YunoHost facilite l'installation et l'utilisation d'un serveur personnel. Autrement dit, YunoHost permet d'héberger sur sa machine et chez soi son courrier électronique, son site web, sa messagerie instantanée, son agrégateur de nouvelles (flux RSS), son partage de fichiers, sa seedbox et bien d'autres… Le nom YunoHost vient de l'anglais Y-U-No-Host ("Why you no host ?"), signifiant « Pourquoi ne pas t'héberger ? ». Il s'agit d'un jeu de mot issu du mème internet "Y U NO".

Yunohost c'est le système qui fait tourner la Brique Internet, mais pas que... Framasoft dédie une journée de temps de l'un de ses salariés durant laquelle, chaque semaine, du travail est fait pour packager les applications des différentes applications Degooglisons Internet pour les rendre disponibles au sein de YunoHost.

L'objectif de cette soirée est de faire une présentation du projet Yunohost, de ses objectifs et de pourquoi et comment contribuer au projet.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Thuban : Quelques idées pour blogotext

Pour ceux qui ne savent pas, blogotext est un outil développé en PHP offrant un espace personnel complet, cohérent et léger. Il me permet d'écrire ce blog, mais pas seulement :

  • Hébergement et partage de fichiers
  • Marque-page de liens, renvoyés automatiquement sur mon compte mastodon
  • Prise de notes
  • Lecteur de flux RSS.

Ces quelques fonctionnalités sont reliées entre-elles, ce qui en fait un outil indispensable et très pratique. Il reste très léger et rapide.

Vous l'aurez compris, j'aime beaucoup cet outil. C'est pourquoi je souhaite aider à son développement.

Pourtant, je n'ai jamais appris le PHP à l'école, le javascript non plus. Mes contributions sont donc à prendre avec des pincettes, et sans doute parfois maladroites, mais les autres développeurs sont très sympas et patients. Au final, j'apprends énormément et m'amuse bien. Dernièrement, j'y ai consacré un peu de temps. Certaines des contributions listées ci-dessous seront peut-être intégrées prochainement, ou en inspireront d'autres :

  • Proposition d'un bout de code pour optimiser les images uploadées sur le blog, afin d'accélérer leur chargement : #350 ;
  • Petites retouches au CSS pour utiliser le lecteur de flux sur petits écrans : #351 ;
  • Dans le lecteur de flux, je préfère cacher les abonnements sans nouveaux éléments. À voir si ça plaît : #353 ;
  • Addon pour installer des addons. Il y a des chances que ça soit intégré au cœur de blogotext plutôt qu'en module : #31 ;
  • Addon pour éditer plus facilement la liste des liens dans la barre latérale #38 ;
  • Addon pour proposer une page "à propos" : #40 ;
  • Mise à jour de deux addons pour proposer d'autres articles à lire, soit sous forme de liste en texte soit sous forme d'images : #41 ;
  • Addon pour avoir des résumés des articles avec un "lire plus" : #42 ;
  • Addon pour ajouter au blog un formulaire de contact : #43 ;
  • Addoon pour modifier l'image d'en-tête dans le thème par défaut plus facilement. C'est un élément de personnalisation simple et important pour donner une identité à un blog. Ce n'est pas dût d'éditer les fichiers d'un thème, mais une personne peu à l'aise avec ces notions pourra désormais le faire en quelques clics : #44 ;
  • J'ai envie de faire un script avec curl pour envoyer de nouveaux articles ou des fichiers. Pour l'instant, je ne passe pas l'étape d'identification, mais je n'ai pas tellement creusé.

je vous invite à participer au développement de blogotext. Une liste des "issue" est disponible sur github si vous cherchez par où commencer. Vous pouvez aussi regarder les addons, le système de hooks permet de faire des choses vraiment chouettes.

À vous de jouer ;)

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

OLPC France : Scratch désormais intégré à Sugarizer

OLPC France était présent à Bordeaux cette année pour participer à la 10ème conférence mondiale sur Scratch. Ce fut l’opportunité d’échanger avec les équipes et d’accéder à la preview de Scratch v3, la prochaine version de Scratch, qui est en train d’être complètement réécrit en HTML/JavaScript.

Grâce au travail d’Emily, une jeune participante du Google Code In, cette version a été intégrée à Sugarizer.

Cette intégration est déjà testable dans la version de développement de Sugarizer v1 à l’adresse https://dev.sugarizer.org.

Scratch rejoint ainsi TurtleArt (Logo), EToys (Squeak) et Pippy (Python) les autres activités d’apprentissage de la programmation intégrée dans Sugarizer et qui ont fait le bonheur des utilisateurs de l’ordinateur XO.

Gravatar de OLPC France
Original post of OLPC France.Votez pour ce billet sur Planet Libre.

Articles similaires

System Linux : Historique des commandes MariaDB

mariadb.png

Petite astuce simple.

Si la commande a été entré ressèment on peut naviguer dans l'historique avec les flèches haut et bas classiquement nous dirions.

Mais si la commande est plus ancienne par contre on peut gagner du temps en effectuant une recherche précise en tapant :

CTRL+R puis en entrant les caractères que vous recherchez.

Comme dans un terminal Gnu/Linux.

Il faut savoir aussi que MariaDB maintient un fichier .mysql_history dans le home de l'utilisateur avec la liste de toutes les commandes effectuées par l'utilisateur en question, et il est possible de modifier le fichier utilisé en modifiant la variable MYSQL_HISTFILE dans le fichier de conf.

Gravatar de System Linux
Original post of System Linux.Votez pour ce billet sur Planet Libre.

Articles similaires

System Linux : Bonnie++ tuning ext4 noatime & nodiratime

bonnie__.jpg

C'est pas révolutionnaire comme résultat mais bon...

Test de performance disque :

# apt install bonnie++

Visiblement pour faire un test valide il faut le double de votre ram :

# bonnie++ -d /tmp -s 8G -n 0 -m rapport -f -b -u root

Copier le résultat entre les guillemets pour avoir un rapport html un peu plus lisible :

# echo "1.97,1.97,rapport,1,1509737934,8G,,,,53797,8,20116,3,,,43059,4,74.9,2,,,,,,,,,,,,,,,,,,,926ms,5059ms,,896ms,1009ms,,,,,," | bon_csv2html > /var/www/html/rapport.html

Modification du /etc/fstab :

Rajouter noatime dans les options de montage ça activera aussi nodiratime.

Pour un peu plus d'explication sur /etc/fstab : https://wiki.archlinux.fr/Fstab

Puis refaite le test avec bonnie++ pour voir la ou les différences.

Gravatar de System Linux
Original post of System Linux.Votez pour ce billet sur Planet Libre.

Morot : SSLH : Faire cohabiter un serveur Web et SSH sur le même port

SSLH est un outil qui permet de multiplexer le port 443 afin notamment de contourner certains firewalls qui bloquent le port SSH. Typiquement, en HTTP c’est le client qui communique en premier quand pour le protocole SSH c’est le serveur qui envoie le premier message. SSLH utilise ces différences de fonctionnement via des sondes (pour XMPP, OpenVPN…) afin de fournir cette fonctionnalité de multiplexage. Dans mon cas, je veux partager le port 443 avec un serveur Apache.

Dans un premier temps, il faut indiquer à Apache de ne plus écouter sur le port 443 mais le 1443. Il faut changer tous les VirtualHost dans les fichiers /etc/apache2/sites-enabled en remplaçant :

en

Et adapter de la même façon le fichiers /etc/apache2/ports.conf :

Listen 80 Listen 1443 Listen 1443

Voici pour la configuration d’Apache, pour un autre service, le principe est identique. Il faut bien entendu penser à redémarrer le service pour que le changement soit pris en compte.

Pour l’installation d’SSLH, un simple apt-get suffit vu que le package se trouve dans les repos officiels. Il reste à adapter la configuration du fichier /etc/default/sslh afin de passer le démarrage à yes, indiquer les ports et surtout l’adresse IP locale des ports SSH/Apache :

RUN=yes # binary to use: forked (sslh) or single-thread (sslh-select) version # systemd users: don't forget to modify /lib/systemd/system/sslh.service DAEMON=/usr/sbin/sslh DAEMON_OPTS="--user sslh --listen MON_IP_PUBLIQUE:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:1443 --pidfile /var/run/sslh/sslh.pid"

Un redémarrage du service sslh pour prise en compte, il est possible de tester pour vérifier. Dans les logs, vous devriez obtenir quelque chose du genre :

Jan 1 19:44:32 private systemd[1]: Stopped SSL/SSH multiplexer. Jan 1 19:44:32 private systemd[1]: Started SSL/SSH multiplexer. Jan 1 19:44:32 private sslh[19856]: sslh-fork 1.17-2 started Jan 1 19:44:34 private sslh[19856]: connection from gnagnagna.abo.wanadoo.fr:52342 to website.domain.tld:https forwarded from localhost:50964 to localhost:1443

Gravatar de Morot
Original post of Morot.Votez pour ce billet sur Planet Libre.

Articles similaires

Carl Chenet : Édito de janvier 2018

En quelques lignes un petit récapitulatif de 2017 (très court) et l’actualité à venir de mon blog pour ce mois de janvier 2018.

Récapitulatif de 2017

Très rapidement, les points de mon activité que je retiens de 2017 :

J’aurais souhaité investir davantage de temps dans les événements du Libre, mais pour l’instant mon agenda ne me le permet pas autant que je l’aimerais.

E-mail S'abonner

Apporter davantage de valeur aux lecteurs

J’ai réalisé en 2017 que certains billets étaient trop personnels et n’apportaient pas suffisamment de valeur aux lecteurs, même si j’avais beaucoup de plaisir à les écrire, la plupart  de ceux que j’ai écrits en 2017 de ce type resteront d’ailleurs non-publiés.

En 2018 je vais davantage me questionner sur la valeur apportée aux lecteurs par mes billets, mais aussi mes interventions un peu partout et particulièrement sur les réseaux sociaux.

Je ne vais pas cacher ici que cette nouvelle idée vient aussi d’une constatation que j’ai faite en lisant des billets d’autres blogueurs francophones du Logiciel Libre, articles que je lis dans le cadre de mon activité pour le Journal du hacker et le Courrier du hacker. Il me paraît un peu dommage de produire pour produire et faire vivre le flux RSS du blog.

Si mon billet de blog n’apporte pas davantage de valeur que la première réponse d’une recherche dans Google, on peut légitimement se poser la question de ce qu’on apporte à son public. Il serait bon d’ailleurs d’avoir fait une recherche au préalable pour savoir si le billet que l’ont est en train d’écrire apporte quelque chose de nouveau, soit des informations supplémentaires, soit une meilleure présentation ou une façon différente de communiquer les informations.

Sinon c’est un peu le principe en informatique de ré-écrire sans cesse des bibliothèques ou des utilitaires existants : ça fait plaisir, c’est de la bonne pédagogie pour soi, mais ça n’apporte rien aux personnes extérieures, Frédéric Bezies est un spécialiste du sujet dans le monde des distributions GNU/Linux, haha. Je pense qu’on peut avoir une approche similaire dans le monde des blogueurs.

Ce sera vis-à-vis de ce blog mon principal objectif que j’essaierai de tenir en 2018.

Me suivre sur les réseaux sociaux

N’hésitez pas à me suivre directement sur les différents sociaux pour suivre au jour le jour mes différentes projets dans le Logiciel Libre :

Gravatar de Carl Chenet
Original post of Carl Chenet.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #52

Pour cette dernière semaine de l'année 2017, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Miamondo : Plank, un dock très léger et aisément configurable

Bonjour à toutes et à tous,

En ce dernier jour de l’an 2017, alors que le réveillon de la Saint-Sylvestre va bientôt croiser notre chemin spatio-temporel et que la perspective d’engloutir une douzaine d’huitres me réjouit, je me suis dit que je pourrais occuper ces dernières heures à rédiger un ultime article.

Je suis en vacances et j’ai apporté dans mon sac à dos, mon fidèle netbook que j’ai baptisé Hashbang. Il tourne sous Archlinux. Il n’a pas d’environnement de bureau mais un simple gestionnaire de fenêtres Openbox et jusqu’à hier soir, le fond d’écran nitrogen était embelli d’une barre de tâches tint2 que vous avez apercevez en bas de cette image.

fond_ecran_hashbang.jpg

Mais j’avais envie d’un gadget un peu moins statique. J’avais envie d’un dock très léger dont les icônes s’agrandissent au survol de la souris parce que je trouve que ça met un petit peu d’animation. J’ai donc jeté mon dévolu sur plank dont la simplissime configurabilité me comble de joie. Voici donc à quoi ressemble désormais le bureau de mon ami Hashbang.

Desktop 1_003

Pour l’installer sur une distribution Archlinux, rien de plus simple, il suffit d’entrer cette commande en root :

pacman -S plank

Pour accéder aux préférences du dock, il suffit de presser la touche ctrl et d’effectuer un clic droit sur le dock. Une fenêtre s’ouvre et vous donne la possibilité de modifier le positionnement du dock, de changer de thème, de modifier la taille des icônes et le zoom au survol de la souris. Bon… Là, c’est la version allemande mais elle existe aussi en français! Keine Panik!

plank_005

L’adjonction d’une nouvelle icône au dock se fait par un simple glisser-déposer (drag and drop) en provenance du répertoire /usr/share/applications. Pour supprimer une icône, il suffit de tirer cette dernière vers l’extérieur. Le relâchement du bouton de la souris déclenche la décomposition de l’icône dans une petite explosion ridicule.

Achtung! Openbox ne gère pas la transparence ce qui veut dire que votre dock sera d’un gris opaque… sauf si vous installez compton, un « compositeur » qui s’occupe de combler cette lacune.

Vous pouvez installer plusieurs docks. C’est ce que j’ai fait. J’en ai installé un en bas et un autre à gauche. Prenez garde cependant à ne pas surcharger votre bureau au risque de sombrer dans la kitschitude.

Pensez également à modifier le fichier ~/.config/openbox/autostart pour que le ou les dock(s) se lancent automatiquement au démarrage :

Auswahl_006

J’ai tout de même conservé tint2 mais je l’ai considérablement réduit et je l’ai positionné en haut à droite. Il me renseigne sur la date, l’heure, la qualité de la connexion et la charge de la batterie.

Auswahl_007

Voilà… Cet article un peu paresseux clôt l’année 2017 de Miamondo. Bon réveillon. Tous mes voeux de bonheur pour 2018! Moi, je vais ouvrir mes huitres. À l’année prochaine!


Gravatar de Miamondo
Original post of Miamondo.Votez pour ce billet sur Planet Libre.

Articles similaires

Thuban : Voir tout pinterest avec ublock

Il y a des trucs chouettes sur pinterest.
Sauf que, malheureusment, si vous "scollez" un peu, on vous demande de vous inscrire.

que dalle! 😙

Avec la pipette d'μblock, on peut virer l'encadré qui est par dessus.

La démonstration en images :




Merci μblock et Firefox :)

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

dada : J'ai fait une semaine d'astreinte


Je ne me souviens pas avoir déjà lu des billets de retours d'expérience autour de ce qu'on appelle l'astreinte en informatique, alors voici ce que je peux raconter après avoir passé ma toute première semaine à rester pendu à un téléphone en attendant un éventuel incident.
L'astreinte dans l'IT
Il n'y a rien d'étonnant quand on nous parle de garde. Le fait que le personnel médical, pour ne parler que de lui, soit régulièrement appelé à bosser de nuit ou les week-ends n'étonne personne. Par contre, nous autres, les geeks de l'ombre, les administrateurs système, c'est moins évident. Pourtant, les sites web, sur lesquels vous traînez à longueur de journée, doivent bien fonctionner jours et nuits, week-ends et jours fériés.
C'était mon travail de la semaine, pendant que vous profitiez certainement de Noël et d'une semaine de vacances bien méritée. J'avais un œil sur l'applicatif et le matériel des centaines de clients de mon entreprise.
La nuit
Animal de nuit au visage pâle, c'est une définition populaire du bon gros geek. Il se couche tard, vit bien mieux dans le noir et évite les rayons du soleil tout juste bons à faire des reflets sur les écrans. Loin d'être totalement fausse, c'est une définition du geek détendu, qui fait sa tambouille dans son coin et qui s'organise pour que personne ne le dérange. En astreinte, on est loin du compte. L'admin que je suis était tout sauf détendu. Heureux de vivre de nuit, je l'étais certainement : pas de bruit, un vrai calme olympien dehors, pas de reflet sur l'écran, soit. Mais pas détendu pour un euro. À partir de 20h, on regarde ce téléphone qui va s'allumer et sonner toutes les 45min, ou presque.
La gestion du temps
Comme je n'aime pas vraiment faire les choses à moitié, j'ai commencé cette période d'astreinte par un jour férié : le jour de Noël, ce lundi 25 décembre 2017. Vous savez, ce jour où toute la famille est là, heureuse (ou presque) de se rassembler dans un déballage de bouffe, de bon vin et de cadeaux. J'ai commencé ma journée à 8h, pour la finir à 8h le lendemain. Oui, les jours fériés, c'est cadeau : 24h. Le rythme classique de mon type d'astreinte m'oblige à être disponible de 20h à 8h. Sauf les jours fériés. Et ma première fois fut un jour férié. Joie.
Qu'est-ce que je foutais dans la maison familiale alors que j'étais d'astreinte et que rien ne vaut le calme de mon appartement ? Les fêtes de famille, tout simplement.
Ça m'a sauté à la gueule, d'ailleurs. Sans que personne n'ait pu me l'expliquer, la fréquentation du site d'un client a EX-PLO-SÉE. Un jour de Noël. Et je parle de gens qui vendent du matériel de sport, pas des cochonneries qu'on pourrait s'offrir après avoir reçu le chèque des Grand-Parents. Enfin bref. Là, j'ai été victime de mon inexpérience : j'aurais dû tout de suite contacter le responsable de ce client pour lui dire de gonfler les machines plutôt que d'essayer de les faire tenir en, par exemple, bloquant le crawling des bots. Ça m'aurait épargné des heures de prise de tête et une fatigue qui m'a empêché de tenir toute la nuit. Grosse inexpérience.
L'appel en cas d'incident ou d'impossibilité d'agir
Des centaines de clients au bout de mon clavier, disais-je plus haut, c'est tout autant de cas particuliers que je ne peux pas maîtriser. L'entreprise pour laquelle je travaille n'étant pas un repère d'enfoirés, en cas de souci, j'ai la possibilité, voire l'obligation d'appeler la personne la plus à même de réagir pour rétablir un service qui me laisse sans voix.
Appeler quelqu'un entre 20h et 23h, ça me va. Appeler quelqu'un entre minuit et 6h du matin, c'est au delà de ce que mon éducation considère comme respectable. C'est non, niet, nada, on ne fait pas ça ! Pourtant, ce lundi, j'ai du le faire, à 4h du matin, pour être précis. L'horreur. Et ça ne s'est pas passé qu'une fois cette nuit là.
Heureusement, j'ai réussi à réveiller un bon gars qui m'a tout de suite pris sous son aile pour m'accompagner et me rassurer. Dans les détails, je n'en pouvais plus de tenir à bout de bras un groupe de 6 machines et j'ai décidé d'appeler pour valider une augmentation des ressources. Chose qu'on est censé faire après validation avec le client. Sauf qu'à 4h du matin, c'est délicat. L'histoire révéla qu'une fois mon collègue réveillé, les soucis ont disparu. #Tristitude.
Alors qu'il était encore avec moi, un autre client a vu son infrastructure se casser la figure. Un bordel sans nom, cette infra. À deux, nous n'avons rien pu faire. On a fini par réveiller un troisième larron vers 5h. Il était loin de chez lui, sans ordinateur. Il nous a dépanné pour comprendre le souci : c'était pas nous, l'hébergeur, mais une erreur dans le code du client. La solution ? Devinez ! Nous avons réveillé le CTO d'un grand groupe de mode français, à 5h30 du matin. La situation que je voulais absolument éviter et survenue. J'étais mal.
Vers 6h, après 22h de lutte, mon corps m'a lâché. Je devais tenir jusqu'à 8h, mais pas ce jour là. Le stress m'a tué.

J'ai tenu 22h d'astreinte sur les 24 demandées, mon premier jour, ma première nuit. Mardi, le réveil m'a malheureusement sorti de mon sommeil vers 13h. J'étais HS, à bout, mais les soucis de la nuit étaient résolus. Mes collègues du jour m'avaient sorti du pétrin et je n'avais rien raté entre 6h et 8h. Merci les copains. J'ajoute que le CTO a bougé le cul d'un de ses développeurs pour corriger la situation. Astreinte, responsable du client, responsable du projet côté hébergeur, CTO du client, développeur du client, retour à la normale. Et ben.
La gestion du sommeil
On ne sait jamais ce qui peut arriver. Jamais. Les histoires que je relate dans le paragraphe précédent, jamais je n'aurais imaginé ça possible. On m'avait dit que le jour de Noël, on s’ennuyait. La belle affaire.

12h, c'est long, très long et l'astreinte a deux possibilités :
  • Vivre sa vie normale en journée et se laisser réveiller par les alertes/incidents.
  • Se décaler complètement en dormant toute la journée et vivant la nuit.
Vous l'avez lu un peu plus haut : pour les fêtes de fin d'année et la famille, il était hors de question que je me décale complètement. J'ai donc choisi de tenter l'expérience skipper : essayer de dormir au maximum entre chaque forte vague.
Confiant, j'étais, comme dirait le petit gars vert de chez Disney. Sauf que mon cerveau m'a empêché de faire ce que je voulais. Allongé dans mon lit, il m'était impossible de dormir. La peur d'être dérangé par un incident qui me forcerait à dégainer le téléphone m'a complètement bloqué. On ne grappille pas quelques heures de sommeil comme ça, sur un claquement de doigts et sous une couverture chaude. Non. Il faut avoir confiance en soi pour se laisser emporter par le sommeil alors que tout est organisé pour l'empêcher.

Bref, la première période d'astreinte fut un cauchemar. J'ai mieux supporté la suite, mais quand même. Vendredi, 8h, je terminais ma dernière nuit : j'étais sauvé, enfin sorti de ce jeu infernal qui te réveille quand tu veux dormir.
Je n'ai pas envie de faire la liste des choses qui me sont arrivées au cours de cette semaine. La grande majorité de mes interventions se sont révélées sans grand intérêt mais bien assez régulières pour empêcher plus de 60min de sommeil d'affilé.

Il ne me reste plus qu'à attendre mon week-end d'astreinte. Une terreur reconnue de tous. Courage, moi.


Gravatar de dada
Original post of dada.Votez pour ce billet sur Planet Libre.

Pages