Dans un précédent billet, je vous ai présenté FlatCar Linux, un os immutable. Par manque de temps, j’avais laissé le sujet de côté. Suite à une
discussion, j’ai découvert Nebraska le serveur de mise à jour d’instances
FlatCar.
Nebraska
Par défaut les instances Flatcar Linux utilisent les serveurs publics
pour obtenir les mises à jour de l’OS. Pour gérer finement ces mises à jour,
il faut mettre en place un serveur qui prend en charge le protocole Ohama.
C’est là qu’entre en jeux Nebraska.
Installation de Nebraska
Pour le moment, il n’existe pas de package permettant d’installer facilement
Nebraska, c’est pourquoi je vais utiliser la stack docker-compose du
projet pour monter mon POC. Pour info, dans la
documentation ↗, on trouve aussi
comment l’installer dans un cadre d’entreprise sur un serveur Kubernetes
en le couplant avec le système d’authentificationOpenID.
Installation du projet
Bon, on clone le projet :
Pour permettre de récupérer les dernières versions des images à partir des
serveurs publiques, il faut éditer le fichier docker-compose.test.yaml présent
dans ce dossier :
Modifier simplement la dernière ligne de fichier pour ajouter l’option
-enable-syncer=true comme indiqué dans la documentation.
Reste plus qu’à démarrer le tout.
Connexion au frontend de Nebraska
Normalement au bout de quelques minutes le serveur devrait être disponible. Il
suffit suivre le lien suivant http://localhost:8002 ↗.
Tout est prêt pour enregistrer notre premier client.
Rattachement de notre premier client
Reprenons notre exemple de notre précédent article. Nous allons simplement
ajouter un fichier /etc/flatcar/update.conf :
Il faut remplacer dans la chaine SERVER=http://192.168.122.1:8002/v1/update/
l’IP par celle de votre machine.
Avant de démarrer notre instance, nous allons télécharger une ancienne version de
l’image flatcar :
Maintenant, relançons l’instance :
On se connecte à notre instance :
On lance manuellement le client :
Si vous retournez sur le frontend de Nebraska, vous devriez retrouver votre
instance dans le groupe Stable (Défini dans la conf de l’instance).
Le téléchargement est bien en cours.
Retour sur la console de l’instance.
La mise à jour est prête à être installé. Manque juste le reboot. Normalement
cela se fait tout seul, car la stratégie par défaut est de faire le reboot dans
un délai de 5 minutes. Pour changer de stratégie il faut se rendre dans la
documentation de
flatcar ↗.
Changer de release de votre group
Il faut se rendre dans la section [Flatcar Container Linux] et dans le Channel
de votre instance de cliquer sur les … et choisir l’action [Edit]. Choissisez
votre Package et Cliquer sur [SELECT], puis [SAVE].
Une fois modifié. Vous pouvez attendre que votre instance se mette à jour toute
seule ou faire comme précédemment.
Pour vérifier le processus, vous pouvez sur votre instance afficher le status du
service d’update :
Le prochain update aura lieu dans 41m…
Tout cela est contrôlable via la configuration de ce service.
Comment faire un rollback sur notre instance
Nous allons faire un rollback de notre instance à une ancienne version de
flatcar.
Plus loin avec Nebraska
Bon notre POC est validé. Reste à le déployer dans un cluster Kubernetes.
PS: Merci à Jérôme HARDY ↗ et
Thomas Delacotte de Claranet France ↗ pour
cette découverte ! Il l’utilise pour ne plus gérer le patch management des
nodes de leurs clusters Kubernetes OnPrem.