# 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-stack` via 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 ```bash git clone cd ansible-pi ``` ### 2. Installer les dépendances Python Il est fortement recommandé d'utiliser un environnement virtuel : ```bash 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 : ```bash ansible-galaxy collection install -r requirements.yml ``` --- ## 🚀 Utilisation du Projet Pour lancer le provisionnement : ```bash ansible-playbook -i inventory.ini playbook.yml ``` Ansible vous demandera de saisir : 1. **L'adresse IP du Raspberry Pi** (ex: `192.168.1.50`). 2. **L'utilisateur SSH** (ex: `pi` ou `ubuntu`, valeur par défaut : `pi`). 3. **Le mot de passe SSH** (utilisé aussi pour sudo). Ansible effectuera ensuite toutes les étapes de configuration automatiquement.