# 🐳 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/) ## 📋 Description Script bash interactif pour la gestion complète des conteneurs LXC sur Proxmox VE. Cette interface en ligne de commande offre une alternative conviviale aux commandes natives `pct` avec des fonctionnalités de sécurité avancées. ## ✨ Fonctionnalités - ✅ **Gestion complète des conteneurs** : création, démarrage, arrêt, redémarrage, suppression - 🔒 **Système de protection** : double confirmation pour les opérations critiques - 💾 **Gestion des sauvegardes** : sauvegarde, restauration, suppression - 🐑 **Clonage de conteneurs** : avec options de snapshot - ⚙️ **Configuration avancée** : nesting, FUSE, NFS, CIFS - 📊 **Visualisation** : affichage coloré des informations - 🔧 **Modification en temps réel** : options de conteneurs sans redémarrage - 🛡️ **Validation stricte** : vérification des entrées utilisateur ## 🚀 Installation 1. Copiez le script sur votre serveur Proxmox VE : ```bash curl -o /usr/local/bin/lxc-manager.sh https://raw.githubusercontent.com/votre-repo/lxc-manager/main/script.sh chmod +x /usr/local/bin/lxc-manager.sh ``` 2. Créez un alias pour une utilisation facile : ```bash echo 'alias lxc-manager="/usr/local/bin/lxc-manager.sh"' >> ~/.bashrc source ~/.bashrc ``` ## 📖 Utilisation ### Lancement ```bash sudo lxc-manager.sh ``` Ou via l'alias (si configuré) : ```bash sudo lxc-manager ``` ### Menu Principal Le script présente un menu interactif avec les options suivantes : | Option | Description | Commande équivalente | |--------|-------------|---------------------| | 1 | Lister les conteneurs | `pct list` | | 2 | Créer un conteneur | `pct create` | | 3 | Démarrer un conteneur | `pct start` | | 4 | Arrêter un conteneur | `pct stop` / `pct shutdown` | | 5 | Redémarrer un conteneur | `pct reboot` | | 6 | Supprimer un conteneur | `pct destroy` | | 7 | Déverrouiller un conteneur | `pct unlock` | | 8 | Sauvegarder un conteneur | `vzdump` | | 9 | Restaurer une sauvegarde | `pct restore` | | 10 | Supprimer des sauvegardes | `pvesm free` | | 11 | Afficher les informations | `pct config` + `pct status` | | 12 | Entrer dans un conteneur | `pct enter` | | 13 | Cloner un conteneur | `pct clone` | | 14 | Modifier les options | `pct set --features` | | 15 | Gérer la protection | `pct set --protection` | | 16 | Mode protection global | Configuration interne | | 0 | Quitter | Exit | ## 🔧 Configuration ### Options avancées Le script permet de configurer les fonctionnalités LXC suivantes : - **Nesting** : Permet l'exécution de Docker dans LXC - **FUSE** : Support des systèmes de fichiers utilisateur - **NFS** : Montage de partages NFS - **CIFS/SMB** : Montage de partages Windows ### Mode Protection Le système de protection offre deux niveaux : 1. **Protection globale** : Requiert des confirmations spécifiques pour les opérations critiques 2. **Protection par conteneur** : Empêche la suppression accidentelle (équivalent à `--protection 1`) ## 🛠️ Fonctions détaillées ### Création de conteneur - Validation des VMID (100-999999999) - Validation des noms d'hôte - Validation des adresses IP - Sélection de template interactif - Configuration des ressources (RAM, CPU, stockage) - Options réseau (DHCP/Statique) - Mode privilégié/non-privilégié ### Sauvegarde - Support de multiples algorithmes de compression (gzip, lzo, zstd) - Différents modes de sauvegarde (snapshot, stop, suspend) - Sélection de stockage dédié ### Clonage - Clonage de conteneurs en cours d'exécution - Options de snapshot pour plus de rapidité - Attribution automatique de nouveau VMID ## 🔐 Sécurité ### Validations - VMID : format numérique, plage valide, unicité - Noms d'hôte : conformité RFC 1123 - Adresses IP : format CIDR valide - Mots de passe : minimum 8 caractères ### Protections - Contrôle des privilèges root - Vérification de l'environnement Proxmox - Confirmations pour les opérations destructives - Protection contre la suppression accidentelle ## 🎨 Interface ### Couleurs - 🔴 Rouge : erreurs, avertissements critiques - 🟢 Vert : succès, confirmations - 🟡 Jaune : avertissements, informations - 🔵 Bleu : menus, informations générales - 🟣 Magenta : options spéciales ### Logo Affichage d'un en-tête stylisé avec : - Nom du gestionnaire - Version du script - État de la protection ## ⚠️ Limitations - Nécessite un serveur Proxmox VE - Doit être exécuté en tant que root - Dépend des commandes `pct`, `pvesm`, `vzdump` - Certaines fonctionnalités nécessitent ZFS/LVM ## 🔄 Dépendances - **Proxmox VE** 6.x ou supérieur - **Bash** 4.4 ou supérieur - **Outils Proxmox** : `pct`, `pvesm`, `vzdump` ## 📝 Journalisation Le script n'implémente pas de journalisation interne mais utilise les logs système de Proxmox. Toutes les opérations sont tracées dans : - `/var/log/syslog` - `/var/log/pve/tasks/` ## 🚨 Dépannage ### Erreurs courantes 1. **"Ce script doit être exécuté sur un serveur Proxmox VE"** - Vérifiez que les commandes `pct` et `pvesm` sont disponibles - Assurez-vous d'être sur un nœud Proxmox 2. **"VMID invalide"** - Utilisez un nombre entre 100 et 999999999 - Vérifiez que le VMID n'existe pas déjà 3. **Échec de sauvegarde** - Vérifiez les permissions sur le stockage - Assurez-vous que le stockage accepte les backups - Vérifiez l'espace disponible ### Mode debug Ajoutez `set -x` au début du script pour activer le mode debug : ```bash #!/bin/bash set -x # Ajoutez cette ligne # ... reste du script ``` ## 🤝 Contribution Les contributions sont les bienvenues ! Veuillez : 1. Fork le projet 2. Créer une branche pour votre fonctionnalité 3. Tester vos modifications 4. Soumettre une pull request ## 📄 Licence Ce script est distribué sous licence MIT. Voir le fichier `LICENSE` pour plus de détails. ## 🔗 Ressources - [Documentation officielle Proxmox](https://pve.proxmox.com/wiki/Linux_Container) - [Guide LXC de Proxmox](https://pve.proxmox.com/pve-docs/pve-admin-guide.html#pct_lxc) - [Forum Proxmox](https://forum.proxmox.com/) --- **Note** : Ce script est un outil de gestion et ne remplace pas une bonne compréhension de l'administration Proxmox. Toujours tester les opérations critiques dans un environnement de développement avant la production. **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. **Hébergé sur** : [git.h3campus.fr](https://git.h3campus.fr/Johnny/lxc-manager)