Виртуализация · 6 min read · Jan 31, 2026

KVM Виртуализация С Enomalism 2 На Сервере Fedora 10

KVM Виртуализация С Enomalism 2 На Сервере Fedora 10

Версия 1.0
Автор: Фалко Тимме

Enomalism ECP (Elastic Computing Platform) предоставляет веб-интерфейс управления, который позволяет вам проектировать, развертывать и управлять виртуальными машинами на одной или нескольких хост-системах (в случае нескольких систем мы говорим о кластере или облаке). Эта статья показывает, как вы можете использовать Enomalism (также известный как Enomaly) для управления KVM-гостями на одном сервере Fedora 10.

Я не даю никаких гарантий, что это сработает для вас!

1 Предварительная заметка

Я использую сервер Fedora 10 с именем хоста server1.example.com и IP-адресом 192.168.0.100 здесь в качестве моего KVM-хоста. Сервер находится в частной сети с DHCP-сервером (на маршрутизаторе, IP 192.168.0.1). Использование Enomalism может отличаться, если вы используете его в публичной сети.

Перед тем как начать, выполните

system-config-firewall

и отключите брандмауэр.

Также убедитесь, что SELinux отключен. Откройте /etc/selinux/config…

vi /etc/selinux/config

… и установите SELINUX в значение disabled:

| # Этот файл управляет состоянием SELinux в системе. # SELINUX= может принимать одно из этих трех значений: # enforcing - Политика безопасности SELinux применяется. # permissive - SELinux выводит предупреждения вместо применения. # disabled - Политика SELinux не загружена. SELINUX=disabled # SELINUXTYPE= может принимать одно из этих двух значений: # targeted - Защищены целевые процессы, # mls - Защита многоуровневой безопасности. SELINUXTYPE=targeted |

Запустите

setenforce 0

… чтобы изменения вступили в силу.

Пожалуйста, проверьте, поддерживает ли ваш процессор аппаратную виртуализацию - если это так, команда

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

должна отобразить что-то, например, вот так:

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

Если ничего не отображается, значит, ваш процессор не поддерживает аппаратную виртуализацию, и вам следует остановиться здесь.

2 Установка Enomalism 2

Сначала сделайте это:

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

Чтобы установить KVM и Qemu, мы выполняем

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

Затем запустите демон libvirt:

/etc/init.d/libvirtd start

Чтобы проверить, успешно ли установлен KVM, выполните

virsh -c qemu:///system list

Он должен отобразить что-то вроде этого:

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

Если вместо этого отображается ошибка, значит, что-то пошло не так.

Далее нам нужно настроить сетевой мост на нашем сервере, чтобы наши виртуальные машины могли быть доступны с других хостов так, как если бы они были физическими системами в сети.

Для этого мы устанавливаем пакет bridge-utils…

yum install bridge-utils

… и настраиваем мост. Удалите системные ссылки на запуск NetworkManager и создайте системные ссылки на запуск сети:

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

Затем создайте файл /etc/sysconfig/network-scripts/ifcfg-virbr0 (пожалуйста, используйте значения BOOTPROTO, DNS1 (плюс любые другие настройки DNS, если есть), GATEWAY, IPADDR, NETMASK и SEARCH из файла /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" |

Измените /etc/sysconfig/network-scripts/ifcfg-eth0 следующим образом (закомментируйте BOOTPROTO, DNS1 (и все другие DNS-серверы, если есть), GATEWAY, IPADDR, NETMASK и SEARCH и добавьте 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 |

Затем перезагрузите систему:

reboot

После перезагрузки выполните

ifconfig

Теперь он должен показать сетевой мост (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 ~]#

Также модуль ядра KVM теперь должен быть загружен:

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

(Этот вывод получен с системы с процессором AMD-V. Если ваша система использует процессор Intel VT, он должен отображать что-то вроде kvm_intel.)

Теперь мы загружаем последний пакет Enomalism.rpm с http://sourceforge.net/project/showfiles.php?group_id=164855&package_id=186866&release_id=667675, например, следующим образом (пожалуйста, убедитесь, что вы берете пакет PY2.5, а не PY2.4!):

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

После завершения загрузки мы устанавливаем Enomalism следующим образом:

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

Затем мы создаем системные ссылки на запуск MySQL (чтобы MySQL запускался автоматически при каждом запуске системы) и запускаем сервер MySQL:

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

Выполните

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

чтобы установить пароль для пользователя root (в противном случае любой сможет получить доступ к вашей базе данных MySQL!).

Если последняя команда выдает вам ошибку…

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

… мы можем установить пароль следующим образом: подключитесь к MySQL:

mysql -u root -p

Введите пароль для пользователя root MySQL. Затем, в оболочке MySQL, выполните это:

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

Выполните

mysql> SELECT * FROM user;

чтобы убедиться, что все строки, где пользователь root, имеют пароль.

Если все выглядит нормально, выполните

mysql> FLUSH PRIVILEGES;

… и выйдите из оболочки MySQL:

mysql> quit;

Теперь нам нужно настроить Enomalism. Выполните

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

Замените yourrootsqlpassword на ваш пароль root MySQL. enomalism - это имя пользователя базы данных, которое Enomalism будет использовать для подключения к базе данных MySQL, а enomalismpassword - это пароль базы данных для пользователя enomalism. Замените оба на имя пользователя/пароль по вашему выбору.

В каталоге /opt/enomalism2 должен быть файл с именем server1.example.com.cfg. Мы копируем этот файл в каталог /opt/enomalism2/config:

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

Выполните

uuidgen

и запишите ID, который сгенерирует команда (он нам понадобится на следующем шаге, когда мы будем изменять /opt/enomalism2/config/server1.example.com.cfg):

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

Теперь мы редактируем /opt/enomalism2/config/server1.example.com.cfg:

vi config/server1.example.com.cfg

Пожалуйста, отредактируйте следующие четыре значения:

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

Убедитесь, что вы используете правильного пользователя базы данных и пароль для базы данных MySQL и правильный IP-адрес для следующих двух настроек. В строке enomalism2.self вы должны использовать ID, сгенерированный uuidgen.

Вы также найдете настройки enomalism2.drivestorage=’file’ и enomalism2.storagetarget=’file:///xen/‘ в этом файле. В настоящее время Enomalism не поддерживает LVM, поэтому вы не должны изменять эти настройки!

Далее отредактируйте /etc/libvirt/qemu.conf…

vi /etc/libvirt/qemu.conf

… и раскомментируйте строку vnc_listen = “0.0.0.0”:

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

(В противном случае вы не сможете подключиться к KVM-гостям через VNC с удаленной машины!)

Перезапустите libvirtd после этого:

/etc/init.d/libvirtd restart

Теперь мы создаем системные ссылки на запуск Enomalism и запускаем его:

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

Теперь откройте браузер и перейдите по адресу http://192.168.0.100:8080. Это должно завершить установку Enomalism:

Нажмите на ссылку Click here to use Enomalism2!

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.