ELevate : Mettez à niveau CentOS 7 vers Alma Linux
Bonjour à tous,
Dans cet article, on va parler de l'outil leapp mis à disposition dans le dépôt Elevate d'Alma Linux !
Cet outil va permettre de migrer d'élever (si je traduis littérallement) sa distribution CentOS 7 vers une variante d'EL en version 8, avec au choix :
- Alma Linux 8
- CentOS Stream 8
- Oracle Linux 8
- Rocky Linux 8
On remarquera l’ouverture d'esprit de l’équipe d'Alma Linux envers ses concurrentes !
Evidemment, ayant déjà parlé de mon choix post CentOS, et celui-ci étant Alma Linux, nous allons voir la migration de CentOS 7 vers Alma Linux 8.
A noter que je ne vous recommanderai jamais, sur un serveur en production de mettre à niveau votre système vers une autre version majeure. Cependant, sachez que c'est possible avec l'outil présenté ici.
L'outil est à ce jour en développement. Son usage est réservé à des tests (clone d'une VM de prod) pour remonter les anomalies.
Pour ceux qui ne me connaissent pas encore, j'exécute toutes les commandes en root, donc pas de commandes préfixées avec "sudo" !
Tout d'abord, on s'assurera que notre CentOS est à jour :
Si une mise à jour du noyau est proposée, on rebootera le système :
Une fois le système à jour, installez le dépôt elevate :
Une fois fait, installez le paquet leapp-upgrade + le paquet leapp-data de la distribution voulue (remplacez almalinux par centos, oraclelinux ou rocky) :
Une fois fait, on lance une vérification de l'upgrade via :
Voici des exemples de retours :
On voit un certain nombre de paramètres testés.
Une fois le pré-upgrade terminé, on a un résumé :
Dans mon cas, l'upgrade ne peut se faire car :
1. Inhibitor: Detected loaded kernel drivers which have been removed in RHEL 8. Upgrade cannot proceed.
2. Inhibitor: Possible problems with remote login using root account
3. Inhibitor: Missing required answers in the answer file
On a le détail dans le fichier /var/log/leapp/leapp-report.txt des conflits possibles avec les résolutions.
Pour le problème 1, on retirera les modules pata_acpi mptspi mptscsih mptbase,
Pour le problème 2, on va fixer PermitRootLogin à yes dans sshd_config
Pour le problème 3, on peut saisir la commande suivante :
ou placer confirm = True dans la section [remove_pam_pkcs11_module_check]
On peut relancer un preupgrade avant l'upgrade si on veut !
Si tout est bon, on lance le début de l'upgrade avec :
Une fois les vérifications faites, on voit le rafraichissement des dépôts :
Puis le début du téléchargement des RPM. D'autres vérifications sont faites (transactions de tests) durant le processus.
On remarquera qu'une image initramfs spéciale pour l'upgrade est créée :
En effet, le réel upgrade se fait au reboot (comme sur fedora avec dnf system-upgrade).
Les informations sont toutes en verte, avec les chemins vers les fichiers de logs :
Avant de reboot, on contrôle qu'on est bien encore sur CentOS 7 :
On reboot le système :
On démarre automatiquement sur l'entrée précédemment générée dans le GRUB :
Et l'upgrade commence :
Il peut arriver, que le système ne reboot pas (ça m'est arrivé en rédigeant cet article avec une VM VMware équipée d'UEFI).
J'ai du ajouter manuellement l'entrée Alma Linux qui dispose d'un fichier efi dans le dossier almalinux cette fois-ci) !
Vous trouverez le report du bug ici : https://bugs.almalinux.org/view.php?id=134
Une fois le système rebooté, on contrôle qu'on est bien sous Alma Linux 8 :
Evidemment, assurez vous que vos applications fonctionnent toujours, et adaptez les fichiers de configuration de vos services si besoin (Apache, MariaDB, PHP qui passe à php-fpm, etc.)
Dans cet article, on va parler de l'outil leapp mis à disposition dans le dépôt Elevate d'Alma Linux !
Cet outil va permettre de migrer d'élever (si je traduis littérallement) sa distribution CentOS 7 vers une variante d'EL en version 8, avec au choix :
- Alma Linux 8
- CentOS Stream 8
- Oracle Linux 8
- Rocky Linux 8
On remarquera l’ouverture d'esprit de l’équipe d'Alma Linux envers ses concurrentes !
Evidemment, ayant déjà parlé de mon choix post CentOS, et celui-ci étant Alma Linux, nous allons voir la migration de CentOS 7 vers Alma Linux 8.
A noter que je ne vous recommanderai jamais, sur un serveur en production de mettre à niveau votre système vers une autre version majeure. Cependant, sachez que c'est possible avec l'outil présenté ici.
L'outil est à ce jour en développement. Son usage est réservé à des tests (clone d'une VM de prod) pour remonter les anomalies.
Pour ceux qui ne me connaissent pas encore, j'exécute toutes les commandes en root, donc pas de commandes préfixées avec "sudo" !
Tout d'abord, on s'assurera que notre CentOS est à jour :
Code BASH :
yum update -y
Si une mise à jour du noyau est proposée, on rebootera le système :
Code BASH :
reboot
Une fois le système à jour, installez le dépôt elevate :
Code BASH :
yum install -y http://repo.almalinux.org/elevate/elevate-release-latest-el7.noarch.rpm
Une fois fait, installez le paquet leapp-upgrade + le paquet leapp-data de la distribution voulue (remplacez almalinux par centos, oraclelinux ou rocky) :
Code BASH :
yum install -y leapp-upgrade leapp-data-almalinux
Une fois fait, on lance une vérification de l'upgrade via :
Code BASH :
leapp preupgrade
Voici des exemples de retours :
Code TEXT :
====> * scan_kernel_cmdline No documentation has been provided for the scan_kernel_cmdline actor. ====> * tcp_wrappers_config_read Parse tcp_wrappers configuration files /etc/hosts.{allow,deny}. ====> * scan_sap_hana Gathers information related to SAP HANA instances on the system.
On voit un certain nombre de paramètres testés.
Une fois le pré-upgrade terminé, on a un résumé :
Code TEXT :
============================================================ UPGRADE INHIBITED ============================================================ Upgrade has been inhibited due to the following problems: 1. Inhibitor: Detected loaded kernel drivers which have been removed in RHEL 8. Upgrade cannot proceed. 2. Inhibitor: Possible problems with remote login using root account 3. Inhibitor: Missing required answers in the answer file Consult the pre-upgrade report for details and possible remediation. ============================================================ UPGRADE INHIBITED ============================================================ Debug output written to /var/log/leapp/leapp-preupgrade.log ============================================================ REPORT ============================================================ A report has been generated at /var/log/leapp/leapp-report.json A report has been generated at /var/log/leapp/leapp-report.txt ============================================================ END OF REPORT ============================================================ Answerfile has been generated at /var/log/leapp/answerfile
Dans mon cas, l'upgrade ne peut se faire car :
1. Inhibitor: Detected loaded kernel drivers which have been removed in RHEL 8. Upgrade cannot proceed.
2. Inhibitor: Possible problems with remote login using root account
3. Inhibitor: Missing required answers in the answer file
On a le détail dans le fichier /var/log/leapp/leapp-report.txt des conflits possibles avec les résolutions.
Pour le problème 1, on retirera les modules pata_acpi mptspi mptscsih mptbase,
Code BASH :
rmmod pata_acpi rmmod mptspi rmmod mptscsih rmmod mptbase
Pour le problème 2, on va fixer PermitRootLogin à yes dans sshd_config
Code BASH :
vi /etc/ssh/sshd_config
Pour le problème 3, on peut saisir la commande suivante :
Code BASH :
leapp answer --section remove_pam_pkcs11_module_check.confirm=True
ou placer confirm = True dans la section [remove_pam_pkcs11_module_check]
On peut relancer un preupgrade avant l'upgrade si on veut !
Si tout est bon, on lance le début de l'upgrade avec :
Code BASH :
leapp upgrade
Une fois les vérifications faites, on voit le rafraichissement des dépôts :
Code TEXT :
====> * target_userspace_creator Initializes a directory to be populated as a minimal environment to run binaries from the target system. AlmaLinux 8.4 - HighAvailability 1.8 MB/s | 603 kB 00:00 AlmaLinux 8.4 - Extras 54 kB/s | 10 kB 00:00 AlmaLinux 8.4 - AppStream 19 MB/s | 9.5 MB 00:00
Puis le début du téléchargement des RPM. D'autres vérifications sont faites (transactions de tests) durant le processus.
On remarquera qu'une image initramfs spéciale pour l'upgrade est créée :
Code TEXT :
==> Processing phase `InterimPreparation` ====> * upgrade_initramfs_generator Creates the upgrade initramfs ====> * efi_interim_fix Adjust EFI boot entry for first reboot ====> * add_upgrade_boot_entry Add new boot entry for Leapp provided initramfs. A reboot is required to continue. Please reboot your system.
En effet, le réel upgrade se fait au reboot (comme sur fedora avec dnf system-upgrade).
Les informations sont toutes en verte, avec les chemins vers les fichiers de logs :
Code TEXT :
Debug output written to /var/log/leapp/leapp-upgrade.log ============================================================ REPORT ============================================================ A report has been generated at /var/log/leapp/leapp-report.json A report has been generated at /var/log/leapp/leapp-report.txt ============================================================ END OF REPORT ============================================================ Answerfile has been generated at /var/log/leapp/answerfile
Avant de reboot, on contrôle qu'on est bien encore sur CentOS 7 :
Code BASH :
cat /etc/os-release
Code TEXT :
NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"
On reboot le système :
Code BASH :
reboot
On démarre automatiquement sur l'entrée précédemment générée dans le GRUB :
Et l'upgrade commence :
Il peut arriver, que le système ne reboot pas (ça m'est arrivé en rédigeant cet article avec une VM VMware équipée d'UEFI).
J'ai du ajouter manuellement l'entrée Alma Linux qui dispose d'un fichier efi dans le dossier almalinux cette fois-ci) !
Vous trouverez le report du bug ici : https://bugs.almalinux.org/view.php?id=134
Une fois le système rebooté, on contrôle qu'on est bien sous Alma Linux 8 :
Code BASH :
cat /etc/os-release
Code TEXT :
NAME="AlmaLinux" VERSION="8.4 (Electric Cheetah)" ID="almalinux" ID_LIKE="rhel centos fedora" VERSION_ID="8.4" PLATFORM_ID="platform:el8" PRETTY_NAME="AlmaLinux 8.4 (Electric Cheetah)" ANSI_COLOR="0;34" CPE_NAME="cpe:/o:almalinux:almalinux:8.4:GA" HOME_URL="https://almalinux.org/" DOCUMENTATION_URL="https://wiki.almalinux.org/" BUG_REPORT_URL="https://bugs.almalinux.org/" ALMALINUX_MANTISBT_PROJECT="AlmaLinux-8" ALMALINUX_MANTISBT_PROJECT_VERSION="8.4"
Evidemment, assurez vous que vos applications fonctionnent toujours, et adaptez les fichiers de configuration de vos services si besoin (Apache, MariaDB, PHP qui passe à php-fpm, etc.)