Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Ansible-Pi 🍓
Ce projet permet de provisionner rapidement et de manière automatisée un ou plusieurs Raspberry Pi avec un environnement moderne comprenant Docker, K3s (Kubernetes allégé), et une suite de supervision complète (Prometheus / Grafana).
📋 Description du Projet
L'automatisation est gérée par Ansible et est découpée en plusieurs rôles :
- Docker : Installe l'environnement d'exécution Docker standardisé avec les dépôts et clés GPG officiels adaptés à l'architecture ARM.
- K3s : Installe et configure le cluster Kubernetes K3s léger, idéal pour l'Internet des Objets (IoT) et le Edge computing.
- Prometheus : Déploie la suite de monitoring
kube-prometheus-stackvia Helm (Prometheus, Grafana, Node Exporter, Alertmanager) avec des configurations optimisées pour ne pas saturer les ressources du Raspberry Pi.
🛠️ Préparation
Prérequis
- Un ordinateur (machine de contrôle) avec Python 3 et pip installés.
- Un Raspberry Pi accessible en réseau local via SSH (avec clé SSH ou mot de passe de connexion/sudo).
1. Cloner le dépôt et entrer dans le dossier
git clone <url-du-depot>
cd ansible-pi
2. Installer les dépendances Python
Il est fortement recommandé d'utiliser un environnement virtuel :
python -m venv venv
# Sur Linux/macOS :
source venv/bin/activate
# Sur Windows (PowerShell) :
.\venv\Scripts\Activate.ps1
# Installer Ansible et les bibliothèques requises :
pip install -r requirements.txt
3. Installer les collections Ansible
Le rôle de monitoring utilise des modules Ansible externes pour piloter Kubernetes et Helm. Installez-les via :
ansible-galaxy collection install -r requirements.yml
🚀 Utilisation du Projet
Pour lancer le provisionnement :
ansible-playbook -i inventory.ini playbook.yml
Ansible vous demandera de saisir :
- L'adresse IP du Raspberry Pi (ex:
192.168.1.50). - L'utilisateur SSH (ex:
piouubuntu, valeur par défaut :pi). - Le mot de passe SSH (utilisé aussi pour sudo).
Ansible effectuera ensuite toutes les étapes de configuration automatiquement.
Description
Languages
Jinja
100%