Fullmoon System

Migrer de CentOS 7 vers Rocky Linux 8 : privilégier une installation neuve

EdwardMoon

Pour migrer de CentOS 7 vers Rocky Linux, ce guide recommande de construire un nouveau serveur Rocky Linux 8.10, puis de transférer progressivement applications et données. CentOS Linux 7 est en fin de vie depuis le 30 juin 2024 et ne reçoit plus de correctifs de sécurité. Rediriger un serveur vers Vault ne rétablit pas son support.

Le guide officiel ELevate actuel renvoie à des parcours de migration explicitement pris en charge. Ne supposez pas qu'une conversion sur place non vérifiée accepte Rocky Linux comme destination. Si celle-ci manque dans la matrice actuelle de l'outil, choisissez une installation neuve avec migration des données. Toute conversion exceptionnelle sur place doit d'abord être reproduite sur un clone distinct.

Choix de migration CentOS 7 vers Rocky Linux : nouvelle installation privilégiée, matrice de support à vérifier pour les exceptions sur place
Une démarche privilégiant Rocky Linux 8.10 neuf et exigeant la vérification du support actuel pour une migration sur place

Approche recommandée

Parcours Avis Conditions essentielles
Installer Rocky 8.10 et migrer Recommandé Système propre, retour arrière clair et validation progressive
Outil de migration sur place Exception Vérifier destinations prises en charge, blocages et console de récupération
Maintenir CentOS 7 Déconseillé Risque de sécurité hors récupération brève et isolée

1. Inventorier les actifs et dépendances CentOS 7

sudo install -d -m 0700 /root/migration-inventory
cat /etc/centos-release | sudo tee /root/migration-inventory/release.txt
uname -r | sudo tee /root/migration-inventory/kernel.txt
sudo rpm -qa --qf '%{NAME}|%{VERSION}-%{RELEASE}|%{ARCH}\n'   | sort | sudo tee /root/migration-inventory/packages.txt >/dev/null
sudo systemctl list-unit-files --state=enabled   | sudo tee /root/migration-inventory/enabled-units.txt >/dev/null
sudo ss -lntup | sudo tee /root/migration-inventory/listeners.txt >/dev/null
sudo crontab -l 2>/dev/null | sudo tee /root/migration-inventory/root-crontab.txt >/dev/null

Comparer les paquets ne suffit pas. Avec les responsables des services, inventoriez surcharges systemd, certificats, pare-feu, politiques SELinux personnalisées, cron, UID/GID, jeux de caractères des bases, stockages externes et agents de supervision.

État de référence réseau et sécurité

ip -br address
ip route
sudo firewall-cmd --list-all-zones
getenforce
sudo semanage port -l | sudo tee /root/migration-inventory/selinux-ports.txt >/dev/null
sudo getsebool -a | sudo tee /root/migration-inventory/selinux-booleans.txt >/dev/null
sudo find /etc/systemd/system -type f -print   | sort | sudo tee /root/migration-inventory/systemd-local-files.txt >/dev/null

2. Sauvegarder et tester la restauration

Créez des sauvegardes cohérentes par service. Pour les bases, utilisez les outils de dump ou sauvegarde pris en charge plutôt qu'une copie de fichiers actifs. Préservez séparément les permissions des clés de chiffrement et certificats.

sudo install -d -m 0700 /backup
sudo tar --xattrs --acls --selinux -C /   -czf /backup/centos7-etc-home-$(date +%F).tgz etc home
sudo find /backup -maxdepth 1 -type f -name 'centos7-etc-home-*.tgz' -exec sha256sum {} \; | sudo tee /backup/SHA256SUMS >/dev/null

# Exemple PostgreSQL : vérifier avec la procédure officielle de restauration de la version
set -o pipefail
sudo -u postgres pg_dumpall --clean --if-exists | sudo tee "/backup/postgresql-all-$(date +%F).sql" >/dev/null
La création de fichiers de sauvegarde ne prouve pas que la récupération fonctionne. Ne considérez une sauvegarde comme une solution de retour arrière qu'après restauration sur un serveur de test isolé et validation des transactions applicatives.

3. Construire la cible Rocky Linux

Vérifiez la somme de l'ISO Rocky Linux 8.10 et installez le minimum de paquets. Configurez nom d'hôte, heure, DNS, performances du stockage et SELinux Enforcing avant d'ajouter les dépôts applicatifs.

cat /etc/rocky-release
sudo dnf upgrade --refresh -y
sudo systemctl --failed --no-pager
timedatectl status
chronyc tracking
getenforce
sudo firewall-cmd --state
df -hT
df -i

4. Migrer sélectivement la configuration

Remplacer tout /etc de Rocky Linux 8 par les fichiers CentOS 7 peut casser PAM, les politiques cryptographiques, systemd et le réseau. Comparez les configurations applicatives aux nouvelles valeurs par défaut et retirez les directives non prises en charge.

diff -u /srv/migration/old/app.conf /etc/example/app.conf || true
sudo rsync -aHAXn --numeric-ids   /srv/migration/app-data/ /var/lib/example/

# Copier réellement uniquement après examen de la simulation
sudo rsync -aHAX --numeric-ids   /srv/migration/app-data/ /var/lib/example/
sudo restorecon -RFv /var/lib/example

5. Synchroniser les données et réduire l'interruption

Procédez par copie complète initiale, synchronisations incrémentales, gel final des écritures et dernière synchronisation. Avec une réplication de base ou des dumps logiques, vérifiez la prise en charge de la combinaison des versions majeures source et cible.

# Synchronisation initiale des fichiers : commencer par un dry-run
sudo rsync -aHAXn --delete --numeric-ids   /srv/app-data/ rocky8:/srv/app-data/

# Effectuer la synchronisation initiale après approbation
sudo rsync -aHAX --delete --numeric-ids   /srv/app-data/ rocky8:/srv/app-data/

# Bascule finale : arrêter les écritures applicatives, puis synchroniser les derniers changements
sudo systemctl stop example-app
sudo rsync -aHAX --delete --numeric-ids   /srv/app-data/ rocky8:/srv/app-data/

6. Tester fonctionnalités et performances avant la bascule

curl --fail --silent --show-error https://staging.example.com/health
openssl s_client -connect staging.example.com:443   -servername staging.example.com -verify_return_error </dev/null
ssh rocky8 'systemctl --failed --no-pager'
ssh rocky8 'journalctl -p err -b --no-pager'
ssh rocky8 'ss -lntup'
ssh rocky8 'getenforce'

Testez connexion, lectures/écritures, traitements batch, sauvegardes, supervision, alertes et performances au travers de parcours utilisateur réels. La seule accessibilité réseau ne suffit pas.

7. Basculer DNS ou répartiteur et prévoir le retour arrière

dig +short app.example.com
curl --resolve app.example.com:443:192.0.2.80   --fail --silent --show-error https://app.example.com/health

# Vérifier DNS et certificats après la bascule
dig +trace app.example.com
openssl s_client -connect app.example.com:443   -servername app.example.com -verify_return_error </dev/null

Réduisez les TTL à l'avance et conservez l'ancien serveur avec écritures désactivées au lieu de le supprimer immédiatement. Consignez les critères d'échec mesurables et l'heure limite de retour arrière. Dès que le nouveau serveur accepte des écritures, rétablir simplement le DNS peut perdre des données récentes. Avant retour arrière, arrêtez les écritures des deux côtés et vérifiez le transfert cohérent des changements vers l'ancien serveur. N'y réactivez pas les écritures sans réplication inverse ou transfert validé.

Quand envisager une mise à niveau sur place

N'utilisez ELevate ou un outil similaire qu'après résolution de tous les blocages preupgrade et confirmation de la combinaison source/destination dans la matrice actuelle. Une documentation visant AlmaLinux ne prouve pas la prise en charge de Rocky Linux.

# Pour les parcours exceptionnels, consulter les commandes dans la documentation officielle actuelle
cat /etc/centos-release
sudo yum repolist enabled
sudo rpm -Va | sudo tee /root/preupgrade-rpm-verify.txt >/dev/null
findmnt -T /
df -hT / /var /boot
df -i / /var /boot
N'approuvez une migration sur place qu'après avoir répété l'ensemble de la procédure sur un clone distinct et vérifié le démarrage, les applications et la restauration des sauvegardes. Ne fabriquez pas une destination Rocky non prise en charge en remplaçant arbitrairement des paquets.

Validation de la migration

  1. Consigner le risque de fin de vie CentOS 7 dans l'historique des changements.
  2. Collecter actifs, dépendances, UID/GID et état de sécurité initial.
  3. Restaurer les sauvegardes dans un environnement isolé.
  4. Installer et mettre à jour un nouveau serveur Rocky Linux 8.10.
  5. Transférer la configuration sélectionnée et les données.
  6. Tester transactions réelles et performances.
  7. Basculer DNS/répartiteur avec critères mesurables de retour arrière.
  8. Après observation, bloquer l'accès à CentOS 7 et le retirer du service.

Ressources officielles et articles associés

Conclusion

La migration CentOS 7 vers Rocky Linux la plus prévisible construit un environnement Rocky Linux 8.10 neuf et relie sauvegardes testées, configuration sélective, synchronisation, validation et retour arrière. Vault ne prolonge pas le support CentOS 7, et un parcours sur place ne doit jamais être supposé sans confirmation dans la matrice actuelle.