Virtualisierung · 7 min read · Jan 31, 2026

KVM-Virtualisierung Mit Enomalism 2 Auf Einem Fedora 10 Server

KVM-Virtualisierung Mit Enomalism 2 Auf Einem Fedora 10 Server

Version 1.0
Autor: Falko Timme

Enomalism ECP (Elastic Computing Platform) bietet ein webbasiertes Steuerfeld, mit dem Sie virtuelle Maschinen auf einem oder mehreren Hostsystemen (im Falle mehrerer Systeme sprechen wir von einem Cluster oder einer Cloud) entwerfen, bereitstellen und verwalten können. Dieser Artikel zeigt, wie Sie Enomalism (auch bekannt als Enomaly) verwenden können, um KVM-Gäste auf einem Fedora 10-Server zu verwalten.

Ich gebe keine Garantie, dass dies bei Ihnen funktioniert!

1 Vorbemerkung

Ich verwende hier einen Fedora 10-Server mit dem Hostnamen server1.example.com und der IP-Adresse 192.168.0.100 als meinen KVM-Host. Der Server befindet sich in einem privaten Netzwerk mit einem DHCP-Server (auf dem Router, IP 192.168.0.1). Die Verwendung von Enomalism kann anders sein, wenn Sie es in einem öffentlichen Netzwerk verwenden.

Bevor wir beginnen, führen Sie

system-config-firewall

aus und deaktivieren Sie die Firewall.

Stellen Sie auch sicher, dass SELinux deaktiviert ist. Öffnen Sie /etc/selinux/config…

vi /etc/selinux/config

… und setzen Sie SELINUX auf disabled:

| # Diese Datei steuert den Zustand von SELinux im System. # SELINUX= kann einen dieser drei Werte annehmen: # enforcing - SELinux-Sicherheitsrichtlinie wird durchgesetzt. # permissive - SELinux gibt Warnungen aus, anstatt durchzusetzen. # disabled - Keine SELinux-Richtlinie wird geladen. SELINUX=disabled # SELINUXTYPE= kann einen dieser beiden Werte annehmen: # targeted - Zielprozesse sind geschützt, # mls - Multi Level Security-Schutz. SELINUXTYPE=targeted |

Führen Sie

setenforce 0

… aus, damit die Änderung wirksam wird.

Bitte überprüfen Sie, ob Ihre CPU die Hardwarevirtualisierung unterstützt - wenn dies der Fall ist, sollte der Befehl

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

etwas anzeigen, z.B. so:

[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 ~]#

Wenn nichts angezeigt wird, unterstützt Ihr Prozessor keine Hardwarevirtualisierung, und Sie müssen hier aufhören.

2 Installation von Enomalism 2

Zuerst tun Sie dies:

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

Um KVM und Qemu zu installieren, führen wir aus

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

Dann starten Sie den libvirt-Daemon:

/etc/init.d/libvirtd start

Um zu überprüfen, ob KVM erfolgreich installiert wurde, führen Sie aus

virsh -c qemu:///system list

Es sollte etwas wie folgt anzeigen:

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

Wenn stattdessen ein Fehler angezeigt wird, ist etwas schiefgelaufen.

Als nächstes müssen wir einen Netzwerkbrücke auf unserem Server einrichten, damit unsere virtuellen Maschinen von anderen Hosts aus wie physische Systeme im Netzwerk zugänglich sind.

Dazu installieren wir das Paket bridge-utils…

yum install bridge-utils

… und konfigurieren eine Brücke. Löschen Sie die Systemstartlinks für NetworkManager und erstellen Sie Systemstartlinks für das Netzwerk:

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

Erstellen Sie dann die Datei /etc/sysconfig/network-scripts/ifcfg-virbr0 (bitte verwenden Sie die Werte BOOTPROTO, DNS1 (plus alle anderen DNS-Einstellungen, falls vorhanden), GATEWAY, IPADDR, NETMASK und SEARCH aus der Datei /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" |

Ändern Sie /etc/sysconfig/network-scripts/ifcfg-eth0 wie folgt (kommentieren Sie BOOTPROTO, DNS1 (und alle anderen DNS-Server, falls vorhanden), GATEWAY, IPADDR, NETMASK und SEARCH aus und fügen Sie BRIDGE=virbr0 hinzu):

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

| # nVidia Corporation Unbekannt (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 |

Starten Sie dann das System neu:

reboot

Nach dem Neustart führen Sie aus

ifconfig

Es sollte jetzt die Netzwerkbrücke (virbr0) anzeigen:

[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 ~]#

Außerdem sollte das KVM-Kernelmodul jetzt geladen sein:

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

(Diese Ausgabe stammt von einem System mit einem AMD-V-Prozessor. Wenn Ihr System einen Intel VT CPU verwendet, sollte es etwas wie kvm_intel anzeigen.)

Jetzt laden wir das neueste Enomalism.rpm-Paket von http://sourceforge.net/project/showfiles.php?group_id=164855&package_id=186866&release_id=667675 herunter, z.B. wie folgt (bitte stellen Sie sicher, dass Sie das PY2.5-Paket und nicht PY2.4 herunterladen!):

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

Nachdem der Download abgeschlossen ist, installieren wir Enomalism wie folgt:

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

Dann erstellen wir die Systemstartlinks für MySQL (damit MySQL automatisch gestartet wird, wenn das System bootet) und starten den MySQL-Server:

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

Führen Sie aus

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

um ein Passwort für den Benutzer root festzulegen (ansonsten kann jeder auf Ihre MySQL-Datenbank zugreifen!).

Wenn der letzte Befehl Ihnen einen Fehler ausgibt…

[root@server1 named]# mysqladmin -h server1.example.com -u root password yourrootsqlpassword  
mysqladmin: Verbindung zum Server unter 'server1.example.com' fehlgeschlagen  
Fehler: 'Zugriff verweigert für Benutzer 'root'@'localhost' (Passwort verwenden: NEIN)'
[root@server1 named]#

… können wir das Passwort wie folgt festlegen: verbinden Sie sich mit MySQL:

mysql -u root -p

Geben Sie das Passwort für den MySQL-Root-Benutzer ein. Dann führen Sie im MySQL-Shell Folgendes aus:

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';

Führen Sie aus

mysql> SELECT * FROM user;

um sicherzustellen, dass alle Zeilen, in denen der Benutzer root ist, ein Passwort haben.

Wenn alles in Ordnung aussieht, führen Sie aus

mysql> FLUSH PRIVILEGES;

… und verlassen Sie die MySQL-Shell:

mysql> quit;

Jetzt müssen wir Enomalism konfigurieren. Führen Sie aus

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

Ersetzen Sie yourrootsqlpassword durch Ihr MySQL-Root-Passwort. enomalism ist der Name des Datenbankbenutzers, den Enomalism verwenden wird, um sich mit der MySQL-Datenbank zu verbinden, und enomalismpassword ist das Datenbankpasswort für den Benutzer enomalism. Ersetzen Sie beide durch einen Benutzernamen/Passwort Ihrer Wahl.

Im Verzeichnis /opt/enomalism2 sollte eine Datei namens server1.example.com.cfg vorhanden sein. Wir kopieren diese Datei in das Verzeichnis /opt/enomalism2/config:

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

Führen Sie aus

uuidgen

und notieren Sie sich die ID, die der Befehl generiert (wir benötigen sie im nächsten Schritt, in dem wir /opt/enomalism2/config/server1.example.com.cfg ändern):

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

Jetzt bearbeiten wir /opt/enomalism2/config/server1.example.com.cfg:

vi config/server1.example.com.cfg

Bitte passen Sie die folgenden vier Werte an:

| [...] 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" [...] |

Stellen Sie sicher, dass Sie den richtigen Datenbankbenutzer und das richtige Passwort für die MySQL-Datenbank sowie die richtige IP-Adresse für die nächsten beiden Einstellungen verwenden. In der Zeile enomalism2.self sollten Sie die ID verwenden, die von uuidgen generiert wurde.

Sie finden auch die Einstellungen enomalism2.drivestorage=’file’ und enomalism2.storagetarget=’file:///xen/‘ in dieser Datei. Derzeit unterstützt Enomalism kein LVM, daher sollten Sie diese Einstellungen nicht ändern!

Als nächstes bearbeiten Sie /etc/libvirt/qemu.conf…

vi /etc/libvirt/qemu.conf

… und kommentieren Sie die Zeile vnc_listen = “0.0.0.0” aus:

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

(Andernfalls können Sie nicht von einem Remote-Computer aus eine Verbindung zu den KVM-Gästen über VNC herstellen!)

Starten Sie libvirtd danach neu:

/etc/init.d/libvirtd restart

Jetzt erstellen wir die Systemstartlinks für Enomalism und starten es:

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

Öffnen Sie jetzt einen Browser und gehen Sie zu http://192.168.0.100:8080. Dies sollte die Installation von Enomalism abschließen:

Klicken Sie auf den Link Click here to use Enomalism2!:

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.