Virtualisation · 7 min read · Jan 31, 2026

Virtualisation KVM avec Enomalism 2 sur un serveur Fedora 10

Virtualisation KVM avec Enomalism 2 sur un serveur Fedora 10

Version 1.0
Auteur : Falko Timme

Enomalism ECP (Elastic Computing Platform) fournit un panneau de contrôle basé sur le web qui vous permet de concevoir, déployer et gérer des machines virtuelles sur un ou plusieurs systèmes hôtes (dans le cas de plusieurs systèmes, nous parlons d’un cluster ou d’un cloud). Cet article montre comment vous pouvez utiliser Enomalism (également connu sous le nom d’Enomaly) pour gérer des invités KVM sur un serveur Fedora 10.

Je ne donne aucune garantie que cela fonctionnera pour vous !

1 Remarque préliminaire

J’utilise ici un serveur Fedora 10 avec le nom d’hôte server1.example.com et l’adresse IP 192.168.0.100 comme mon hôte KVM. Le serveur est situé dans un réseau privé avec un serveur DHCP (sur le routeur, IP 192.168.0.1). L’utilisation d’Enomalism peut être différente si vous l’utilisez dans un réseau public.

Avant de commencer, exécutez

system-config-firewall

et désactivez le pare-feu.

Assurez-vous également que SELinux est désactivé. Ouvrez /etc/selinux/config…

vi /etc/selinux/config

… et définissez SELINUX sur disabled :

| # Ce fichier contrôle l'état de SELinux sur le système. # SELINUX= peut prendre l'une de ces trois valeurs : # enforcing - La politique de sécurité SELinux est appliquée. # permissive - SELinux imprime des avertissements au lieu d'appliquer. # disabled - Aucune politique SELinux n'est chargée. SELINUX=disabled # SELINUXTYPE= peut prendre l'une de ces deux valeurs : # targeted - Les processus ciblés sont protégés, # mls - Protection Multi Level Security. SELINUXTYPE=targeted |

Exécutez

setenforce 0

… pour que le changement prenne effet.

Veuillez vérifier si votre CPU prend en charge la virtualisation matérielle - si c’est le cas, la commande

egrep '(vmx|svm)' --color=always /proc/cpuinfo

devrait afficher quelque chose, par exemple comme ceci :

[root@server1 ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo  
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall  
 nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch  
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall  
 nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch  
[root@server1 ~]#

Si rien n’est affiché, alors votre processeur ne prend pas en charge la virtualisation matérielle, et vous devez vous arrêter ici.

2 Installation d’Enomalism 2

D’abord faites ceci :

wget http://downloads.sourceforge.net/enomalism/enomalism.public  
rpm --import enomalism.public
wget http://downloads.sourceforge.net/enomalism/enomalism001.pubkey.asc  
rpm --import enomalism001.pubkey.asc

Pour installer KVM et Qemu, nous exécutons

yum install libvirt libvirt-python kvm qemu
ln -s /usr/bin/qemu-kvm /usr/bin/kvm

Ensuite, démarrez le démon libvirt :

/etc/init.d/libvirtd start

Pour vérifier si KVM a été installé avec succès, exécutez

virsh -c qemu:///system list

Cela devrait afficher quelque chose comme ceci :

[root@server1 ~]# virsh -c qemu:///system list  
 Id Name                 State  
----------------------------------  
  
[root@server1 ~]#

Si cela affiche une erreur à la place, alors quelque chose a mal tourné.

Ensuite, nous devons configurer un pont réseau sur notre serveur afin que nos machines virtuelles puissent être accessibles depuis d’autres hôtes comme si elles étaient des systèmes physiques dans le réseau.

Pour ce faire, nous installons le paquet bridge-utils…

yum install bridge-utils

… et configurons un pont. Supprimez les liens de démarrage système pour NetworkManager et créez des liens de démarrage système pour le réseau :

chkconfig --del NetworkManager  
chkconfig --levels 235 network on

Ensuite, créez le fichier /etc/sysconfig/network-scripts/ifcfg-virbr0 (veuillez utiliser les valeurs BOOTPROTO, DNS1 (plus tous les autres paramètres DNS, le cas échéant), GATEWAY, IPADDR, NETMASK et SEARCH du fichier /etc/sysconfig/network-scripts/ifcfg-eth0) :

vi /etc/sysconfig/network-scripts/ifcfg-virbr0

| DEVICE=virbr0 TYPE=Bridge BOOTPROTO=static DNS1=145.253.2.75 GATEWAY=192.168.0.1 IPADDR=192.168.0.100 NETMASK=255.255.255.0 ONBOOT=yes SEARCH="example.com" |

Modifiez /etc/sysconfig/network-scripts/ifcfg-eth0 comme suit (commentez BOOTPROTO, DNS1 (et tous les autres serveurs DNS, le cas échéant), GATEWAY, IPADDR, NETMASK et SEARCH et ajoutez BRIDGE=virbr0) :

vi /etc/sysconfig/network-scripts/ifcfg-eth0

| # nVidia Corporation Inconnu (0x0760) DEVICE=eth0 #BOOTPROTO=static #DNS1=145.253.2.75 #GATEWAY=192.168.0.1 HWADDR=00:1e:90:f3:f0:02 #IPADDR=192.168.0.100 #NETMASK=255.255.255.0 ONBOOT=yes #SEARCH="example.com" BRIDGE=virbr0 |

Ensuite, redémarrez le système :

reboot

Après le redémarrage, exécutez

ifconfig

Cela devrait maintenant afficher le pont réseau (virbr0) :

[root@server1 ~]# ifconfig  
eth0      Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02  
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:1611 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:1986 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:133898 (130.7 KiB)  TX bytes:2092110 (1.9 MiB)  
          Interrupt:22 Base address:0xa000  
  
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0  
          inet6 addr: ::1/128 Scope:Host  
          UP LOOPBACK RUNNING  MTU:16436  Metric:1  
          RX packets:17 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:17 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:1040 (1.0 KiB)  TX bytes:1040 (1.0 KiB)  
  
virbr0    Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02  
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0  
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:1533 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:1936 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:95507 (93.2 KiB)  TX bytes:2076556 (1.9 MiB)  
  
[root@server1 ~]#

Aussi, le module du noyau KVM devrait maintenant être chargé :

lsmod | grep -i kvm
[root@server1 ~]# lsmod | grep -i kvm  
kvm_amd                37644  2  
kvm                   137976  1 kvm_amd  
[root@server1 ~]#

(Cette sortie provient d’un système avec un processeur AMD-V. Si votre système utilise un processeur Intel VT, il devrait afficher quelque chose comme kvm_intel.)

Maintenant, nous téléchargeons le dernier paquet Enomalism.rpm depuis http://sourceforge.net/project/showfiles.php?group_id=164855&package_id=186866&release_id=667675, par exemple comme suit (veuillez vous assurer de récupérer le paquet PY2.5, pas PY2.4 !) :

wget http://dfn.dl.sourceforge.net/sourceforge/enomalism/enomalism2-2.2.3.noarch.PY2.5.rpm

Après que le téléchargement soit terminé, nous installons Enomalism comme suit :

yum install enomalism2-2.2.3.noarch.PY2.5.rpm

Ensuite, nous créons les liens de démarrage système pour MySQL (afin que MySQL démarre automatiquement chaque fois que le système démarre) et démarrons le serveur MySQL :

chkconfig --levels 235 mysqld on  
/etc/init.d/mysqld start

Exécutez

mysqladmin -u root password yourrootsqlpassword  
mysqladmin -h server1.example.com -u root password yourrootsqlpassword

pour définir un mot de passe pour l’utilisateur root (sinon, n’importe qui peut accéder à votre base de données MySQL !).

Si la dernière commande vous renvoie une erreur…

[root@server1 named]# mysqladmin -h server1.example.com -u root password yourrootsqlpassword  
mysqladmin: connect to server at 'server1.example.com' failed  
error: 'Access denied for user 'root'@'localhost' (using password: NO)'  
[root@server1 named]#

… nous pouvons définir le mot de passe comme suit : connectez-vous à MySQL :

mysql -u root -p

Tapez le mot de passe pour l’utilisateur root MySQL. Ensuite, dans le shell MySQL, faites ceci :

mysql> USE mysql;
mysql> UPDATE user SET Password = password('yourrootsqlpassword') WHERE Host = 'server1.example.com' AND User = 'root';
mysql> UPDATE user SET Password = password('yourrootsqlpassword') WHERE Host = '127.0.0.1' AND User = 'root';

Exécutez

mysql> SELECT * FROM user;

pour vous assurer que toutes les lignes où l’utilisateur est root ont un mot de passe.

Si tout semble correct, exécutez

mysql> FLUSH PRIVILEGES;

… et quittez le shell MySQL :

mysql> quit;

Maintenant, nous devons configurer Enomalism. Exécutez

cd /opt/enomalism2  
scripts/init-db.sh yourrootsqlpassword enomalism enomalismpassword

Remplacez yourrootsqlpassword par votre mot de passe root MySQL. enomalism est le nom de l’utilisateur de base de données qu’Enomalism utilisera pour se connecter à la base de données MySQL, et enomalismpassword est le mot de passe de la base de données pour l’utilisateur enomalism. Remplacez les deux par un nom d’utilisateur/mot de passe de votre choix.

Dans le répertoire /opt/enomalism2, il devrait y avoir un fichier appelé server1.example.com.cfg. Nous copions ce fichier dans le répertoire /opt/enomalism2/config :

cp server1.example.com.cfg config/server1.example.com.cfg

Exécutez

uuidgen

et notez l’ID que la commande génère (nous en avons besoin à l’étape suivante où nous modifions /opt/enomalism2/config/server1.example.com.cfg) :

[root@server1 enomalism2]# uuidgen  
2d54480f-66c6-4c15-aafc-7242208456e0  
[root@server1 enomalism2]#

Maintenant, nous éditons /opt/enomalism2/config/server1.example.com.cfg :

vi config/server1.example.com.cfg

Veuillez ajuster les quatre valeurs suivantes :

| [...] sqlobject.dburi="mysql://enomalism:enomalismpassword@localhost:3306/enomalism2" [...] enomalism2.baseurl="http://192.168.0.100:8080/rest/" [...] enomalism2.ip_addr="192.168.0.100" [...] enomalism2.self="2d54480f-66c6-4c15-aafc-7242208456e0" [...] |

Assurez-vous d’utiliser le bon utilisateur de base de données et le bon mot de passe pour la base de données MySQL et la bonne adresse IP pour les deux paramètres suivants. Dans la ligne enomalism2.self, vous devez utiliser l’ID généré par uuidgen.

Vous trouverez également les paramètres enomalism2.drivestorage=’file’ et enomalism2.storagetarget=’file:///xen/‘ dans ce fichier. Actuellement, Enomalism ne prend pas en charge LVM, donc vous ne devez pas changer ces paramètres !

Ensuite, éditez /etc/libvirt/qemu.conf…

vi /etc/libvirt/qemu.conf

… et décommentez la ligne vnc_listen = “0.0.0.0” :

| [...] vnc_listen = "0.0.0.0" [...] |

(Sinon, vous ne pourrez pas vous connecter aux invités KVM via VNC depuis une machine distante !)

Redémarrez libvirtd ensuite :

/etc/init.d/libvirtd restart

Maintenant, nous créons les liens de démarrage système pour Enomalism et le démarrons :

chkconfig --levels 235 enomalism2.sh on  
/etc/init.d/enomalism2.sh start

Maintenant, ouvrez un navigateur et allez à http://192.168.0.100:8080. Cela devrait terminer l’installation d’Enomalism :

Cliquez sur le lien Cliquez ici pour utiliser Enomalism2 ! :

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.