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 therole-httpd-www-staging.yml
playbook applied, itself importing the httpd role and thenvhost-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