Go to file
Johnny 9fbef4340e Actualiser LICENSE 2025-12-30 10:35:11 +00:00
LICENSE Actualiser LICENSE 2025-12-30 10:35:11 +00:00
Readme.md Actualiser Readme.md 2025-12-30 08:21:34 +00:00
lxc-manager.sh Ajouter lxc-manager.sh 2025-12-30 08:18:59 +00:00

Readme.md

🐳 Gestionnaire LXC Proxmox VE

License: MIT Bash Proxmox

Script Bash professionnel et sécurisé pour gérer les conteneurs LXC sur Proxmox VE via l'interface en ligne de commande.

Screenshot

✹ 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

# Télécharger le script
wget https://git.h3campus.fr/Johnny/lxc-manager/raw/branch/main/lxc-manager.sh

# Rendre le script exécutable
chmod +x lxc-manager.sh

# Lancer le script
./lxc-manager.sh

Installation avec Git

# Cloner le dépÎt
git clone https://git.h3campus.fr/Johnny/lxc-manager.git

# Accéder au répertoire
cd lxc-manager

# Rendre le script exécutable
chmod +x lxc-manager.sh

# Lancer le script
./lxc-manager.sh

Installation systĂšme (optionnel)

# 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

./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

# 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 sur Gitea
  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 sur https://git.h3campus.fr/Johnny/lxc-manager

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 pour plus de détails.

đŸ‘šâ€đŸ’» Auteur

Johnny - Profil Gitea

Développé avec l'assistance de Claude - Assistant IA d'Anthropic

🙏 Remerciements

  • Proxmox VE pour leur excellent systĂšme de virtualisation
  • La communautĂ© H3 Campus pour leur soutien
  • La communautĂ© open source pour leurs contributions
  • Tous les utilisateurs qui testent et amĂ©liorent ce script

📞 Support

⭐ Star le projet

Si ce projet vous est utile, n'hésitez pas à lui donner une étoile sur Gitea ! ⭐


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