L’objectif de ce petit billet est de Déployer sous Proxmox une distribution Linux « immuable » (et vous la présenter au passage), de la récupération de l’image ISO jusqu’à la connexion à la machine.

Un peu comme Talos Linux, que je t’avais présenté il y a quelques semaines, voici Flatcar Container Linux : une distribution minimale conçue pour Docker utilisant le runtime containerd. Son originalité ? Elle se déploie uniquement via le système « Butane » (qui prend en entrée un YAML lisible par un humain, selon la terminologie Flatcar), avant de générer, via un outil publié en Docker (aussi), un fichier de configuration YAML bien plus « machine-friendly » (et bien moins lisible, sauf pour les barbus qui font ça quotidiennement 😉).

La procédure sous Proxmox est relativement simple et repose en grande partie sur Cloud-Init (que vous allez découvrir dans ce tutoriel si ce n’est pas déjà le cas). Cloud-init, c’est l’outil universel pour configurer les distributions Linux compatibles : IP, DNS, passerelle… le strict minimum pour commencer à interagir avec la machine en somme.

Contrairement à Talos Linux, qui est une distribution pilotable et modifiable après son instalation, Flatcar est plutot destinée au déploiement initial, genre « Fire and forget ». Par ailleurs les mises à jour sont totalement automatiques. Je n’ai pas eu l’occasion de tester leur procédure, mais je vous mets tout de même un extrait de leur FAQ pour comprendre :

« If the image is immutable, how does it get updated? Flatcar uses the USR-A and USR-B update mechanism, first introduced by ChromeOS. There are two partitions where the /usr/ filesystem can be deployed. One of them is used as the active /usr filesystem, while the other stays in stand-by. When a new Flatcar Container Linux version is released, the update payload is deployed to the inactive /usr/ partition. The next time the machine reboots, it mounts this other partition and boots into a fully updated system. If for any reason something goes wrong during the boot process, the system automatically falls back to the previous /usr/ partition. »

Pour simplifier, il existe deux partitions /user, une active et une inactive. Lorsqu’une nouvelle mise à jour est présentée, la partition inactive actuelle est déployée avec la nouvelle image, ensuite un reboot plus tard, la partition /usr est swappée avec la précédente.

Bon, on l’install cette mini distro ? On va principalement travailler avec la cli qemu même si l’essentiel peut être réalisé en interactif.

Vous téléchargez l’image officielle de production et par ailleurs, vous créez votre enveloppe de VM sans disque avec le minimum de spécifications :

Ensuite, on va configurer la VM pour qu’elle soit pile poil à notre gout 🙂 :

Enfin, on va paramétrer le réseau :

… si vous préférez vous pouvez choisir les IP en manuel ainsin que la paramtrage de la stack IPv6 (référez-vous à la documentation cloud-init ou proxmox).

Enfin, il vous suffit de booter votre VM : celle-ci va s’initialiser avec les paramètres fournis, redimensionner son disque (qu’on a étendu, rappelez-vous), puis rendre la main. Comme j’ai ajouté une interface série, vous pouvez utiliser la connexion à la console via xterm.js (rappelez-vous mon astuce d’il y a une quinzaine de jours… c’est dingue comme tout est lié ! 😉).

Au final, vous avez accès à la nouvelle VM en SSH avec l’utilisateur « core » et votre clé SSH. Docker est directement disponible, et containerd est prêt à démarrer les conteneurs que vous lui confierez.

Cet article était surtout consacré à Proxmox… même si Flatcar a servi de parfait prétexte pour vous montrer une utilisation plus poussée de la solution. Et, comme vous l’avez compris, ce n’est que le début : je vais me concentrer sur ce sujet pendant plusieurs semaines. 😊

Finalement, jetez un œil à Flatcar, qui me semble être une distribution immuable promue par la CNCF et qui a de l’avenir !

Références :
– Flatcar, une autre distribution Immuable : https://www.flatcar.org
– Talos Linux : https://www.siderolabs.com/talos-linux
– Mon article sur Talos : https://vblog.io/talos-lusine-a-nodes
– La doc de la cli QM (qemu) chez Proxmox : https://pve.proxmox.com/pve-docs/qm.1.html

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *