Виртуализация · 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.publicwget http://downloads.sourceforge.net/enomalism/enomalism001.pubkey.asc
rpm --import enomalism001.pubkey.ascЧтобы установить KVM и Qemu, мы выполняем
yum install libvirt libvirt-python kvm qemuln -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!

Get new posts in your inbox
No spam. Unsubscribe anytime.