Virtualización · 7 min read · Jan 31, 2026

Virtualización KVM Con Enomalism 2 En Un Servidor Fedora 10

Virtualización KVM Con Enomalism 2 En Un Servidor Fedora 10

Versión 1.0
Autor: Falko Timme

Enomalism ECP (Elastic Computing Platform) proporciona un panel de control basado en la web que te permite diseñar, desplegar y gestionar máquinas virtuales en uno o más sistemas host (en el caso de múltiples sistemas, hablamos de un clúster o nube). Este artículo muestra cómo puedes usar Enomalism (también conocido como Enomaly) para gestionar invitados KVM en un servidor Fedora 10.

¡No emito ninguna garantía de que esto funcione para ti!

1 Nota Preliminar

Estoy usando un servidor Fedora 10 con el nombre de host server1.example.com y la dirección IP 192.168.0.100 aquí como mi host KVM. El servidor se encuentra en una red privada con un servidor DHCP (en el router, IP 192.168.0.1). El uso de Enomalism podría ser diferente si lo usas en una red pública.

Antes de comenzar, ejecuta

system-config-firewall

y desactiva el firewall.

Además, asegúrate de que SELinux esté desactivado. Abre /etc/selinux/config…

vi /etc/selinux/config

… y establece SELINUX en disabled:

| # Este archivo controla el estado de SELinux en el sistema. # SELINUX= puede tomar uno de estos tres valores: # enforcing - La política de seguridad de SELinux se aplica. # permissive - SELinux imprime advertencias en lugar de aplicar. # disabled - No se carga ninguna política de SELinux. SELINUX=disabled # SELINUXTYPE= puede tomar uno de estos dos valores: # targeted - Los procesos dirigidos están protegidos, # mls - Protección de Seguridad de Múltiples Niveles. SELINUXTYPE=targeted |

Ejecuta

setenforce 0

… para que el cambio surta efecto.

Por favor, verifica si tu CPU soporta virtualización por hardware - si este es el caso, el comando

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

debe mostrar algo, por ejemplo, como esto:

[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 no se muestra nada, entonces tu procesador no soporta virtualización por hardware, y debes detenerte aquí.

2 Instalando Enomalism 2

Primero haz esto:

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

Para instalar KVM y Qemu, ejecutamos

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

Luego inicia el demonio de libvirt:

/etc/init.d/libvirtd start

Para verificar si KVM se ha instalado correctamente, ejecuta

virsh -c qemu:///system list

Debería mostrar algo como esto:

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

Si muestra un error en su lugar, entonces algo salió mal.

A continuación, necesitamos configurar un puente de red en nuestro servidor para que nuestras máquinas virtuales puedan ser accedidas desde otros hosts como si fueran sistemas físicos en la red.

Para hacer esto, instalamos el paquete bridge-utils…

yum install bridge-utils

… y configuramos un puente. Elimina los enlaces de inicio del sistema para NetworkManager y crea enlaces de inicio del sistema para la red:

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

Luego crea el archivo /etc/sysconfig/network-scripts/ifcfg-virbr0 (por favor usa los valores de BOOTPROTO, DNS1 (más cualquier otra configuración de DNS, si la hay), GATEWAY, IPADDR, NETMASK y SEARCH del archivo /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 de la siguiente manera (comenta BOOTPROTO, DNS1 (y todos los demás servidores DNS, si los hay), GATEWAY, IPADDR, NETMASK y SEARCH y agrega 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 |

Luego reinicia el sistema:

reboot

Después del reinicio, ejecuta

ifconfig

Ahora debería mostrar el puente de red (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 ~]#

Además, el módulo del kernel KVM ahora debería estar cargado:

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

(Esta salida es de un sistema con un procesador AMD-V. Si tu sistema usa un CPU Intel VT, debería mostrar algo como kvm_intel.)

Ahora descargamos el último paquete Enomalism.rpm de http://sourceforge.net/project/showfiles.php?group_id=164855&package_id=186866&release_id=667675, por ejemplo, de la siguiente manera (por favor asegúrate de obtener el paquete PY2.5, ¡no PY2.4!):

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

Después de que la descarga haya terminado, instalamos Enomalism de la siguiente manera:

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

Luego creamos los enlaces de inicio del sistema para MySQL (para que MySQL se inicie automáticamente cada vez que el sistema arranca) y comenzamos el servidor MySQL:

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

Ejecuta

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

para establecer una contraseña para el usuario root (de lo contrario, ¡cualquiera puede acceder a tu base de datos MySQL!).

Si el último comando te arroja un error…

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

… podemos establecer la contraseña de la siguiente manera: conéctate a MySQL:

mysql -u root -p

Escribe la contraseña para el usuario root de MySQL. Luego, en el shell de MySQL, haz esto:

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

Ejecuta

mysql> SELECT * FROM user;

para asegurarte de que todas las filas donde el usuario es root tengan una contraseña.

Si todo se ve bien, ejecuta

mysql> FLUSH PRIVILEGES;

… y sal del shell de MySQL:

mysql> quit;

Ahora debemos configurar Enomalism. Ejecuta

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

Reemplaza yourrootsqlpassword con tu contraseña de root de MySQL. enomalism es el nombre del usuario de la base de datos que Enomalism usará para conectarse a la base de datos MySQL, y enomalismpassword es la contraseña de la base de datos para el usuario enomalism. Reemplaza ambos con un nombre de usuario/contraseña de tu elección.

En el directorio /opt/enomalism2, debería haber un archivo llamado server1.example.com.cfg. Copiamos ese archivo al directorio /opt/enomalism2/config:

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

Ejecuta

uuidgen

y anota el ID que genera el comando (lo necesitamos en el siguiente paso donde modificamos /opt/enomalism2/config/server1.example.com.cfg):

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

Ahora editamos /opt/enomalism2/config/server1.example.com.cfg:

vi config/server1.example.com.cfg

Por favor ajusta los siguientes cuatro valores:

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

Asegúrate de usar el usuario y la contraseña de base de datos correctos para la base de datos MySQL y la dirección IP correcta para las siguientes dos configuraciones. En la línea enomalism2.self, debes usar el ID generado por uuidgen.

También encontrarás las configuraciones enomalism2.drivestorage=’file’ y enomalism2.storagetarget=’file:///xen/‘ en ese archivo. Actualmente, Enomalism no soporta LVM, ¡así que no debes cambiar estas configuraciones!

A continuación, edita /etc/libvirt/qemu.conf…

vi /etc/libvirt/qemu.conf

… y descomenta la línea vnc_listen = “0.0.0.0”:

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

(¡De lo contrario, no podrás conectarte a los invitados KVM a través de VNC desde una máquina remota!)

Reinicia libvirtd después:

/etc/init.d/libvirtd restart

Ahora creamos los enlaces de inicio del sistema para Enomalism y lo iniciamos:

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

Ahora abre un navegador y ve a http://192.168.0.100:8080. Esto debería finalizar la instalación de Enomalism:

Haz clic en el enlace Click here to use Enomalism2:

Share: X/Twitter LinkedIn

Recibe nuevas publicaciones en tu bandeja de entrada.

No spam. Cancela la suscripción en cualquier momento.