Падение сервера и переезд в облако

Установка VirtualBox на FreeBSD 8.2

Сегодня меня озадачили, в очередной раз упал канал до площадки, где у меня установлен сервер.  Честно говоря, меня это уже немного достало так как канал лежит третий день, и я решил переезжать, да и в общем, к той площадке, где стоит сервер, я больше отношения не имею. Так что угроза потерять сервер замаячила с новой силой. Ладно, у меня есть еще несколько серверов в различных датацентрах, и есть  обычный хостинг на PeterHost. Сначала я было подумал перенести все проекты на обычный хостинг, и не заморачиваться об этом. Но вот проблема в том, что перенос абсолютно всех проектов – это дорогое удовольствие, их много. Да и зачем платить много, когда есть собственные сервера. Но есть одна особенность у моих серверов, они имеют свойство то исчезать, то появляться, то тут то там. И каждый раз перенастраивать и переносить всю эту братию, со всеми redmine, MySQL, Apache  и прочий сброд который у меня на сервере установлен, в общем не здорово. И тут я подумал, а почему бы мне не замутить виртуальную машину, настроить все там, и перетаскивать виртуальную машину с сервера на сервер, эдакое маленькое облачко замутить.

Сказано – сделано!

Первое что было сделано, это выбрано ПО для виртуализации, я захотел использовать VirtualBox

1)      Я уже его устанавливал на Windows, MacOS, Linux

2)      Он довольно шустро работает, не нагружает излишне систему

3)      Он бесплатен

4)      Достаточно удобно в управлении

И так начнем, обновляем порты FreeBSD 8.2
# portsnap  fetch
# portsnap update

Затем устанавливаем саму VirtualBox
#cd /usr/ports/emulators/virtualbox-ose
#make install clean

В окошке выбора опций я выбрал следующие:

Guest Additions потом понадобятся для настройки гостевой ОС (Для windows точно, для фри пока не знаю)
DBUS & HAL Support – как я понимаю понадобятся для установки винды, и возможно других ОС
VDE – я так и не понял зачем, а VNC надо для управления консолью через VNC клиента.
RDP бесплатная версия не поддерживает =(

Поехали…. В процессе компиляции у меня VirtualBox вывалилась с ошибкой, мол libtool => 2.4 нужен.  Это не проблема:
#cd /usr/ports/devel/libtool/
#make install clean

Все прошло без ошибок, и возвращаемся назад:
#cd /usr/ports/emulators/virtualbox-ose
#make install clean

Теперь установка прошла успешно, о чем мне и сообщили:

VirtualBox was installed.

You need to load the vboxdrv kernel module via /boot/loader.conf:

vboxdrv_load=»YES»

//Вам надо загрузить vboxdrv модуль в ядро, добавив в файлик /boot/loader.conf вот эту строчку:
// vboxdrv_load=»YES»

 

 

You also have to add all users to your vboxusers group in order to use vbox.

//Вы так же должны добавить всех пользователей которые будут работать с

//виртуалками в группу vboxusers

 

% pw groupmod vboxusers -m jerry

 

Reboot the machine to load the needed kernel modules.

//Перезагрузите машину для загрузки модулей (я попробовал не перезагружая машину просто //выполнить # kldload vboxdrv, вроде получилось

 

Bridging Support:

=================

For bridged networking please add the following line to your /etc/rc.conf:

vboxnet_enable=»YES»

// для работы сети в виртуальной машине в режиме бриджа, необходимо разрешить vboxnet

 

USB Support:

============

For USB support your user needs to be in the operator group and needs read

and write permissions to the USB device.

//для работы с USB девайсами, необходимо что бы пользователь входил в группу оператор.

% pw groupmod operator -m jerry

 

Add the following to /etc/devfs.rules (create if it doesn’t exist):

//добавьте в /etc/devfs.rules  следующие строки (создайте файл если его нет):

[system=10]

add path ‘usb/*’ mode 0660 group operator

 

To load these new rule add the following to /etc/rc.conf:

//для применения этих настроек, надо добавить строчку в /etc/rc.conf

devfs_system_ruleset=»system»

Then restart devfs to load the new rules:

% /etc/rc.d/devfs restart

 

Добавляем пользователя:
#pw useradd vbox -c ‘VitrualBox’ -d /usr/vbox -g vboxusers -w none -s /bin/sh

Теперь приступим к созданию виртуальной машины, и установки FreeBSD на нее.

$ VBoxManage createvm —name Zagor —ostype FreeBSD  —register —basefolder /usr/vbox

Virtual machine ‘Zagor’ is created and registered.
UUID: 857a028a-2cbe-4185-8ab8-7f24cbc29497
Settings file: ‘/usr/vbox/Zagor/Zagor.vbox’

$ VBoxManage modifyvm «Zagor» —memory 512 —acpi on —boot1 dvd —nic1 nat

$ VBoxManage createhd —filename «Zagor.vdi» —size 20000

$ VBoxManage storagectl «Zagor» —name «IDE» —add ide —controller PIIX4

$ VBoxManage storageattach «Zagor» —storagectl «IDE» —port 0 —device 0 —type hdd —medium «Zagor.vdi»

$ VBoxManage storageattach «Zagor» —storagectl «IDE» —port 1 —device 0 —type dvddrive —medium /usr/upload/FreeBSD-8.2-RELEASE-i386-disc1.iso

$ VBoxManage modifyvm «Zagor» —vrde on

Запускаем!

$ VBoxHeadless -s Zagor —vnc —vncport 2222 —vncpass 123321

Теперь с помощью VNC можно подключаться к серваку…

Для автоматического запуска с консолью используем:

/usr/bin/nohup /usr/local/bin/VBoxHeadless —startvm Zagor —vnc —vncport 2222 —vncpass Zuper_secret_passworT &