La nouvelle est tombée il y a quelques jours : le support de CentOS 8 se terminera fin 2021 et la distribution basculera à 100% sur le modèle Stream. C'est un changement de gouvernance brutal et destructeur pour ses utilisateurs car CentOS ne sera plus un clone de Red Hat gratuit mais plutôt son pendant "Windows Insider".
Il faut bien comprendre que CentOS c'est quelque chose de gros : c'est la 2e distribution la plus utilisée au monde sur les serveurs Web Linux en 2020 avec 18,8% de parts de marché. Moi qui travaille avec du Cloud et du Linux en entreprise, je confirme que ça représente à la louche 60% de nos serveurs (non Windows) peut-être même plus.
Qu'est-ce qui plaît autant dans cette distribution encore plus en retard que Debian et avec des dépôts tellement vides qu'il n'y a ni nginx ni htop ?
C'est basiquement un clone gratuit de Red Hat, donc très stable et certifiée par des tas de constructeurs de matériel et éditeurs de middlewares.
Support incroyablement long, une dizaine d'années.
Bénéficie de l'énorme documentation en ligne de Red Hat.
La pauvreté des dépôts est compensée par EPEL et SCL (mais aussi tout un tas d'autres).
La version du kernel est vieille mais les drivers et correctifs de sécurité sont backportés dedans.
Certains n'aiment pas les libertés prises par Debian dans le packaging de certaines applications (par exemple Apache). CentOS est un peu plus proche de l'upstream sur ce point.
En gros CentOS était une distribution incassable, prévisible, ennuyeuse, et avec un support extrêmement long. On comprend alors que l'abandon de cette stabilité au profil d'un modèle de type "testing" ou "insider" va totalement à l'encontre de ce qui faisait son intérêt. Mais alors, que peut-on faire ?
Si possible, ne plus déployer de CentOS 8 en attendant que la situation se stabilise. Cette annonce a provoqué de très nombreux retours négatifs de la communauté et il est évident que le projet se rend compte qu'il se saborde lui-même. En ce qui me concerne j'espère soit une annulation de cette décision, soit au contraire un message clair qui indique qu'IBM/Red Hat ne veut plus de CentOS dans sa forme actuelle, dans les deux cas nous serions fixés sur l'avenir.
En attendant, si vous devez déployer de nouveaux serveurs, il existe des alternatives :
Si vous n'avez aucune fidélité à RHEL/CentOS ou aux RPMs, Debian et Ubuntu sont des alternatives de choix. J'ai une nette préférence pour la première que j'ai toujours trouvé plus légère, plus stable, et qui n'installe pas snap par défaut.
CentOS 7 reste une option à ne pas négliger, car supportée jusqu'en 2024.
Si vous avez besoin de la compatibilité RHEL/CentOS 8, il y a Oracle Linux. Alors oui le nom fait peur car quand on parle d'Oracle on pense aux tarifs exorbitants, à OpenOffice, et aux pratiques crapuleuses, il n'empêche que la distribution est bien gratuite et qu'elle perdure depuis 2013, en plus d'être elle aussi un clone de Red Hat. Elle est fournie avec deux kernel : RHCK (compatible Red Hat / CentOS) et UEK (Unbreakable Enterprise Kernel, plus récent et ne nécessitant pas de reboot). Oracle Linux est à mon sens l'alternative la plus crédible à CentOS. Pour couronner le tout, un script de migration est disponible : lien vers un retour d'expérience.
Je ne recommande pas Rocky Linux, c'est beaucoup trop tôt. Des tas de distributions naissent et meurent chaque année, ou se retrouvent parfois dans un état intermédiaire façon Mageia, donc attendons de voir si Rocky aura les moyens de ses ambitions. Elle n'est de toutes manières pas encore disponible.
Il est urgent d'attendre, laissez passer les fêtes pour voir comment la situation évolue. Voilà mon avis sur le feuilleton CentOS ;)
Deux jours avant la signature finale pour acheter mon appartement, j'ai reçu un appel de mon notaire qui m'informait qu'un document était manquant et que cela allait provoquer un retard de 3 semaines. Ce n'était pas un oubli de ma part, la demande aurait du être formulée par l'office des notaires à la mairie mais cela n'avait pas été fait. Heureusement j'avais prévu un peu de marge pour quitter mon ancien appartement et j'ai donc pu faire rallonger le bail pour ne pas me retrouver à la rue. À l'issue de ces 3 semaines j'ai enfin pu signer et devenir propriétaire.
Je me doutais que l'aventure ne faisait que commencer et qu'il ne fallait pas crier victoire immédiatement. Je prévoyais de devoir consacrer pas mal de temps au nettoyage de l'ancien appartement, mais j'ai aussi découvert des surprises dans ma nouvelle acquisition. Il ne m'a pas été transmis dans un état impeccable, loin de là :
Il y a une bonne trentaine de trous dans les murs. Ils ont servi à fixer des étagères et n'ont pas été rebouchés.
Les joints de la cabine de douche sont moisis et noirs.
Le congélateur n'est pas dégivré.
L'évier de la cuisine est entartré et blanchâtre.
Le bouchon de l'évier de salle de bain ne s'éjecte pas.
J'imagine que ça fait partie du jeu, il n'y a pas d'état des lieux quand on vend ou achète.
Imaginez une trentaine de trous comme ça.
Le bouchage des trous n'est vraiment pas compliqué, il suffit de les combler avec un enduit qui sèche très rapidement, puis de poncer avec un papier spécifique pour bien le lisser. Le problème est qu'il il faut ensuite repeindre par dessus et donc trouver la même couleur, ce qui n'est pas chose aisée. Ou alors il faut refaire tout le mur pour masquer la différence de ton.
Je vais donc devoir m'improviser peintre et plombier pour le prochain mois et mener un mini chantier qui va m'occuper les soirs et week-end. Être propriétaire ça se mérite.
Cet été, j'évoquais l'achat d'un Dell Latitude 5500 BTX sur lequel j'avais installé Debian Buster. Ce modèle fonctionne out-the-box sous Linux, est très silencieux et ne chauffe pas trop donc en apparence tout va bien, sauf que non car il était touché par un bug firmware très agaçant.
Freeze au démarrage
En effet, lorsque la batterie n'était pas pleine, on va dire à la louche une valeur < 80%, il était impossible de booter car le système freezait après l'initramfs, juste avant de devoir saisir le mot de passe LUKS. Il y avait alors deux solutions :
Ajouter acpi=off au grub, ce qui avons-le n'est pas viable puisque vous perdez toutes les touches spéciales, ne pouvez plus changer la luminosité, et n'avez plus l'indicateur de batterie.
Brancher le chargeur, au moins pour pouvoir démarrer l'ordinateur. Il peut ensuite être débranché, la machine fonctionnera parfaitement jusqu'à extinction.
Mise à jour UEFI
J'ai subit ce bug pendant de nombreux mois parce que j'utilisais principalement mon ordinateur chez moi et que je pouvais donc le brancher pour le démarrer. Mais un jour j'ai décidé de m'y pencher sérieusement et d'aller voir s'il y avait une mise à jour du firmware UEFI (bios) disponible chez DELL. Et en effet il y avait la version 1.9.1 disponible en téléchargement et marquée comme critique car elle corrige des failles de sécurité.
Après avoir téléchargé et mis le .exe sur une clé USB en FAT32, j'ai redémarré la machine et appuyé sur F12 afin d'accéder à la fonctionnalité "Flash Update". Celui-ci a correctement détecté mon fichier, m'a averti qu'il allait redémarrer plusieurs fois la machine, et... est resté freezé sur cet écran :
Un update de Bios qui plante c'est pas rassurant, j'ai donc attendu 1h avant d'éteindre de la machine, qui heureusement n'était pas bricked. J'ai retenté la mise à jour, avec le même résultat, il semble que le flashage ne démarre tout simplement pas. Changement de méthode.
LVFS / fwupdmgr
Après une petite recherche dans la documentation de DELL, je suis tombé sur LVFS. Si on m'avait dit un jour qu'il était possible, sous Linux, de mettre à jour un Bios avec une commande aussi simple qu'apt-get update je n'y aurais pas cru, et pourtant c'est ce que permet de faire LVFS et son implémentation fwupdmgr. La documentation d'Ubuntu est assez explicite :
En pré requis il faut tout de même autoriser dans le Bios/UEFI les updates par "capsules" du firmware UEFI sinon la procédure échouera. Pensez à les désactiver par la suite. En tous cas ça fonctionne bien car après avoir redémarré, le logo DELL m'a indiqué que la mise à jour était bien prise en compte suite à quoi je me suis bien retrouvé en 1.9.1.
Le bug est maintenant corrigé, la machine ne freeze plus au boot sur batterie. Ce DELL Latitude 5500 BTX est devenu quasi parfait pour Linux :)
Computrace
Petit (gros) bémol: depuis le passage du firmware UEFI en version 1.9.1, je note la présence d'une nouvelle option Absolute Computrace dans le Setup. En faisant une recherche sur Internet on comprend vite qu'il s'agit ni plus ni moins que d'un rootkit/backdoor installé avec la complicité de DELL qui officiellement sert à garder la main sur la machine en toutes circonstances, par exemple en cas de vol avec réinstallation de l'OS.
L'option est désactivable - de manière temporaire ou définitive - ce que j'ai fait. Je choisis de croire que ce n'est pas un bouton placebo et que la fonction est réellement éliminée même si je n'en ai aucune preuve. Il n'est pas certain que Computrace fonctionne sous Linux et il n'y a pas non plus de moyen de vérifier si un agent a été injecté. Par sécurité je prévois de formater mon SSD et réinstaller Debian.
I need to backup my NAS to a remote and secure location, and because I am a Azure AZ-103 associate, I have decided to store my data on a Azure storage account. I will use Duplicati, a free backup software written in C# with the following features:
Storage account offers 3 tier storage with different pricing: hot, cool, archive. If you choose a hot tier, access is less charged, but storage is more expensive. This is the opposite for cool and archive, storage is cheap but access is expensive. Archive is the most interesting tier for backups but it has many constraints, such as the need to pick every object inside the container to move them. So I will use cool right now.
Create a Resource group and a Storage account
First you need to create a Resource group. Go to the Resource groups blade then click +Add. Take a look at Ready: Recommended naming and tagging conventions if you don't know how to name it. Select a region (does not really matters now).
Now you need to create a Storage account. Go to the Storage accounts blade then click +Add.
Subscription: your subscription.
Resource group: the one you just created
Storage account name: must be unique accross Azure and as many limitations, so I recommend using a short name + random id.
Location: Select the location of your choice (choose a close one with an interesting pricing, see Azure Calculator)
Account kind:StorageV2
Replication:LRS
Access tier:cool
Now open you new Storage account and go to the Containers blade then click +Container. This time the name is private and does not need to be unique. Make sure the Public level access is set to Private (no anonymous access).
Go to the Access keys blade and retrieve the value of key1 or key2. These key are private and should not be shared with anyone because they basically give full access to the storage account and the data inside.
Configure Duplicati
Go into the Web UI then + Add backup > Configure a new backup.
Enter a name, a description and a very strong encryption passphrase. Do not lose it, personally I use Keepass + Syncthing to manage my passwords.
Select "Azure blob" for Storage type and set your credentials.
Click Test connection to make sure Duplicati can reach your Azure container.
Select the files you want to backup.
Schedule your backup. For me, monthly is enough.
Duplicati will not copy your files one by one but use "volumes". To select the size of each block, read this documentation. Smaller means more transactions but better de duplication. Bigger means less transactions but less optimized de duplication. If you have the bandwith, go for higher chunks. 1 Gbyte seems to be a good value for me. More is not good because it takes too much resources.
You can also set the retention, for me it's 6 months.
Et voila, just run your backup now!
Cost and Metrics
My Storage Account:
Location: North Europe
Performance/Access tier: Standard/Cool
Replication: Locally-redundant storage (LRS)
Account kind: StorageV2 (general purpose v2)
My Backups:
Data source: ~650 GB
Schedule: @Monthly
Volume size: 1 GB
Used capacity (512 GiB) :
Ingress and Egress (Last executions: 2020/10/10 and 2020/10/14):
Transactions (Last executions: 2020/10/10 and 2020/10/14):
I admit I'm not sure sure why I see transactions when there is no backups. I assume it's Azure stuff.
Last invoice:
Monthly billing is always around €5 which is not cheap but affordable. If you need more than 1TB of storage, it might be a good idea to take a look at Google One (Drive) or Dropbox.
A l'issue des 6 mois en entreprise, mon stagiaire a du affronter un jury dans une soutenance orale, et j'étais présent. Cela se déroulait à l’école - totalement vide à cette période - devant deux personnes à qui il fallait présenter en 30 minutes les tâches et projets accomplis. Fait amusant : j'avais mis une chemise et une veste pour avoir l'air de quelqu'un de sérieux, mais au final tout le monde était en jean / t-shirt.
L'oral s'est plutôt bien passé, il a respecté le temps imparti, a varié les sujets, le tout avec une bonne fluidité et un bon support PowerPoint. La phase de question fut en revanche surprenante car le jury s'est focalisé sur la forme et pas sur le fond, par exemple des images mal positionnées dans le texte. Sur une petite dizaine de questions, une seule portait sur la technique. Est-ce que cela voulait dire que le fond était parfait ?
J'ai assisté aux délibérations du jury et le verdict est rapidement tombé "excellent stage, excellent rapport, excellente présentation". La note attribuée est supérieure à 15, ce qui à mon avis est amplement mérité.
Il est donc temps de conclure cette expérience de maître de stage. Tout d'abord j'ai eu de la chance car je suis tombé sur un bon candidat qui ne m'a pas donné de fil à retordre et qui a appris très rapidement, et c'est important de le réaliser. Ensuite ce rôle demande quand même un peu de temps car il faut trouver des sujets, les évaluer, et les expliquer.
Pour moi cette expérience fut positive, mais je ne compte pas reprendre un stagiaire tout de suite car je n'ai pas identifié de sujet et parce que quelque part j'aime rester sur une bonne expérience. Mais les choses peuvent changer.
Épilogue : Ben voilà, il a été recruté par la concurrence pour être Ingé Linux :)