CentOS 7 Life Support

IBM has chosen to destroy CentOS.  RHEL 7 is now past regular EOL and is on extended support.

On July 5, 2024, mirrors for package management of CentOS 7 are no longer working.  Content is still available, but only in the vault.  Ideally, all systems would be migrated to a current Debian release.  For those where short term migration is not an option, I set up a quick mirror list generator for CentOS.  It is available at centosmirrorlist.randu.me over both http and https.  Be aware that you could always adjust the base repo location to point directly to a single mirror.

Usage

Adjust any repos pointing to mirrorlist.centos.org to centosmirrorlist.randu.me.  

sed -i 's/http://mirrorlist.centos.org/http://centosmirrorlist.randu.me/g' /etc/yum.repos.d/*.repo

Architecture

Some of the choices here were a combination of using what I already had available and trying some tools I have not previously used.

The code backing this is a very simple Go application using no external libraries and is around ~100 LOC.

I set up a new service using Google Cloud Run using the console.  During setup, this gave an option to automatically pull from github and integrate their CI/CD system.  Any push to the main branch of the repo will automatically build and deploy.

In front of all this is a pull endpoint on bunny cdn serving out the updated mirror list to the public.  The CDN endpoint is configured to serve cached responses during update and if the source service is offline.

Server List

At the moment, the following vault sources are returned:

  • vault.centos.org
  • archive.kernel.org/centos-vault
  • mirror.nsc.liu.se/centos-store

The application will make it easy to add/remove mirrors, including private mirrors as a safety mechanism in the event that IBM decides to push an update killing the vault or in the event that someone puts up an updates mirror containing packages from extended support RHEL 7.