Initialisation de mon HomeLab
Objectifs
Rappel sur les objectifs principaux de ce projet :
-
Le premier, c’est de vous aider à monter en compétences sur les outils que l’on utilise le plus souvent dans la mise en place d’une démarche Devops.
-
Le second permettre de le reconstruire à tout moment à partir de son code.
Composition de Mon Home Lab
Mon Home Lab Devops se compose actuellement de :
- deux mini-pc :
- un switch Ethernet ↗ 8 ports (8 pour ajouter les raspberry Pi) raccordé à ma box internet.
Sur le premier mini-pc tourne :
- un k3s mono noeud hébergeant les runners gitlab et Ansible AWX
- un serveur NFS pour y déposer les données persistantes
Sur le second :
- Libvirt est activé et prêt à héberger des applications à la demande du type : Nexus Repository Manager, Rundeck (en cours d’écriture). D’autres vont suivre. Le tout sera instancié avec du Terraform.
Provisionnement des machines
J’ai fait l’installation de la version server d’Ubuntu 22.04 avec juste le package OpenSSH (synchro des clés depuis mon compte github). J’ai autorisé le compte admuser, créé pendant l’installation, à utiliser sudo sans mot de passe ↗.
Pour simplifier la gestion des machines :
- Sur ma box internet, j’ai alloué des baux statiques.
- J’ai ajouté au fichier /etc/hosts de la machine depuis laquelle je fais l’administration les adresses IP.
Configuration bridge
Pour créer le bridge sur les machines libvirt, j’utilise cette configuration netplan /etc/netplan/00-installer-config.yaml
:
Modifier le nom de l’interface si besoin. Pour avoir son nom vous pouvez utiliser cette commande :
Il faut mettre les bons droits sur le fichier :
Pour appliquer la configuration :
Pour voir si c’est bien br0 qui porte l’adresse réseau :
Première Installation
Clonez le repository ↗ sur votre machine servant à l’installation.
Avant de passer à l’installation il faut générer des certificats avec mkcert
Une fois les machines provisionnées les installations sont faites avec Ansible :
Avant, il faudra certainement adapter certaines choses dans les playbooks ou dans l’inventaire.
Vous pouvez aussi utiliser le Vagrantfile pour tester le tout avant :
La suite
L’automatisation de tout le reste AWX, Gitlab runners, Nexus, Rundeck, …