Introduction
Dans le cadre d’une rĂ©cente formation DevOps pour l’obtention d’un Titre Professionnel Administrateur Système DevOps, je me suis lancĂ© dans l’idĂ©e de crĂ©er un HomeLab DevOps, c’est Ă dire un laboratoire informatique pour expĂ©rimenter les bonnes pratiques de DevOps.
Pré-requis
- Machine puissante
- Avec une prise ethernet (RJ45), connectée à la box
- Système d’exploitation dessus
- Accès distant
- Configuration pour accès extérieur - si besoin
- Sécurisation : ufw, fail2ban, SSH securisé
- Puis installation et configuration de Kubernetes dessus
Objectif
- Lancer des services et/ou applications
- Accès par l’extĂ©rieur (internet)
- Nom de domaine + sous-domaines
- Stockage de données (localpath ?)
- Supervision (monitoring + alertes)
- Sauvegardes de données
- Base de données
- Documentation
RĂ©flexion
Virtualisation
Pour s’entraĂ®ner aux diffĂ©rentes installations, la virtualisation est une bonne idĂ©e.
Je vise QEMU-KVM (qemu-desktop sous Arch) avec virt-manager (pour créer des machines avec des scripts).
Système d’exploitation
- Ubuntu Server 24.04
- ArchLinux
- Talos Linux : Immutable + API pour configurer ce qu’on veut (descriptible dans un fichier, Ă la DevOps)
Il faut sûrement créer des ISO soi-même !
Comment automatiser l’installation ?
- Ansible
- Terraform ? (provider Talos)
- Preseed pour Debian/Ubuntu ?
Pour :
- ufw, fail2ban, sshd
- création utilisateurs
- installer dépendances k8s ?
SĂ©curisation
- Pare-feu : ufw
- Accès distant (SSH) : Cf. Mozilla SSH guidelines
- fail2ban : pour bannir les essais trop répétés
Kubernetes
- k3sup pour installation ? (sauf si Talos) Avec writemode 644 ? + ipv6cloud ?
- MetalLB comme network load balancer ? Avec Flannel comme network mode pour kubernetes ? (pas possible si k3s)
- Usage de FluxCD/ArgoCD pour peupler le cluster avec ingress, cert-manager, etc. ?
- Puis nginx-ingress pour load balancer kubernetes ?
- cert-manager pour certificats
- Stockage avec local-path-provisioner pour le stockage
- système de backup ?
- supervision ?
- BDD ?
Documentation
Disponible sur https://odtre.gitlab.io/