Création du site
Défi organisationel
La création du site a surtout été l'envie de mettre en place un déploiement autonome d'une production personnel depuis le push sur GIT jusqu'à la mise en ligne. C'est ce qui est en place ici avec un site static compilé, une gestion des sources du site sur un serveur Gitea, une compilation et une mise en production depuis un fichier Jenkins et une mise à disposition du site via Docker.
Mon laboratoire
Ceci fait de ce site un laboratoire pour moi de technique DevOps:
- automatisation d'installation
- automatisation de compilation
- automatisation de déploiement
- mise en place d'outils de contrôle
Cela me permet d'accroître mes compétences sur les outils utilisés voir d'en découvrir de nouveaux ou de plus adapté à mes besoins.
Détails techniques
Le site est compilé via un outils écrit en RUST nommé COBALT. Il utilise le markdown principalement pour sa partie blog et le moteur de rendu Liquid, réécrit en RUST pour l'occasion.
Tout son code est versionné sur un serveur Gitea autohébergé et un webhook paramétré pour lancer une compilation sur Jenkins via un JenkisFile.
Cette compilation est réalisé via un agent utilisant une image Docker basé sur RSUT. Cette image installe Cobalt depuis ses sources puis récupère les sources du site sur Gitea pour les compilés avec Cobalt.
Une fois cela fait, Jenkins créé une image NGINX avec comme source le site compilé. Cette image est alors hébergé sur un magasin Docker interne.
Jenkins se connecte alors au Docker du serveur de PROD pour lancer la nouvelle image du site. La mise en PROD se fait au travers de Traefik.