Virtualização · 7 min read · Jan 31, 2026

Virtualização KVM Com Enomalism 2 Em Um Servidor Fedora 10

Virtualização KVM Com Enomalism 2 Em Um Servidor Fedora 10

Versão 1.0
Autor: Falko Timme

Enomalism ECP (Elastic Computing Platform) fornece um painel de controle baseado na web que permite projetar, implantar e gerenciar máquinas virtuais em um ou mais sistemas host (no caso de múltiplos sistemas, falamos de um cluster ou nuvem). Este artigo mostra como você pode usar o Enomalism (também conhecido como Enomaly) para gerenciar convidados KVM em um servidor Fedora 10.

Não dou nenhuma garantia de que isso funcionará para você!

1 Nota Preliminar

Estou usando um servidor Fedora 10 com o nome do host server1.example.com e o endereço IP 192.168.0.100 aqui como meu host KVM. O servidor está localizado em uma rede privada com um servidor DHCP (no roteador, IP 192.168.0.1). O uso do Enomalism pode ser diferente se você usá-lo em uma rede pública.

Antes de começarmos, execute

system-config-firewall

e desative o firewall.

Além disso, certifique-se de que o SELinux esteja desativado. Abra /etc/selinux/config…

vi /etc/selinux/config

… e defina SELINUX como desativado:

| # Este arquivo controla o estado do SELinux no sistema. # SELINUX= pode assumir um destes três valores: # enforcing - A política de segurança do SELinux é aplicada. # permissive - O SELinux imprime avisos em vez de aplicar. # disabled - Nenhuma política do SELinux é carregada. SELINUX=disabled # SELINUXTYPE= pode assumir um destes dois valores: # targeted - Processos direcionados são protegidos, # mls - Proteção de Segurança de Múltiplos Níveis. SELINUXTYPE=targeted |

Execute

setenforce 0

… para que a alteração tenha efeito.

Por favor, verifique se sua CPU suporta virtualização por hardware - se este for o caso, o comando

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

deve exibir algo, por exemplo, assim:

[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 nada for exibido, então seu processador não suporta virtualização por hardware, e você deve parar aqui.

2 Instalando Enomalism 2

Primeiro faça isso:

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 e Qemu, executamos

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

Então inicie o daemon libvirt:

/etc/init.d/libvirtd start

Para verificar se o KVM foi instalado com sucesso, execute

virsh -c qemu:///system list

Deve exibir algo como isto:

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

Se exibir um erro em vez disso, então algo deu errado.

Em seguida, precisamos configurar uma ponte de rede em nosso servidor para que nossas máquinas virtuais possam ser acessadas de outros hosts como se fossem sistemas físicos na rede.

Para fazer isso, instalamos o pacote bridge-utils…

yum install bridge-utils

… e configuramos uma ponte. Exclua os links de inicialização do sistema para o NetworkManager e crie links de inicialização do sistema para a rede:

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

Então crie o arquivo /etc/sysconfig/network-scripts/ifcfg-virbr0 (por favor, use os valores de BOOTPROTO, DNS1 (mais quaisquer outras configurações de DNS, se houver), GATEWAY, IPADDR, NETMASK e SEARCH do arquivo /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" |

Modifique /etc/sysconfig/network-scripts/ifcfg-eth0 da seguinte forma (comente BOOTPROTO, DNS1 (e todos os outros servidores DNS, se houver), GATEWAY, IPADDR, NETMASK e SEARCH e adicione BRIDGE=virbr0):

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

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

Então reinicie o sistema:

reboot

Após o reinício, execute

ifconfig

Agora deve mostrar a ponte de rede (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 ~]#

Além disso, o módulo do kernel KVM agora deve estar carregado:

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

(Esta saída é de um sistema com um processador AMD-V. Se seu sistema usar uma CPU Intel VT, deve exibir algo como kvm_intel.)

Agora baixamos o pacote Enomalism.rpm mais recente de http://sourceforge.net/project/showfiles.php?group_id=164855&package_id=186866&release_id=667675, por exemplo, da seguinte forma (por favor, certifique-se de pegar o pacote PY2.5, não PY2.4!):

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

Após o download ter terminado, instalamos o Enomalism da seguinte forma:

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

Então criamos os links de inicialização do sistema para o MySQL (para que o MySQL inicie automaticamente sempre que o sistema for inicializado) e iniciamos o servidor MySQL:

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

Execute

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

para definir uma senha para o usuário root (caso contrário, qualquer um pode acessar seu banco de dados MySQL!).

Se o último comando gerar um erro para você…

[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 definir a senha da seguinte forma: conecte-se ao MySQL:

mysql -u root -p

Digite a senha para o usuário root do MySQL. Então, no shell do MySQL, faça isso:

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

Execute

mysql> SELECT * FROM user;

para ter certeza de que todas as linhas onde o usuário é root têm uma senha.

Se tudo estiver ok, execute

mysql> FLUSH PRIVILEGES;

… e saia do shell do MySQL:

mysql> quit;

Agora devemos configurar o Enomalism. Execute

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

Substitua yourrootsqlpassword pela sua senha root do MySQL. enomalism é o nome do usuário do banco de dados que o Enomalism usará para se conectar ao banco de dados MySQL, e enomalismpassword é a senha do banco de dados para o usuário enomalism. Substitua ambos por um nome de usuário/senha de sua escolha.

No diretório /opt/enomalism2, deve haver um arquivo chamado server1.example.com.cfg. Copiamos esse arquivo para o diretório /opt/enomalism2/config:

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

Execute

uuidgen

e anote o ID que o comando gera (precisamos dele na próxima etapa onde modificamos /opt/enomalism2/config/server1.example.com.cfg):

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

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

vi config/server1.example.com.cfg

Por favor, ajuste os seguintes quatro 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" [...] |

Certifique-se de usar o usuário e a senha corretos do banco de dados para o banco de dados MySQL e o endereço IP correto para as próximas duas configurações. Na linha enomalism2.self, você deve usar o ID gerado pelo uuidgen.

Você também encontrará as configurações enomalism2.drivestorage=’file’ e enomalism2.storagetarget=’file:///xen/‘ nesse arquivo. Atualmente, o Enomalism não suporta LVM, então você não deve alterar essas configurações!

Em seguida, edite /etc/libvirt/qemu.conf…

vi /etc/libvirt/qemu.conf

… e descomente a linha vnc_listen = “0.0.0.0”:

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

(Do contrário, você não poderá se conectar aos convidados KVM via VNC de uma máquina remota!)

Reinicie o libvirtd depois:

/etc/init.d/libvirtd restart

Agora criamos os links de inicialização do sistema para o Enomalism e o iniciamos:

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

Agora abra um navegador e vá para http://192.168.0.100:8080. Isso deve finalizar a instalação do Enomalism:

Clique no link Clique aqui para usar o Enomalism2!

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.