Mon homelab/infrastructure informatique couvre mes besoins personnels et ceux de ma petite entreprise familiale. Il se compose principalement de :

  • Un cluster Incus avec deux mini-PC sur site et un serveur dédié Hetzner hors site
  • Deux adresses IPv4 (une à domicile, une chez Hetzner)
  • Trois préfixes IPv6 (un /48 à domicile et deux /64 chez Hetzner)

OpenTofu crée mes instances Incus et les autres ressources associées, tandis qu’Ansible approvisionne ces ressources et les maintient.

Ansible ne me permettra pas de reconstruire l’intégralité de l’infrastructure à partir de zéro, il ne s’agit donc pas d’une automatisation complète. J’applique les principes d’« automatisation incrémentale » tels que décrits dans cet épisode 18 du podcast Dead Code.

Dans Ansible, je stocke :

  • les secrets à l’aide de sops et age (j’adore le paradigme sops edit foobar.sops.yml)
  • les fichiers de configuration (principalement sous forme de templates)
  • les tâches de gestion des mises à jour (apt-get update, apt-get upgrade)

Dans Ansible, je ne stocke pas :

  • les données
  • la logique de restauration des sauvegardes

Ma tâche actuelle est de remettre de l’ordre dans mon DNS. Je m’appuierai bientôt sur deux serveurs PowerDNS autoritaires avec des backends PostgreSQL (un pour chaque adresse IPv4).

Ansible installe PowerDNS et PostgreSQL. Je crée et peuple les zones manuellement.

Je déploierai ensuite Unbound pour la récursion DNS et le blocage de publicités.