Skip to content

CentOS Website

CentOS Website

Overview

The centos.org website is a static one, built by Jekyll, from sources located in git, and then pushed out to some nodes (dns round-robin)

The workflow goes like this:

  • Git commits land on git
  • either through direct push(es) (someone having RWC rights on that git repo)
  • either through PR against it, then merged
  • The node in ansible defined in httpd-www-staging-nodes (having the role-httpd-www-staging.yml playbook applied, itself importing the httpd role and then vhost-www-staging.yml task from that role) will check if there are new commits in upstream git repo and if that's the case, call jekyll build command (through podman container) to build the website
  • After succesful build, that node, through specific unprivileged user key, pushes the rendered website to all nodes in the httpd-www-nodes

Note

Apart from the git part for website itself, some parts are rendered from other sources. For example https://www.centos.org/download/mirrors/ is rendered through same Jekyll process but with needed assets files not being in git, but rather dynamically fetched from https://mirror-status.centos.org (to build a current map of up2date and validated mirrors)

Also worth knowing that there are some nodes shared with the Artwork SIG in the dev environment (see ansible dev inventory) where they can test some layout/theme changes (like for example https://www.dev.centos.org) and then come with a PR against some roles before being rolled out everywhere