Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Archives 2018

Préparer Virtualbox pour Kubernetes

Rédigé par dada / 01 novembre 2018 / 2 commentaires

J'ai un peu l'impression d'arriver après la bataille, mais soit. Mieux vaut tard que jamais, comme disent les gens. Je me lance dans une série de billets autour de Kubernetes, l'orchestrateur qui fait parler de lui depuis bien longtemps.
Pour mettre les mains dedans, j'ai choisi de m'amuser avec Virtualbox. Je sais qu'il existe d'autres outils et que certains préféreront se servir de service cloud pour leurs pérégrinations. Perso, j'ai pas spécialement envie d'alourdir ma facture chez Hetzner, même s'ils le méritent. Et Virtualbox marche très bien.

Équipement de départ

  • Debian Testing sur mon ThinkPad x280
  • Virtualbox 5.2.20
  • Debian 9 pour les nodes
  • Docker CE 17.03.3
  • Une Freebox Révolution
Vocabulaire : un node, c'est une VM sur laquelle vous allez faire tourner des pods. Les pods sont des conteneurs Docker, qui tournent donc sur des nodes. Ok ?

Préparer Virtualbox

La première VM

Je vous laisse installer une première machine sous Debian 9. Sans fioritures. Une Debian stable avec SSH fait parfaitement l'affaire.
Au niveau des spécifications techniques, pas la peine d'aller trop loin : 1 core / 2GB de ram et 8 Go d'espace disque suffiront.

Configurer son réseau

Votre machine sous Virtualbox va avoir besoin de 2 choses :
- Un accès internet
- Une IP permettant d'être accessible en SSH par la machine hôte et par les autres nodes.

Un accès internet

Simple, la première carte réseau mise en place par VB est configurée en NAT. Vous n'aviez rien à faire.

Une IP SSH/Nodes

Le DHCP de la Freebox fourni des IP en 192.168.0.XX. Pour choper une de ces IP, il faut aller dans la configuration réseau de la VM et ajouter une deuxième carte réseau :


Il faut la configurer en accès par pont et lui passer en paramètre le nom du réseau de votre PC. Pour moi, c'est celui de la carte Wifi wlp59s0. Si vous avez une carte Ethernet, vous devriez pouvoir choisir eth0.

Installer les bases pour Kubernetes

Ici, on va installer une version de k8s non configurée. C'est important de l'installer nue puisque cette VM servira de base aux autres.

Installer Docker

# apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
# curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | apt-key add -
# add-apt-repository "deb https://download.docker.com/linux/debian stretch stable"
# apt-get update
# apt-get install -y docker-ce

Activez docker au démarrage :

systemctl enable docker
Configurez docker pour qu'il ne s'amuse qu'avec Systemd en créant le fichier /etc/docker/daemon.json :
root@k8snode1:/home/dada# cat /etc/docker/daemon.json
{
    "exec-opts": ["native.cgroupdriver=systemd"]
}

Et enfin, désactivez le swap avec la commande :

swapoff -a

Et commentez la ligne du fstab réactivant ce truc à chaque reboot :

# swap was on /dev/sda5 during installation
#UUID=5d159270-eaee-41ed-864c-711f242e044d none            swap    sw              0       0

Installer Kubernetes

# curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
# add-apt-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"
# apt-get update
# apt-get install -y kubelet kubeadm kubectl

Préparer le cluster

Kubernetes, c'est un cluster. Pour fonctionner correctement et pour vraiment s'amuser, il nous faut :
  • Un master
  • Deux nodes ou plus

Les nodes

Les nodes vont être créés à partir de la première machine de ce tuto. Pour les ajouter à Virtualbox, je vais vous demander de la cloner 2 fois. Virtualbox fait ça très bien : clique droit / cloner. Allez-y, c'est tout simple. Réaliser l'opération 2 fois.

Voici ce que vous devriez avoir maintenant :


Bon, les miennes sont "en fonction" puisqu'elles tournent à l'heure où je rédige ce billet, mais les vôtres devraient être arrêtées.

Connectez-vous en SSH aux machines

Au démarrage, votre machine n'aura peut-être pas activée son réseau. Du moins, par forcément. Si la commande ip a vous retourne quelque chose comme ça :
3: enp0s9: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 08:00:27:e4:f7:f0 brd ff:ff:ff:ff:ff:ff
C'est que l'interface n'est pas activée. Pour l'activer :
dhclient enp0s9
Et vous devriez avoir ça maintenant :
3: enp0s9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:e4:f7:f0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.31/24 brd 192.168.0.255 scope global enp0s9
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fee4:f7f0/64 scope link
       valid_lft forever preferred_lft forever
Remarquez la présence de la tant désirée IP : 192.168.0.31. Vous pouvez maintenant vous connecter à la machine avec un bon vieux :
ssh votreuser@192.168.0.31

Configurer les nodes

Rappel : étant des clones de la première machine virtuelle créée, ces nouvelles VM ont déjà docker et k8s d'installé.

Le hostname

Allez éditer le fichier /etc/hostname pour nommer vos machines. Exemple : k8snode1 et k8snode2. Vous allez éviter des warnings et des prises de tête en faisant ça.
dada@k8snode1:~$ cat /etc/hostname
k8snode1

Le hosts

Idem pour le fichier /etc/hosts : allez y ajouter, au bout de la ligne 127.0.0.1, le hostname de la machine.
dada@k8snode1:~$ cat /etc/hosts
127.0.0.1    localhost k8snode1
127.0.1.1    debian

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Le master

Pour le master, nous allons prendre la toute première machine que vous avez laissé nue. Si vous avez bien suivi et que je suis compréhensible : le node1 est le premier clone, le node2 est le second. Nous n'avons normalement pas encore touché à la machine d'origine. C'est ce que vous allez faire maintenant.

Configurez le hosts et le hostname de la même façon que pour les nodes, en prenant bien le temps de l'appeler k8smaster. Histoire de le différencier.

Tester tout ça

Maintenant que nous avons mis en place les machines, il va falloir vérifier qu'elles se comportent bien avant d'y lancer k8s.
  • Validez que vous pouvez bien vous connecter en SSH
  • Remplacez les IP qui traînent dans les exemples par les vôtres !
  • Pinguez les machines entre elles pour être bien certain d'éviter d'insulter k8s alors que le réseau est foireux
  • Rebootez les machines au moins une fois histoire de valider le réseau, le swap, le démarrage de docker et de kubernetes
Et c'est à partir de là qu'on va commencer à jouer !

La suite ?


Nettoyer Android sans être root

Rédigé par dada / 27 octobre 2018 / 16 commentaires


Les vieux téléphones sous des vieilles versions d'Android, c'est la plaie. Dans la famille, il y en a un, un Wiko Rainbow Lite 4G sous Android 5.1.1. Il n'est, évidemment, plus supporté par son constructeur et les ROM alternatives n'existent pas : il est en fin de vie et son utilisation est dangereuse. M'enfin, on doit faire avec en attendant de le changer.

Dans les cochonneries qu'une vieille version d'Android traîne avec elle, en plus des failles de sécu, il y a l'espace disque complètement pris par les applications, Google en tête. La succession de mises à jour a complètement obstrué le peu de mémoire interne de la bête, la rendant peu utilisable.

La solution ? Supprimer les applications inutilisées pour laisser souffler l'OS et dégager les alertes incessantes "Mettez à jour les applications" et "Plus d'espace disque suffisant pour mettre à jour les applications" ! Problème, il n'y a quasiment aucune application tierce et seules les Google Machins monopolisent la carte mémoire. Applications qu'on ne peut pas supprimer en passant par la jolie interface désuète d'Android Lollipop.

J'avais entendu parler d'un toot racontant qu'il était possible de s'en sortir avec quelques commandes ADB. Une demande d'aide sur Mastodon et quelques minutes plus tard, on est parti !

Merci les copains !

Voici donc un rapide tutoriel pour vous en sortir si l'envie vous prend de nettoyer un vieux smartphone, sans être root, de toutes les applications sans intérêt.

Note importante : vous pouvez rendre votre téléphone inutilisable en supprimant une application qu-il-aurait-pas-fallu-la-supprimer. Faites attention !

Installer ADB

Sans lui, vous ne pourrez rien faire :
# apt install android-tools-adb

Mode développeur

- Passez votre téléphone en mode développeur en tapotant sur son numéro de build.

- Branchez votre téléphone à votre PC.

- Vérifiez qu'il repère bien votre téléphone avec la commande adb devices.
$ adb devices
List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
4326d6ec    device

"4326d6ec device" indique qu'il y a bien un téléphone reconnu par mon PC.

Lister les applications

Si vous en êtes là, vous devriez pouvoir lister les applications installées dans votre téléphone :
$ adb shell pm list packages
package:com.qrd.omadownload
package:com.android.providers.telephony
package:com.google.android.googlequicksearchbox
package:com.android.providers.calendar
package:com.android.providers.media
[...]

La suppression

Pour supprimer une application dont vous n'avez plus rien à faire :
$ adb shell pm uninstall --user 0 com.google.android.youtube
Success
Le Success parle de lui même : l'application YouTube a dégagé du téléphone !

Mon nettoyage

Alerte : ne faites pas ça chez vous sans prendre le temps de réfléchir. Le propriétaire du téléphone massacré ci-dessous a des besoins très limités !

Voici la liste des applications supprimées du Wiko qui a passé un sale quart d'heure entre mes mains et qui marche toujours :
$ adb shell pm uninstall --user 0 com.google.android.youtube
$ adb shell pm uninstall --user 0 com.google.android.music
$ adb shell pm uninstall --user 0 com.google.android.talk
$ adb shell pm uninstall --user 0 com.google.android.videos
$ adb shell pm uninstall --user 0 com.google.android.apps.genie.geniewidget
$ adb shell pm uninstall --user 0 com.android.chrome
$ adb shell pm uninstall --user 0 com.google.android.apps.docs
$ adb shell pm uninstall --user 0 com.google.android.apps.photos
$ adb shell pm uninstall --user 0 com.google.android.apps.cloudprint
$ adb shell pm uninstall --user 0 com.tomaszmarzeion.notepad
$ adb shell pm uninstall --user 0 com.google.android.apps.maps
$ adb shell pm uninstall --user 0 com.google.android.googlequicksearchbox
$ adb shell pm uninstall --user 0 com.android.music
Et voilà !

Pour finir et si vous voulez aller plus loin, foncez lire le billet d'Étienne Deparis : Désinstaller des applications système d'Android.

Mastodon 2.5.0 disponible !

Rédigé par dada / 04 septembre 2018 / 16 commentaires


2.5.0 ? Normalement, quand on sort des grosses nouveautés, on s'amuse à gonfler le numéro de la release. Franchement, avec les nouveautés de cette version, le réseau social qui fait passer Twitter pour un bandeau publicitaire mériterait de se la jouer un peu plus.

Un nouveau design

Il est beau, il est clair, il est moderne et efficace. Je vous laisse avec des captures d'écran pour en juger par vous-même : ça déchire !
 

 

Les serveurs relais

Les petites instances peuvent se sentir isolées du fait de la taille du réseau à découvrir. Avec cette version, l'administrateur peut se connecter à un relais qui permettra à son serveur de voir défiler les messages d'une instance librement choisie et ainsi profiter de son activité. En francophone, ça devrait être pas mal de s'adosser à Framapiaf ou Mamot !

Les comptes recommandés

Ça, sérieusement, j'adore. La 2.5.0 permet de choisir des comptes à mettre en avant. Lorsqu'une personne s'attardera sur votre profil, elle pourra aller piocher dans les comptes que vous aurez sélectionnés et en profiter autant que vous !

Je me souviens d'une discussion avec mon frère à ce sujet. Il sera content de voir que ça arrive doucement.

Interaction avec les toots distants

Une recherche vous fait atterrir sur la page publique d'un toot ? Vous avez maintenant la possibilité de vous connecter pour y répondre simplement ou de créer votre compte pour rejoindre la conversation. Viendez créer un compte !

Amélioration de la modération

Il est maintenant possible de verrouiller des comptes plutôt que de les désactiver. Un compte verrouillé permet de signaler à son utilisateur qu'il ne respecte pas les règles de l'instance qui l'héberge tout en affichant un message informatif. Avec ça, le panneau d’administration devient aussi plus verbeux, permettant aux modérateurs et administrateurs de suivre ce qui se passe.
Les polémiques autour des difficultés de modération de Mastodon arrivent doucement et même si elles sont bien moindres que sur Twitter, les développeurs essayent constamment d'améliorer la situation.

Bref, c'est un excellent cru pour cette rentrée 2018. Si vous n'avez pas encore essayé Mastodon, c'est le moment !

J'ai vu Les nettoyeurs du Web

Rédigé par dada / 31 août 2018 / 8 commentaires


Les nettoyeurs du Web est une enquête proposée par Arte. Elle est édifiante, terrifiante, horrible. Je ne sais pas quoi ajouter d'autre. On y découvre la vie d'anciens modérateurs de contenu bossant pour Facebook, Twitter ou encore Google. Ces trois entreprises représentant l'intégralité du Web pour une écrasante majorité de gens, elle doit offrir une excellente vision de ce qu'il se passe derrière nos fil d'actualités.


On y entend aussi des anciens de ces grandes entreprises critiquer l'influence de la modération, ses dangers. Et je ne parle pas du regard des hommes et des femmes assis devant leurs écrans, le regard vide, essayant de savoir s'il faut supprimer ou non une image, une vidéo, ou couper le live d'une personne mettant une corde à son cou.

Allez la regarder, je vous y encourage. Elle est gratuitement disponible jusqu'au 3 septembre sur le site d'Arte. Si vous ratez le coche, vous la trouverez aussi sur Peertube en faisant un peu de recherche.

Masto.host : mettre en place son instance Mastodon facilement

Rédigé par dada / 20 août 2018 / 7 commentaires



Quand mastodon.social reste le point d'accès le plus connu de la Fédiverse, il est bon de rappeler que la nature profonde du fonctionnement de ce réseau social est d'être décentralisé.

Mastodon a ceci de génial qu'il autorise quiconque à créer son bout de réseau.

À chaque vague de nouveaux, le problème est le même : les gens se font majoritairement un compte sur Mastodon.social et, à chaque fois, certains et certaines souhaiteraient que son administrateur coupe les inscriptions et redirige le flux vers d'autres instances. Alors oui, comme le signale le message d'Eugen ci-dessous, il est très difficile de couper les inscriptions de l'instance la plus connue sans gêner l'arrivée des nouveaux.

Traduction rapide de la partie intéressante : Honnêtement, si c'était si simple, je fermerais définitivement les inscriptions. Le souci, c'est que quand je les ferme, les gens ne vont pas s'inscrire ailleurs, ils partent.

La solution !

Pour pallier à ce problème, je suis tombé sur une initiative géniale d'un portugais : masto.host !

Ce service vous permet de monter automatiquement une instance Mastodon moyennant quelques euros par mois. Les options vous permettent de choisir une configuration pouvant accueillir de 100 à un nombre monstrueux d'utilisateurs.

Il n'y a rien de technique dans la procédure de création. C'est vraiment clé en main et ça vous permet :
  • D'avoir votre instance à vous
  • D'ajuster sa taille en fonction de sa fréquentation
  • De pouvoir la modérer comme bon vous semble
  • De ne pas avoir à vous soucier de l'état du serveur qui la fait tourner
  • De profiter de la dernière version stable disponible
Le tout étant hébergé chez OVH, en Europe !

Je suis vraiment admiratif du travail réalisé par Hugo. Malheureusement, contrairement à mes habitudes, je vous parle d'un service que je n'ai pas testé moi-même. Et même que je ne suis pas payé pour lui faire de la pub. Cependant, d'après le compte officiel de Masto.host, il semblerait que ce soit un gars vraiment sérieux et disponible. Enfin, ces derniers temps, il croule sous les demandes : tant mieux !

Bref, si l'envie vous prend de monter une instance Mastodon à travers son service, n'hésitez pas à en parler et à faire des retours !