Compare commits
3 Commits
9e8d248a02
...
82f8a2bfe9
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
82f8a2bfe9 | ||
|
|
5a0a9476be | ||
|
|
9df10d8442 |
61
README.md
Normal file
61
README.md
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
# 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 <url-du-depot>
|
||||||
|
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.
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
[pis]
|
[pis]
|
||||||
pi_node1 ansible_host="{{ target_ip }}" ansible_user="{{ target_user }}" ansible_ssh_private_key_file=~/.ssh/id_rsa
|
pi_node1 ansible_host="{{ target_ip }}" ansible_user="{{ target_user }}"
|
||||||
|
|||||||
@@ -10,6 +10,13 @@
|
|||||||
prompt: "Entrez l'utilisateur SSH"
|
prompt: "Entrez l'utilisateur SSH"
|
||||||
private: no
|
private: no
|
||||||
default: "pi"
|
default: "pi"
|
||||||
|
- name: ssh_password
|
||||||
|
prompt: "Entrez le mot de passe SSH"
|
||||||
|
private: yes
|
||||||
|
|
||||||
|
vars:
|
||||||
|
ansible_ssh_pass: "{{ ssh_password }}"
|
||||||
|
ansible_become_pass: "{{ ssh_password }}"
|
||||||
|
|
||||||
roles:
|
roles:
|
||||||
- docker
|
- docker
|
||||||
|
|||||||
Reference in New Issue
Block a user