Ajouter Readme.md
This commit is contained in:
parent
84a120e8eb
commit
e7e3e9a2b4
|
|
@ -0,0 +1,321 @@
|
|||
# 🐳 Gestionnaire LXC Proxmox VE
|
||||
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
[](https://www.gnu.org/software/bash/)
|
||||
[](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.
|
||||
|
||||

|
||||
|
||||
## ✨ 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.
|
||||
Loading…
Reference in New Issue