Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Mozilla encore sous le feu des critiques

Rédigé par dada / 02 janvier 2019 / 4 commentaires


On prend les mêmes et on recommence. Ça devient lassant de lire toutes ces critiques envers la maison mère de Firefox. Vraiment. Les dernières nouvelles ont permis aux trolls de service de se lâcher :

Un autre thème que je voulais aborder : les contenus. Le Web en regorge, mais de nos jours, il est difficile de distinguer le vrai du faux. Nous avons au sein de Mozilla des experts qui doivent prendre part aux discussions sur le sujet et peuvent travailler sur des solutions expérimentales pour résoudre ce problème.

Ce paragraphe est extrait des derniers mots de Mitchell Baker, la cofondatrice de Mozilla. Qu'est-ce qu'on y lit ? Les plus tordus s'amuseront à le traduire en : "Nous allons configurer Firefox pour que les actualités qui ne nous plaisent pas mais qui pourraient vous intéresser n'apparaissent plus dans Firefox".

Dingue.

Ça me fait penser à l'intégration de Safe Browsing, l'outil de Google qui permet de recenser les sites crapuleux et de les bloquer. Qui continue à en parler ? Qui s'amuse à le désactiver lorsqu'il installe Firefox ? Sans doute personne, ou si peu. On se souvient pourtant du scandale : Google s'arrogeait le droit de couper l'accès à des sites dont le but était visiblement la malveillance. Mais de quel droit osent-ils ? Comment peut-on ?

Depuis, plus rien.

L'année 2018 a fait sortir l'influence des trolls, des crapuleux, des malhonnêtes, etc, du bois. Internet, le web, est partout et tout le monde ou presque y traîne ses gros doigts. Et les gens vont se battre pour l'orienter dans leurs intérêts.

On pourrait reprendre les mots de Baker sous cet éclairage : Mozilla va mettre sa charte et ses moyens aux services des internautes en plaçant des gens compétents au cœur des réunions qui vont certainement avoir lieu autour des notions de fakenews/désinformations/manipulations. Pour quoi faire ? Pour taper autant que possible du poing sur la table quand des mesures farfelues seront proposées.

Personnellement, quand je vois passer des liens qui redirigent les gens vers des blogs ou des torchons qui débitent des conneries dingues sur des décisions politiques entre deux billets traitant de l'existence, la vraie, d'agroglyphes : je veux bien que Firefox ouvre une popup pour m'avertir de la folie des rédacteurs.
Et moi, je m'en rends compte. Les Michus n'auront pas toujours le reflexe de s'intéresser aux contextes.

Mozilla peut se servir de ce qui lui reste de ses compétences et de sa notoriété pour nous aider. S'ils ne le font pas, nous quitterons tous le navire Firefox pour aller voir ailleurs. Pas chez Vivaldi, pas chez Brave, encore moins chez Chrome, mais pourquoi pas chez Librefox.

C'est facile de s'énerver quand la neutralité d'un navigateur ne semble plus garantie. Il ne faut cependant jamais oublier que 99% des gens ne comprennent pas ce qu'est un navigateur. Le laisser neutre serait l'idéal, c'est certain, mais peut-on vraiment se le permettre alors que les sociétés se transforment en somme d'individualisme et plus en multitude réunie par les mêmes envies, règles, droits et devoirs ?

Pour finir : les choix techniques qui seront peut-être pris par les grands navigateurs ne seront que des rustines posées sur une jambe de bois. L'éducation devrait faire son travail mais dans un monde bouffé par l'optimisation et la rentabilité de l'humain, on fait avec ce qu'on a.

Classé dans : Édito / Mots clés : aucun

Récupérer ses flux RSS dans Firefox

Rédigé par dada / 02 janvier 2019 / 14 commentaires


Avec les dernières versions de Firefox, Mozilla a supprimé le support des flux RSS dans son navigateur. C'est un choix qu'on apprécie, ou pas, avec lequel il faut faire. J'ai décidé de configurer mon navigateur pour lui redonner la possibilité de jouer avec les flux RSS à travers l’application Want My RSS.

Installation

Pour l'installation, passez par ce lien pour télécharger et installer l'extension.

Utilisation

L'outil est assez simple. En naviguant dans le Web, vous verrez apparaître l’icône des flux RSS dans la barre d'adresse. Cliquez dessus et admirez la liste des flux disponibles.


Chez moi, après avoir cliqué sur le flux des articles, ça donne :


Configuration

Want My RSS permet d'afficher les flux RSS mais aussi de les ajouter à son lecteur préféré. Chez moi, c'est FreshRSS qui tient le haut du pavé. Pour vous permettre d'ajouter un flux, configurez l'extension pour aller directement taper dans votre lecteur :


Si vous cherchez le lien qui va bien de votre FreshRSS, retrouvez-le dans Gestion des abonnements -> Outils d'abonnement.

Et voilà, les RSS sont de retour dans Firefox !

Le Blog de dada en 2018

Rédigé par dada / 29 décembre 2018 / 5 commentaires


L'année se termine et je me plonge dans Matomo (anciennement Piwik) pour regarder dans le rétro. Je vous propose un rapide tour d'horizon de ce qu'a brassé mon modeste blog ces 12 derniers mois.
Mon Matomo est configuré pour ne pas tracker celles et ceux qui ne le souhaitent pas, d'où l'importance des Inconnus dans les graphiques qui vont suivre.

Les navigateurs


Chrome : 31%
Firefox : 7%

Comme la totalité du Web, je n'échappe pas à l'invasion de Chrome. L'encart publicitaire en haut à droite de la page d'accueil ne fait pas assez effet.

Systèmes d'exploitation



GNU/Linux : 66%
Windows : 16 %

Là, c'est la fête ! Les thèmes abordés dans mes colonnes attirent une population spécifique : l'adepte du logiciel libre ou open source. Ce n'est pas surprenant de voir GNU/Linux en tête des OS chez mes visiteurs. Je me demande quand même où sont passés les utilisateurs de MacOS ?

Périphériques


Bon, là, on se sert des PC pour venir me lire. Les autres machins sont quantité négligeable alors même que PluXml est parfaitement adaptatif et s'affiche très bien sur des petits écrans.
J'ai des infos sur les marques des smartphones : Apple caracole largement en tête, suivi de loin par Samsung.

Les moteurs de recherche



Celui-là, je le mets pour le lol, comme on dit. Google domine.

Les réseaux sociaux


Twitter : 65%
Mastodon : 17%
Facebook : 12%

Je ne sais pas quand Matomo a intégré Mastodon dans sa liste des réseaux sociaux mais c'est une excellente idée ! Twitter domine, c'est clair, mais j'ai maintenant de quoi suivre l'évolution de Mastodon comme vecteur d'information.

Les visites




Classique, tout ça.

Plus de chiffres

Si vous voulez plus de chiffres :
- 1 900 000 visites
- 245 784 000 pages vues
- 34 articles
- 198 commentaires

C'est beau, mais assez faussé. J'ai une armée de lecteurs de flux RSS qui s'amuse à vérifier toutes les 30min si j'ai publié un nouvel article. Je ne sais pas ce que les gens balancent dans leurs lecteurs de flux, mais tout rafraîchir aussi souvent, ça me parait un peu beaucoup.

Enfin voilà. 2018 se termine doucement. Les statistiques m'encouragent encore et toujours à écrire des choses sérieusement. Ne croyez pas que j'écris pour la gloire des chiffres : ils m'intéressent sans plus. J'écris pour partager mes aventures et parfaire mes connaissances. Plus de visiteurs ne me pousse qu'à faire plus attention.

Merci pour cette année 2018 et à 2019 !

Classé dans : Édito / Mots clés : aucun

Kubernetes en multi-master sur du baremetal avec HAProxy

Rédigé par dada / 20 décembre 2018 / 12 commentaires



Quand on joue avec Kubernetes, on se rend compte que c'est aussi puissant que fragile. L'orchestration, ça ne s'improvise pas. Il faut vraiment passer des heures à se casser les dents sur des clusters de tests qui finiront toujours par s'écrouler. Que ce soit à cause d'un souci côté hébergeur, entraînant une indisponibilité de votre master ou une configuration laxiste permettant à des pods de consommer plus de ressources que ce qu'il y a de disponible, en massacrant chaque node disponible, méticuleusement, les uns après les autres, jusqu'à vous laisser sans rien.
Je ne parlerai pas ici du meilleur moyen pour contrôler la consommation des pods. On va s'attaquer au premier souci : votre unique master configuré en SPoF.

Le multi-master, ton ami

Pour éviter de voir un cluster HS à cause de l'absence de son maître, on va le configurer avec un quorum de... 3 masters. Tout simplement.

Pourquoi HAProxy ?

Mon environnement de test est basé sur des serveurs dans le cloud de Hetzner. J'ai essayé d'attendre aussi longtemps que possible des infrastructures abordables supportant k8s loin des AWS, GCP ou encore Azure, en vain. Il y a bien OVH et DigitalOcean mais le côté "abordable" n'y est pas. Le premier ouvre son infrastructure à partir de 22€ le serveur, et l'autre 20$ (node unique + LB). On est loin des 6€ par machine chez Hetzner.

L'idée

Comme l'indique la documentation officielle, HAProxy va faire ce qu'il sait faire de mieux : rediriger les requêtes. Comment peut-on faire croire à 3 serveurs séparés qu'ils bossent ensemble ? En installant un HAproxy sur chacun d'entre eux, configuré pour loadbalancer les requêtes qui seront balancées sur le 127.0.0.1 et le port 5443 (choisi arbitrairement).

En image, ça donne ça :


Configurés comme ça, nos masters vont s'amuser entre-eux sans aucun souci.

L'installation

Je passe sur la configuration de Kubernetes, j'en parle déjà ici. Notez quand même que vous pouvez suivre ce que je raconte jusqu'à l'init du cluster. Pas plus. Pourquoi ? Parce que sur le premier de vos masters, nous allons ajouter un fichier de configuration :
root@k8smaster1:~# cat kubeadm-config.yaml 
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
kubernetesVersion: stable
apiServer:
  certSANs:
  - "127.0.0.1"
controlPlaneEndpoint: "127.0.0.1:5443"
networking:
   podSubnet: "10.244.0.0/16"
Ici, on voit bien que j'ai configuré mon k8s pour taper sur le localhost de la machine à travers le port 5443. C'est là que HAproxy prend la relève.
Je me suis permis d'ajouter la configuration nécessaire à Flannel, mon CNI, qui nécessite en CIDR particulier pour fonctionner correctement. C'est la partie networking.

On peut enchaîner sur la configuration de HAProxy :
global
    log /dev/log    local0
    log /dev/log    local1 notice
    chroot /var/lib/haproxy
    stats socket /run/haproxy/admin.sock mode 660 level admin
    stats timeout 30s
    user haproxy
    group haproxy
    daemon

    ca-base /etc/ssl/certs
    crt-base /etc/ssl/private

    ssl-default-bind-ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:RSA+AESGCM:RSA+AES:!aNULL:!MD5:!DSS
    ssl-default-bind-options no-sslv3

defaults
    log    global
    mode    tcp
    option    tcplog
    option    dontlognull
        timeout connect 5000
        timeout client  50000
        timeout server  50000
    errorfile 400 /etc/haproxy/errors/400.http
    errorfile 403 /etc/haproxy/errors/403.http
    errorfile 408 /etc/haproxy/errors/408.http
    errorfile 500 /etc/haproxy/errors/500.http
    errorfile 502 /etc/haproxy/errors/502.http
    errorfile 503 /etc/haproxy/errors/503.http
    errorfile 504 /etc/haproxy/errors/504.http

frontend api-front
    bind 127.0.0.1:5443
    mode tcp
    option tcplog
    use_backend api-backend

backend api-backend
    mode tcp
    option tcplog
    option tcp-check
    balance roundrobin
    server master1  10.0.42.1:6443 check
    server master2  10.0.42.2:6443 check
    server master3  10.0.42.3:6443 check
La partie global a l'exacte configuration par défaut. J'ai touché à rien.

Dans defaults, j'ai changé le mode de proxy pour le passer de http à tcp.

Les parties frontend et backend regroupent les configurations qui vont bien pour permettre à HAProxy de faire ce que je lui demande. Vous devriez pouvoir recopier tout ça en prenant seulement le soin de changer les IP des masters.

Pour comprendre plus clairement la configuration de HAproxy, je vous redirige vers cet excellent billet de Victor HÉRY.

Une fois configurés, n'oubliez pas de redémarrer les HAProxy sur tous les serveurs et de vérifier qu'ils écoutent bien sur le bon port :
root@k8smaster1:~# nc -v localhost 5443
localhost [127.0.0.1] 5443 (?) open
Astuce : pensez à installer hatop. C'est vraiment super ! Pour le lancer :
hatop -s /var/run/haproxy/admin.sock
Pour le moment, tout sera down, mais une fois le premier master en état, il apparaîtra UP.

On va maintenant initialiser le premier master :
kubeadm init --config=kubeadm-config.yaml
Une fois terminé, vous allez récupérer les informations classiques : le join qui va bien.
kubeadm join 127.0.0.1:5443 --token a1o01x.tokenblabla --discovery-token-ca-cert-hash sha256:blablablablalblawhateverlablablameans --experimental-control-plane
Notez que l'IP de l'API est bien 127.0.0.1 avec le port spécifié à HAProxy. C'est tout bon ! Faites un tour dans hatop et remarquez que le backend du master1 est enfin marqué comme étant UP.

Un get nodes vous confirmera l'arrivée du master1 et un get pods vous montrera les conteneurs de base.

Installons maintenant Flannel, toujours aussi simplement :
kubectl apply -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml
Et on aura un premier master en état de fonctionner !

Pour configurer les deux autres masters, il va falloir jouer du SCP. La doc officielle fournit 2 scripts bash que vous pouvez utiliser. Je ne m'étends pas sur le sujet ici et j’enchaîne sur la configuration des autres masters. Pensez quand même à bien configurer SSH et votre user de base.

Une fois que tout est copié, vous n'avez qu'à lancer la commande join sur les masters restant, un par un, et voir le résultat :
dada@k8smaster1:~$ k get nodes
NAME         STATUS   ROLES    AGE   VERSION
k8smaster1   Ready    master   12h   v1.13.1
k8smaster2   Ready    master   11h   v1.13.1
k8smaster3   Ready    master   11h   v1.13.1
Ou encore :
dada@k8smaster1:~$ k get pods --all-namespaces
NAMESPACE     NAME                                 READY   STATUS    RESTARTS   AGE
kube-system   coredns-86c58d9df4-cx4b7             1/1     Running   0          12h
kube-system   coredns-86c58d9df4-xf8kb             1/1     Running   0          12h
kube-system   etcd-k8smaster1                      1/1     Running   0          12h
kube-system   etcd-k8smaster2                      1/1     Running   0          11h
kube-system   etcd-k8smaster3                      1/1     Running   0          11h
kube-system   kube-apiserver-k8smaster1            1/1     Running   0          12h
kube-system   kube-apiserver-k8smaster2            1/1     Running   0          11h
kube-system   kube-apiserver-k8smaster3            1/1     Running   0          11h
kube-system   kube-controller-manager-k8smaster1   1/1     Running   1          12h
kube-system   kube-controller-manager-k8smaster2   1/1     Running   0          11h
kube-system   kube-controller-manager-k8smaster3   1/1     Running   0          11h
kube-system   kube-flannel-ds-amd64-55p4t          1/1     Running   1          11h
kube-system   kube-flannel-ds-amd64-g7btx          1/1     Running   0          12h
kube-system   kube-flannel-ds-amd64-knjk4          1/1     Running   2          11h
kube-system   kube-proxy-899l8                     1/1     Running   0          12h
kube-system   kube-proxy-djj9x                     1/1     Running   0          11h
kube-system   kube-proxy-tm289                     1/1     Running   0          11h
kube-system   kube-scheduler-k8smaster1            1/1     Running   1          12h
kube-system   kube-scheduler-k8smaster2            1/1     Running   0          11h
kube-system   kube-scheduler-k8smaster3            1/1     Running   0          11h
Un dernier tour sur hatop pour admirer la présence de tous vos backends enfin marqué UP.

Vous avez maintenant un cluster k8s en HA ! La suite serait peut-être de vous raconter comment sortir ETCd du cluster pour le mettre en place dans un cluster séparé dédié, mais non. Ce billet est déjà bien assez long.

Si tout ne se passe pas comme prévu, pensez à regarder la documentation officielle. Mon billet n'est qu'un complément qui peut contenir des coquilles. Pensez aussi à bien vérifier la configuration de votre firewall, ou encore de HAProxy, ou encore de Docker, ou encore votre VPN parce qu'on ne laisse pas tout traîner sur le réseau. Bref.


/e/ sur mon 5T, une semaine plus tard

Rédigé par dada / 03 décembre 2018 / 6 commentaires

Je vais vous étonner. Vraiment. Après une semaine d'utilisation, je peux affirmer que /e/, ça marche.

Si vous avez la bonne idée de me suivre, ici , dans le web 3.0, vous savez que j'ai régulièrement écrit autour de mes aventures avec cette version d'Android un peu spéciale. Je vais y revenir dans ce billet avec plus d'images et des phrases un peu plus longues.

Une version d'Android connectée

Je n'ai jamais lu le site officiel en long, en large et en travers. Jamais. Tout ce que j'ai découvert cette semaine ne provient que de mes tâtonnements. Dans mon précédent billet, je soupçonnais /e/ d'utiliser un Nextcloud pour balancer l'intégralité du contenu important du téléphone dans les nuages. C'est maintenant vérifié. Il suffisait que je me rende sur https://ecloud.global pour le confirmer.


Ça ne saute pas tout de suite aux yeux alors je suis allé voir dans les sources de la page : à l'heure où j'écris ces lignes, Ecloud tourne avec un Nextcloud 14.0.3. Pour info, la dernière version stable de NC est là 14.0.4 et elle est sortie la semaine dernière. Ils ne sont pas encore à jour mais rien d'alarmant.

Voici les données nativement balancées dans l'instance Nextcloud :


On appréciera, ou pas, de voir tout ça partir sur les serveurs de la Fondation, mais c'est là et ça facilitera la vie de celles et ceux qui ne veulent pas maintenir un serveur faisant tourner un Nextcloud.

Autre point important : l'infrastructure utilisée est celle d'OVH, loin des GAFAM. Ça me paraissait évident mais le vérifier rassure toujours.

C'est là, mais pas vraiment

Maintenant que vous savez ce qu'il y a derrière les comptes /e/, je vais vous déconseiller de vous en servir pour le moment. Ça n'est pas à cause des seulement 50 Mo disponibles, c'est parce que la synchro ne semble jamais s’arrêter.

J'étais, depuis quelques heures, loin d'une connexion wifi amicale quand je me suis rendu compte que ma batterie foutait le camp. Si vous avez aussi un téléphone de la marque OnePlus, appréciez cette capture d'écran :


65% de batterie pour moins de 10 heures d'autonomie, on est bien loin des presque 3 nuits et 2 jours d'autonomie observable en temps normal. L'explication ? J'en sais trop rien encore. La synchro semble déconner et passe son temps à uploader des trucs. Comme c'est géré par l'application Nextcloud qu'on sait être ultra gourmande : ça massacre la batterie.

En vrac

- L'alerte sur la consommation de data fonctionne. Ma mésaventure avec mon compte /e/ a fait sonner l'alarme après la disparition de 2 Go de datas dans la nature.
- J'ai découvert que /e/ respectait la configuration par défaut de Silence. Le mode incognito m'a d'abord fait penser à un bug avant qu'on me confirme qu'il s'agit de quelque chose d'absolument normal.
- Je n'ai pas réussi à remettre en place les raccourcis Firefox sur le bureau. J'avais l'habitude d'en faire pour Pixelfed, Peertube et Prismo. L'option est grisée, ce qui me fait penser à un souci de permission.
- Les quelques applications issues du magasin d'application de Google fonctionnent. MicroG s'en sort bien pour moi. En parlant de ça, Aurora Store est vraiment super !
- Le développement est bien actif : on a le droit à 850 Mo d'OTA tous les deux jours, environ. Les changelogs sont disponibles par ici.
- J'ai toujours pas retrouvé comment me servir du lecteur d’empreinte pour scroller. Arg.

Pourquoi ne pas améliorer LineageOS ?

En parlant de /e/ sur Mastodon, je me suis rendu compte qu'il y avait des controverses au sujet de cet OS.

Le grand chef de cette aventure est connu pour avoir créé Mandrake, un fork de Red Hat à l'époque où ce dernier avait une interface franchement Meh. Les plus anciens se souviendront de cette envie qui marqua l'histoire de Linux en France. Il semble à nouveau tenter le coup, avec Android ce coup-ci. Trier ce qu'il y a de primordial pour l’utilisateur, c'est franchement une bonne idée. Les gens ne veulent pas plus savoir comment fonctionnent leur téléphone que leur PC.

Nous savons tous que Ubuntu se base outrageusement sur Debian pour faire son beurre. Il a fallu un peu de temps pour que la valeur ajoutée produite par Ubuntu redescende dans Debian. Ça a coincé un temps, mais c'est bon maintenant. Aussi, plus grand monde ne peste contre Mint qui pompe sur Ubuntu qui pompe sur Debian. Est-ce que /e/ et LineageOS ne pourraient pas se retrouver aussi dans un jeu gagnant-gagnant ? Sans doute que si.

Bref.

Une capture d'écran pour la fin ?