Вторник, 01 Октябрь 2013 20:46

Настройка сервера под виртуальные машины

Автор
Оцените материал
(7 голосов)

В своё время, на работе мне была поставлена задача настроить сервер, на котором мы бы могли поднимать виртуалки для всевозможных трэшовых потребностей. Собственного говоря, кто-то это называет виртуализацией. Но я считаю, что решение, описанное здесь, несколько не дотягивает до полноценного понятия виртуализации. Оно подойдёт, например, для ситуации, когда у вас есть довольно мощная машина, которую не резонно использовать для сервера с малой нагрузкой, и поэтому на него вполне можно накатить несколько виртуальных серверов с небольшой нагрузкой.
Вообщем, что будем делать:

- ставить систему без иксов
- устанавливать на неё VirtualBox
- прикручивать к VirtualBox вэб-админку
- пользоваться полученным результатом во благо

Операционную систему я под это выбрал Fedora 17. Установку проводим через графический интерфейс anaconda. На шаге выбора пакетов я выбрал всё по минимуму, это:

В меню «базовая система» отметил «поддержка оборудования» и «системные средства», внутри которых оставил лишь: mc, p7zip, screen, unrar и yum-utils.

С таким скромным набором пакетов система установится очень быстро. А уже в процессе настройки будем ставить недостающие пакеты.
После установки системы нужно провести базовую настройку: настроить сеть, поставить обновления, отключить selinux и прочие действия, которые я уже много раз описывал в других статьях. Например вот в этих:

http://technotrance.su/index.php/moi-stati/linux-fedora/item/21-openmeetings2
http://technotrance.su/index.php/moi-stati/linux-fedora/item/19-1c-linux

Что ж, приступим к установке VirtualBox и вэб-интерфейса PhpVirtualBox. Мне в этом помогли вот эти статьи:

http://nikmy.ru/index.php/stati/linux/sistemnye/143-ustanovka-virtualbox-s-phpvirtualbox-ubuntu-12-04.html
http://my-box-371.blogspot.ru/2011/01/virtualbox-extension-pack-debian.html
http://yessajah.wordpress.com/2012/01/16/failed-to-opencreate-the-internal-network-verr_intnet_flt_if_not_found

Сперва наперво ставим все нужные пакеты, которые понадобятся для работы виртуалбокс и phpvirtualbox:

yum -y install SDL fontconfig freetype gsoap libICE libSM libXcursor libXdamage libXfixes libXi libXmu libXt libmng libpng mesa-libGL mesa-libglapi pciutils qt qt-settings qt-x11 kernel-devel gcc gcc-c++ make cmake automake dkms wget httpd php php-soap

Перезагрузим сервер после этого.
Теперь можно ставить VirtualBox. Я поставил версию 4.1.26_84997, поскольку с версией 4.2 и phpvirtualbox для 4.2 у меня были какие-то проблемы. Уже не помню какие, так как сервер настраивал несколько месяцев назад, а статью про это вот только щас решил написать Улыбаюсь Сейчас, уже наверняка, те проблемы ушли в прошлое, и можно ставить версию и 4.2.

Итак, скачиваю виртуалбокс:

wget http://download.virtualbox.org/virtualbox/4.1.26/VirtualBox-4.1-4.1.26_84997_fedora17-1.x86_64.rpm

и ставлю её:

rpm -ivh VirtualBox-4.1-4.1.26_84997_fedora17-1.x86_64.rpm

Теперь скачиваю Extension Pack:

wget http://download.virtualbox.org/virtualbox/4.1.26/Oracle_VM_VirtualBox_Extension_Pack-4.1.26-84997.vbox-extpack

Устанавливаю его вот такой командой:

VBoxManage extpack install Oracle_VM_VirtualBox_Extension_Pack-4.1.26-84997.vbox-extpack

Теперь нужно создать пользователя, под которым будут работать виртуалки. Я его назвал банально admin:

useradd -m admin -G vboxusers

ключ «-G vboxusers» вносит этого пользователя в группу vboxusers. Задаём пароль только что созданному пользователю:

passwd admin

После этого надо создать файл /etc/default/virtualbox вот с таким содержимым:

VBOXWEB_USER=admin

Потом перезапускаем сервис vboxweb-service:

service vboxweb-service restart

С самим VirtualBox разобрались. Теперь надо установить вэб-интерфейс phpvirtualbox. Скачиваем его от сюда:

http://sourceforge.net/projects/phpvirtualbox/files/Older%20versions/phpvirtualbox-4.1-11.zip/download

Содержимое архива распаковываем в папку /var/www/html/phpvirtualbox и задаём правильные права на неё:

chown -R apache:apache phpvirtualbox

Потом находим файл /var/www/html/phpvirtualbox/config.php-example и в этом же месте делаем его копию с названием config.php. Затем открываем его ( config.php ) и вносим некоторые изменения. Я лишь напишу строчки, в которые я внёс изменения:

// указываем пользователя и его пароль, под которым будут создаваться виртуалки
var $username = 'admin';
var $password = 'pass_of_admin';

var $language = 'ru';

// Host ip to use for console connections. Тут надо указать локальный адрес сервака.
// Эта настройка означает, что к консольному экрану виртуалки можно будет
// подключиться через этот адрес. Адрес 127.0.0.1 здесь указывать НЕ надо!
var $consoleHost = '192.168.0.6';

Как видим, изменения в конфиге небольшие. Сохраняем.
Также, нужно не забыть открыть нужные порты на iptables. Находим файл /etc/sysconfig/iptables и в нужном месте вставляем строчки:

-A INPUT -p tcp -m tcp -m multiport -m state --state NEW -j ACCEPT --dports 80,433
-A INPUT -p tcp -m tcp -m state --dport 9000:9010 --state NEW -j ACCEPT

Т.е. мы открыли порты для подключения к вэб-админке и для подключения к консольному экрану виртуалки. Не забываем перезапустить iptables. 
Теперь запускаем апач и добавляем его в автозагрузку:

service httpd start
systemctl enable httpd.service

И пробуем зайти в вэб-админку по адресу:

http://ip_of_your_serv/phpvirtualbox

Логин и пароль там изначально стоят admin admin. Само собой, что пароль надо будет потом сменить. phpvirtualbox выглядит так же, как и родной VirtualBox GUI:

Если вы знакомы с родным GUI-интерфейсом виртуалбокса, то с использованием интерфейса phpvirtualbox проблем не будет. Однако я всё равно заострю внимание на некоторых тонкостях. Первая из них — это удалённый дисплей (консольный экран), настраивается он вот так:

т.е. надо указать всего один порт, по которому этот дисплей будет доступен.

Идём далее. После того, как вы настроили все остальные параметры виртуальной машины и пытаетесь её запустить и получили вот такую ошибку:

Failed to open/create the internal network
‘HostInterfaceNetworking-’ (VERR_INVALID_PARAMETER).
Failed to attach the network LUN (VERR_INVALID_PARAMETER)

то эта проблема вызвана тем, что в типе сетевого соединения указан сетевой мост. Эта проблема решается так:
Сначала в консоли переключаемся на пользователя, из-под которого запущена виртуалка (см середину статьи). У меня это admin:

su admin

заетем делаем вот такие команды:

VBoxManage modifyvm win2008 --bridgeadapter1 em1
VBoxManage showvminfo win2008

где win2008 — это название виртуальной машины, а em1 — это сетевуха, через которую настроен сетевой мост.
После этих команд пробуем запустить виртуальную машину снова. На этот раз всё должно быть нормально, машина запустится:

а к удалённому дисплею (консольному экрану) машины можно подключиться через любой RDP-клиент. Например я подключился через KRDC:

Дальше уже идёт обычная установка Windows на виртуалку.
Ещё, от себя, хочу добавить следующее: у меня винда 2008 установилась нормально, но вот когда начал на неё устанавливать обновления, то винда упорно зависала на одном из них. Я так и не понял с чем это связано, потому что эта же самая винда с этого же самого образа без проблем устанавливается и обновляется в виртуалбоксе через GUI-интерфейс. Поэтому, в своём случае, я сделал так: установил и настроил виртуальную винду у себя на рабочем компе через GUI-интерфейс и потом, уже готовую виртуальную машину, я экспортировал на сервак с phpvirtualbox. Это легко делается через меню «экспорт конфигурации» и «импорт конфигурации», которые есть как и в GUI, так и в phpvirtualbox. В итоге всё прекрасно работает и по сей день.

Прочитано 25058 раз Последнее изменение Вторник, 01 Октябрь 2013 20:54

Комментарии  

ssl
0 # ssl 15.01.2014 12:32
подскажите пожадуйста!!!я все зделал по инструкции!но место веб страницы virtualbox открывается его скачка!!!вчем может быть проблема?
Николай
0 # Николай 15.01.2014 15:01
Вэб-сервер где-то неправильно настроен

You have no rights to post comments

Вы здесь: Home Мои статьи Linux Fedora/CentOS/RedHat Настройка сервера под виртуальные машины