Une mise à jour de php ou d’apache qui tourne mal, ça nous est déjà tous arrivé, non ? La mise à jour de certains package peut poser quelques problèmes de compatibilités avec les applications qui tournent sur nos serveurs. Dans ce cas, pas d’autres choix que de faire un rollback.
On va se baser sur une version CentOs 6.X / 7.X ou RHEL 6.X / 7.X, qui est un serveur web, tournant avec httpd, php et openssl.
Mettre à jour un package sur un serveur CentOs / RHEL
Je souhaite mettre à jour ma version d’openSSL, avec la dernière version. tout dabord, je vérifie sur quel version d’openssl je tourne actuellement :
rpm -q openssl
Ensuite, je liste les différentes versions d’openssl disponibles sur mes repos :
yum list openssl
Une fois les différentes versions listées, je me décide à mettre à jour mon package openssl
yum update openssl
Je vérifie que la nouvelle version est correctement installée :
rpm -q openssl

Rollback d’un package sur un serveur CentOs / RHEL
Je viens d’effectuer ma mise à jour, et oups, je me rends compte que mon application favorite ne fonctionne plus ! Il me faut donc faire un rollback sur l’installation que je viens d’effectuer.
Pour faire mon rollback, je vais me baser sur la commande “yum history” qui va me permettre de lister l’historique des transactions effectuées avec Yum, et ainsi, ré appliquer une ancienne transaction (et donc effectuer un rollback).
Lancer la commande suivante :
yum history list all
Ici je n’ai qu’une ligne d’historique, mais si vous en avez plusieurs, il peut être utile d’avoir des détails sur celui-ci. Dans ce cas, notez l’ID et entrez la commande suivante :
yum history info <strong>1</strong>
Maintenant que j’ai retrouvé ma ligne d’historique, je peux executer la commande “yum history undo” pour faire mon rollback :
yum history undo 1
Une fois la commande executée, il n’y a plus qu’à refaire un rpm -q openssl, pour bien validé que notre rollback s’est effectué avec succès ;).
Si vous avez des remarques, questions, n’hésitez pas à utiliser les commentaires ;).