Virtualizzazione · 7 min read · Jan 31, 2026

Virtualizzazione KVM con Enomalism 2 su un server Fedora 10

Virtualizzazione KVM con Enomalism 2 su un server Fedora 10

Versione 1.0
Autore: Falko Timme

Enomalism ECP (Elastic Computing Platform) fornisce un pannello di controllo basato sul web che ti consente di progettare, distribuire e gestire macchine virtuali su uno o più sistemi host (nel caso di più sistemi, parliamo di un cluster o cloud). Questo articolo mostra come puoi utilizzare Enomalism (noto anche come Enomaly) per gestire ospiti KVM su un server Fedora 10.

Non fornisco alcuna garanzia che questo funzionerà per te!

1 Nota preliminare

Sto usando un server Fedora 10 con il nome host server1.example.com e l’indirizzo IP 192.168.0.100 qui come mio host KVM. Il server si trova in una rete privata con un server DHCP (sul router, IP 192.168.0.1). L’uso di Enomalism potrebbe essere diverso se lo utilizzi in una rete pubblica.

Prima di iniziare, esegui

system-config-firewall

e disabilita il firewall.

Inoltre, assicurati che SELinux sia disabilitato. Apri /etc/selinux/config…

vi /etc/selinux/config

… e imposta SELINUX su disabilitato:

| # Questo file controlla lo stato di SELinux sul sistema. # SELINUX= può assumere uno di questi tre valori: # enforcing - La politica di sicurezza SELinux è applicata. # permissive - SELinux stampa avvisi invece di applicare. # disabled - Nessuna politica SELinux è caricata. SELINUX=disabled # SELINUXTYPE= può assumere uno di questi due valori: # targeted - I processi mirati sono protetti, # mls - Protezione Multi Level Security. SELINUXTYPE=targeted |

Esegui

setenforce 0

… per far sì che la modifica abbia effetto.

Controlla se la tua CPU supporta la virtualizzazione hardware - se questo è il caso, il comando

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

dovrebbe visualizzare qualcosa, ad esempio come questo:

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

Se non viene visualizzato nulla, allora il tuo processore non supporta la virtualizzazione hardware e devi fermarti qui.

2 Installazione di Enomalism 2

Prima fai questo:

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

Per installare KVM e Qemu, eseguiamo

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

Poi avvia il demone libvirt:

/etc/init.d/libvirtd start

Per controllare se KVM è stato installato correttamente, esegui

virsh -c qemu:///system list

Dovrebbe visualizzare qualcosa di simile a questo:

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

Se visualizza un errore, allora qualcosa è andato storto.

Successivamente dobbiamo configurare un bridge di rete sul nostro server in modo che le nostre macchine virtuali possano essere accessibili da altri host come se fossero sistemi fisici nella rete.

Per fare ciò, installiamo il pacchetto bridge-utils…

yum install bridge-utils

… e configuriamo un bridge. Elimina i collegamenti di avvio del sistema per NetworkManager e crea collegamenti di avvio del sistema per la rete:

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

Poi crea il file /etc/sysconfig/network-scripts/ifcfg-virbr0 (si prega di utilizzare i valori BOOTPROTO, DNS1 (più eventuali altre impostazioni DNS, se presenti), GATEWAY, IPADDR, NETMASK e SEARCH dal file /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" |

Modifica /etc/sysconfig/network-scripts/ifcfg-eth0 come segue (commenta BOOTPROTO, DNS1 (e tutti gli altri server DNS, se presenti), GATEWAY, IPADDR, NETMASK e SEARCH e aggiungi BRIDGE=virbr0):

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

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

Poi riavvia il sistema:

reboot

Dopo il riavvio, esegui

ifconfig

Ora dovrebbe mostrare il bridge di rete (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 ~]#

Inoltre, il modulo del kernel KVM dovrebbe ora essere caricato:

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

(Questo output proviene da un sistema con un processore AMD-V. Se il tuo sistema utilizza una CPU Intel VT, dovrebbe visualizzare qualcosa come kvm_intel.)

Ora scarichiamo l’ultimo pacchetto Enomalism.rpm da http://sourceforge.net/project/showfiles.php?group_id=164855&package_id=186866&release_id=667675, ad esempio come segue (si prega di assicurarsi di prendere il pacchetto PY2.5, non PY2.4!):

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

Dopo che il download è terminato, installiamo Enomalism come segue:

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

Poi creiamo i collegamenti di avvio del sistema per MySQL (in modo che MySQL si avvii automaticamente ogni volta che il sistema si avvia) e avviamo il server MySQL:

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

Esegui

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

per impostare una password per l’utente root (altrimenti chiunque può accedere al tuo database MySQL!).

Se l’ultimo comando restituisce un errore…

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

… possiamo impostare la password come segue: connettiti a MySQL:

mysql -u root -p

Digita la password per l’utente root di MySQL. Poi, nella shell di MySQL, fai questo:

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

Esegui

mysql> SELECT * FROM user;

per assicurarti che tutte le righe in cui l’utente è root abbiano una password.

Se tutto sembra a posto, esegui

mysql> FLUSH PRIVILEGES;

… e lascia la shell di MySQL:

mysql> quit;

Ora dobbiamo configurare Enomalism. Esegui

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

Sostituisci yourrootsqlpassword con la tua password root di MySQL. enomalism è il nome dell’utente del database che Enomalism utilizzerà per connettersi al database MySQL, e enomalismpassword è la password del database per l’utente enomalism. Sostituisci entrambi con un nome utente/password a tua scelta.

Nella directory /opt/enomalism2, dovrebbe esserci un file chiamato server1.example.com.cfg. Copiamo quel file nella directory /opt/enomalism2/config:

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

Esegui

uuidgen

e annota l’ID che il comando genera (ne abbiamo bisogno nel passaggio successivo in cui modifichiamo /opt/enomalism2/config/server1.example.com.cfg):

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

Ora modifichiamo /opt/enomalism2/config/server1.example.com.cfg:

vi config/server1.example.com.cfg

Si prega di regolare i seguenti quattro valori:

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

Assicurati di utilizzare l’utente e la password del database corretti per il database MySQL e l’indirizzo IP corretto per le due impostazioni successive. Nella riga enomalism2.self, dovresti utilizzare l’ID generato da uuidgen.

Troverai anche le impostazioni enomalism2.drivestorage=’file’ e enomalism2.storagetarget=’file:///xen/‘ in quel file. Attualmente, Enomalism non supporta LVM, quindi non dovresti modificare queste impostazioni!

Successivamente modifica /etc/libvirt/qemu.conf…

vi /etc/libvirt/qemu.conf

… e decommenta la riga vnc_listen = “0.0.0.0”:

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

(Altrimenti non sarai in grado di connetterti agli ospiti KVM tramite VNC da una macchina remota!)

Riavvia libvirtd dopo:

/etc/init.d/libvirtd restart

Ora creiamo i collegamenti di avvio del sistema per Enomalism e lo avviamo:

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

Ora apri un browser e vai a http://192.168.0.100:8080. Questo dovrebbe completare l’installazione di Enomalism:

Clicca sul link Clicca qui per utilizzare Enomalism2!

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.