Ajouter Readme.md

This commit is contained in:
Johnny 2025-12-30 08:19:27 +00:00
parent 84a120e8eb
commit e7e3e9a2b4
1 changed files with 321 additions and 0 deletions

321
Readme.md Normal file
View File

@ -0,0 +1,321 @@
# 🐳 Gestionnaire LXC Proxmox VE
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Bash](https://img.shields.io/badge/Bash-5.0+-green.svg)](https://www.gnu.org/software/bash/)
[![Proxmox](https://img.shields.io/badge/Proxmox-VE%207%2B-orange.svg)](https://www.proxmox.com/)
Script Bash professionnel et sécurisé pour gérer les conteneurs LXC sur Proxmox VE via l'interface en ligne de commande.
![Screenshot](https://via.placeholder.com/800x400.png?text=Gestionnaire+LXC+Proxmox+VE)
## ✨ Fonctionnalités
### 🚀 Gestion des conteneurs
- ✅ **Création** de conteneurs avec configuration complète (CPU, RAM, disque, réseau)
- ▶️ **Démarrage** / ⏹️ **Arrêt** (normal ou forcé)
- 🔄 **Redémarrage** de conteneurs
- 🗑️ **Suppression** avec confirmation de sécurité
- 🔓 **Déverrouillage** de conteneurs bloqués
- 📊 **Affichage** des informations détaillées
- 🖥️ **Connexion** directe au shell du conteneur
- 📋 **Clonage** avec gestion des conteneurs actifs
### 💾 Sauvegarde et restauration
- 💿 **Sauvegarde** avec choix de compression (gzip, lzo, zstd)
- 🔄 **Modes de backup** : snapshot, stop, suspend
- 📂 **Sélection** du stockage de destination
- 🔙 **Restauration** avec sélection numérotée des sauvegardes
- 🗄️ **Support** de tous les stockages connectés (NFS, CIFS, local, etc.)
### 🔒 Sécurité et protection
- 🛡️ **Protection par conteneur** (activation/désactivation)
- 🔐 **Mode protection global** (confirmations renforcées)
- ✅ **Validation stricte** de toutes les entrées utilisateur
- 🚨 **Détection automatique** de la protection lors de la suppression
- 📝 **Confirmations** pour toutes les opérations critiques
### 🎨 Interface utilisateur
- 🌈 **Interface colorée** et intuitive
- 📋 **Sélection numérotée** pour tous les choix
- 📊 **Affichage clair** des informations
- ⚡ **Navigation rapide** dans les menus
## 📋 Prérequis
- **Proxmox VE** 7.0 ou supérieur
- **Bash** 5.0 ou supérieur
- Accès **root** au serveur Proxmox
- Commande `pct` disponible (installée par défaut sur Proxmox)
## 📥 Installation
### Installation rapide
```bash
# Télécharger le script
wget https://raw.githubusercontent.com/votre-repo/proxmox-lxc-manager/main/lxc-manager.sh
# Rendre le script exécutable
chmod +x lxc-manager.sh
# Lancer le script
./lxc-manager.sh
```
### Installation avec Git
```bash
# Cloner le dépôt
git clone https://github.com/votre-repo/proxmox-lxc-manager.git
# Accéder au répertoire
cd proxmox-lxc-manager
# Rendre le script exécutable
chmod +x lxc-manager.sh
# Lancer le script
./lxc-manager.sh
```
### Installation système (optionnel)
```bash
# Copier dans /usr/local/bin
sudo cp lxc-manager.sh /usr/local/bin/lxc-manager
# Rendre exécutable
sudo chmod +x /usr/local/bin/lxc-manager
# Lancer de n'importe où
lxc-manager
```
## 🎮 Utilisation
### Lancement
```bash
./lxc-manager.sh
```
Le script doit être exécuté en tant que **root** ou avec **sudo**.
### Menu principal
```
╔═══════════════════════════════════════════════╗
║ GESTIONNAIRE LXC PROXMOX VE ║
║ Version 2.1 - Sécurisé ║
╚═══════════════════════════════════════════════╝
🔒 Mode protection: ACTIVÉ
Menu Principal:
1) Lister les conteneurs
2) Créer un conteneur
3) Démarrer un conteneur
4) Arrêter un conteneur
5) Redémarrer un conteneur
6) Supprimer un conteneur
7) Déverrouiller un conteneur
8) Sauvegarder un conteneur
9) Restaurer une sauvegarde
10) Afficher les informations
11) Entrer dans un conteneur
12) Cloner un conteneur
13) Gérer la protection d'un conteneur
14) Mode protection global (ACTIVÉ)
0) Quitter
```
## 📖 Guide des fonctionnalités
### 🆕 Création d'un conteneur
Le script vous guide à travers toutes les étapes :
1. **VMID** : Numéro unique du conteneur (100-999999999)
2. **Nom d'hôte** : Nom du conteneur (lettres, chiffres, tirets)
3. **Mot de passe root** : Minimum 8 caractères avec confirmation
4. **Stockage** : Sélection numérotée du stockage
5. **Template** : Choix du système d'exploitation
6. **Ressources** : RAM, Swap, Disque, CPU
7. **Réseau** : Configuration DHCP ou IP statique
8. **Options** : Démarrage automatique, protection
### 💾 Sauvegarde d'un conteneur
Choix disponibles :
**Compression :**
- `gzip` : Rapide, compression moyenne (recommandé)
- `lzo` : Très rapide, faible compression
- `zstd` : Bon compromis vitesse/compression
**Mode de sauvegarde :**
- `snapshot` : Plus rapide, nécessite ZFS/LVM (recommandé)
- `stop` : Arrêt complet du conteneur
- `suspend` : Suspension temporaire
### 🔙 Restauration d'une sauvegarde
Le script vous permet de :
1. Sélectionner le **stockage source** contenant les sauvegardes
2. Choisir la **sauvegarde** à partir d'une liste numérotée avec VMID et date
3. Définir le **nouveau VMID** pour le conteneur restauré
4. Sélectionner le **stockage de destination**
### 📋 Clonage d'un conteneur
Pour les conteneurs en cours d'exécution, 3 options :
1. **Arrêter** le conteneur avant le clonage (recommandé)
2. **Créer un snapshot** et cloner (plus rapide, nécessite ZFS/LVM)
3. **Annuler** l'opération
Le conteneur source est automatiquement redémarré après le clonage si nécessaire.
### 🔒 Protection des conteneurs
**Protection par conteneur :**
- Empêche la suppression accidentelle
- Peut être activée/désactivée individuellement
- Détectée automatiquement lors de la suppression
**Mode protection global :**
- 🔒 **ACTIVÉ** : Confirmations renforcées (taper "SUPPRIMER")
- 🔓 **DÉSACTIVÉ** : Confirmations simples (o/n)
## 🔧 Configuration avancée
### Validation des entrées
Le script valide strictement :
- **VMID** : Format numérique (100-999999999)
- **Nom d'hôte** : RFC 952/1123 (lettres, chiffres, tirets)
- **Adresses IP** : Format CIDR (ex: 192.168.1.100/24)
- **Nombres** : Valeurs positives pour RAM, CPU, disque
### Mode strict Bash
Le script utilise `set -euo pipefail` pour :
- `-e` : Arrêter en cas d'erreur
- `-u` : Détecter les variables non définies
- `-o pipefail` : Détecter les erreurs dans les pipes
## 🐛 Dépannage
### Le script ne démarre pas
```bash
# Vérifier que vous êtes root
whoami
# Si non root, utiliser sudo
sudo ./lxc-manager.sh
# Vérifier que le script est exécutable
ls -l lxc-manager.sh
chmod +x lxc-manager.sh
```
### Erreur "pct: command not found"
Le script doit être exécuté sur un serveur Proxmox VE, pas sur une machine distante.
### Erreur lors de la sauvegarde "wrong content type"
Le stockage sélectionné n'est pas configuré pour accepter les backups. Le script filtre maintenant automatiquement les stockages appropriés.
### Erreur sendmail lors des sauvegardes
C'est une erreur de notification email qui n'empêche pas la sauvegarde de fonctionner. Pour la corriger, configurez `msmtp` sur votre serveur Proxmox.
### Impossible de cloner un conteneur en cours d'exécution
Utilisez l'option 1 du menu de clonage pour arrêter le conteneur avant le clonage, ou l'option 2 si votre stockage supporte les snapshots (ZFS/LVM).
## 🤝 Contribution
Les contributions sont les bienvenues ! Pour contribuer :
1. **Fork** le projet
2. Créez une **branche** pour votre fonctionnalité (`git checkout -b feature/AmazingFeature`)
3. **Commit** vos changements (`git commit -m 'Add some AmazingFeature'`)
4. **Push** vers la branche (`git push origin feature/AmazingFeature`)
5. Ouvrez une **Pull Request**
### Standards de code
- Utiliser `shellcheck` pour valider le code
- Suivre les conventions de nommage existantes
- Commenter les fonctions complexes
- Tester sur Proxmox VE 7 et 8
## 📝 Changelog
### Version 2.1 (2025-01-30)
#### Ajouté
- Protection par conteneur (activation/désactivation)
- Mode protection global avec confirmations renforcées
- Sélection numérotée pour tous les stockages
- Filtrage intelligent des stockages pour backups
- Gestion des conteneurs actifs lors du clonage
- Extraction automatique du VMID et date pour les sauvegardes
#### Amélioré
- Validation stricte de toutes les entrées
- Gestion d'erreurs avec mode strict Bash
- Interface utilisateur plus intuitive
- Messages d'erreur plus clairs
#### Corrigé
- Affichage des codes couleur dans tous les menus
- Gestion des stockages incompatibles avec les backups
- Clonage des conteneurs en cours d'exécution
### Version 2.0 (2025-01-29)
#### Ajouté
- Sécurité renforcée avec `set -euo pipefail`
- Validation de toutes les entrées utilisateur
- Fonctions de validation (VMID, hostname, IP, nombres)
- Gestion centralisée des erreurs
### Version 1.0 (2025-01-28)
- Version initiale avec fonctionnalités de base
## 📄 Licence
Ce projet est sous licence MIT - voir le fichier [LICENSE](LICENSE) pour plus de détails.
## 👨‍💻 Auteur
**Généré par Claude** - Assistant IA d'Anthropic
## 🙏 Remerciements
- Proxmox VE pour leur excellent système de virtualisation
- La communauté open source pour leurs contributions
- Tous les utilisateurs qui testent et améliorent ce script
## 📞 Support
- 🐛 **Issues** : [GitHub Issues](https://github.com/votre-repo/proxmox-lxc-manager/issues)
- 💬 **Discussions** : [GitHub Discussions](https://github.com/votre-repo/proxmox-lxc-manager/discussions)
- 📖 **Wiki** : [Documentation complète](https://github.com/votre-repo/proxmox-lxc-manager/wiki)
## ⭐ Star History
Si ce projet vous est utile, n'hésitez pas à lui donner une étoile ! ⭐
---
**Note** : Ce script est fourni "tel quel", sans garantie d'aucune sorte. Testez toujours sur un environnement de test avant de l'utiliser en production.