Application Web Flask permettant d'évaluer et recommander le meilleur hyperviseur (KVM, XenServer / XCP-ng, VMware ESXi) en fonction des besoins de l'utilisateur (licence, performances, interface graphique, compatibilité Windows, haute disponibilité, budget), puis de déclencher automatiquement le clonage et le démarrage de la machine virtuelle via SSH.
- Évaluation pondérée multicritère : Sélection intelligente basée sur vos préférences et contraintes.
- Déploiement automatisé (SSH) :
- KVM via
virshetvirt-clone. - Xen / XCP-ng via les commandes CLI
xe.
- KVM via
- Interface Web conviviale : Interface moderne basée sur Bootstrap.
- Python 3.10+
- Serveur MySQL / MariaDB (ex: XAMPP, WampServer ou MariaDB natif)
- Accès SSH aux hyperviseurs configurés (KVM, Xen)
git clone https://github.com/savaseiv-create/Hypervisor-Broker.git
cd projet-courtierpython -m venv venv
# Sur Windows :
.\venv\Scripts\activate
# Sur Linux / macOS :
source venv/bin/activatepip install -r requirements.txtCopiez le fichier .env.example vers .env et adaptez les valeurs avec vos identifiants réels :
cp .env.example .envContenu du .env :
# Clé secrète Flask
SECRET_KEY=votre_cle_secrete_aleatoire
# Base de données MySQL
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=
DB_NAME=broker_db
# Hyperviseur KVM
KVM_IP=192.168.1.100
KVM_USER=kvm_user
KVM_PASSWORD=votre_mot_de_passe_kvm
KVM_SOURCE_VM=ubuntu24.04
# Hyperviseur Xen / XCP-ng
XEN_IP=192.168.1.101
XEN_USER=root
XEN_PASSWORD=votre_mot_de_passe_xen
XEN_TEMPLATE_UUID=votre_template_uuid_ici- Créez une base de données nommée
broker_dbdans votre serveur MySQL. - Créez la table
hypervisors:
CREATE TABLE hypervisors (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
open_source TINYINT(1) NOT NULL,
performance VARCHAR(50) NOT NULL,
gui TINYINT(1) NOT NULL,
windows_support TINYINT(1) NOT NULL,
clustering TINYINT(1) NOT NULL,
budget VARCHAR(50) NOT NULL
);- Insérez les données initiales :
python insert_data.pypython app.py
L'application sera accessible sur [http://127.0.0.1:5000](http://127.0.0.1:5000).See the LICENSE file for the license and usage conditions.