Виртуальная машина на Ubuntu Server 12.04 с веб-сайтом

Вполне возможна ситуация, когда возникает необходимость в виртуальной машине на уже установленном сервере. Например, если основная машина занимается раздачей интернета, фильтрацией трафика и прочими вещами, веб-сервер удобнее разместить именно на виртуальной машине. Основная причина в моем случае – на основной сервер на apache я и так навесил немало задач, это и webmin, и lightsquid, и контроллер UniFi. В общем, ему есть чем заняться.

В качестве средства виртуализации будем рассматривать VirtualBox.

server@#########: aptitude show virtualbox
Пакет: virtualbox                                
Состояние: установлен
Автоматически установлен: нет
Версия: 4.1.12-dfsg-2ubuntu0.3
Приоритет: необязательный
Раздел: universe/misc
Сопровождающий: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Архитектура: amd64
Размер в распакованном виде: 45,8 M

Для установки достаточно ввести команду:

sudo aptitude install virtualbox

Далее, необходимо создать новую виртуальную машину.

У меня уже создан ряд машин в рабочих целях, на них можно не обращать внимания.

firstscreen

Реккомендую следующие параметры:

Тип ОС – Linux, Ubuntu

512 Mb оперативной памяти (в принципе, можно и меньше, но мне ресурсы позволяют).

Главное – правильно настроить сеть. Eth1  у меня – адаптер, смотрящий в локальную сеть.

net

В этом случае, виртуальная машина будет находиться внутри локальной сети.

Для установки ОС на ВМ необходимо скачать загрузочный диск с сайта http://www.ubuntu.com/download/server

Причем 32-битную редакцию.

Установка ОС содержит стандартные шаги, их описывать не буду.

После установки рекомендую обновить все пакеты

sudo aptitude update
sudo aptitude safe-upgrade

И установить необходимые новые:

sudo aptitude install apache2 php5 phpmyadmin mysql-server openssh-server

Мне нужен именно такой набор пакетов, потому что это будет веб-сервер с Joomla.

Установка Joomla – отдельный разговор, об этом расскажу в другой раз.

Теперь главное – сделать так, чтобы виртуальная машина стартовала вместе с загрузкой сервера, иначе это придется проделывать каждый раз вручную.

Запускать систему будем в, так называемом, “безголовом ” (headless) режиме.

Для начала необходимо создать файл   /etc/init.d/vbox со следующим содержимым:

#!/bin/bash
# description: VirtualBox VM Autostarter v1.0 Written by Scorp.
. /lib/lsb/init-functions
VM_USER="server"
SU="su - $VM_USER -c"
VM="web"
VMSTATUS=`$SU "VBoxManage showvminfo $VM"|grep "State:"|awk 'NR<2{print $2}'`
echo " Current status of $VM is $VMSTATUS"

case "$1" in
start)
     if [ $VMSTATUS != "running" ]
     then
           log_daemon_msg "Starting VirtualBox $VM mashine"
           $SU "VBoxManage startvm $VM --type headless"
           log_end_msg 0
     fi
;;
restart)
     log_daemon_msg "Reseting VirtualBox $VM mashine"
     $SU "VBoxManage controlvm $VM reset"
     log_end_msg 0
;;
stop)
     if [ $VMSTATUS != "saved" ]
     then
          log_daemon_msg "Saving state of VirtualBox $VM mashine"
          $SU "VBoxManage controlvm $VM savestate"
          log_end_msg 0
     fi
;;
*)
     echo "Usage: $0 {start|restart|stop}"
     exit 1
;;
esac
exit 0

 

Здесь потребуется поменять только:

VM="web"

Имя виртуальной машины. У меня оно web. У вас может быть другое.

Для регистрации скрипта выполнить

sudo update-rc.d slave start 99 2 3 4 5 . stop 01 0 1 6 .

Теперь ВМ запускается при включении сервера и корректно завершает работу при выключении.

Для управления ВМ вполне можно использовать протокол SSH.

Информация частично взята отсюда. Частично из других источников, ссылки на которые утеряны.

Единственное, что мне здесь пока непонятно, что делать, если необходимо запускать несколько виртуальных машин? Теоретически, возможно, необходимо создать скрипт, например, /etc/init.d/vbox1, где указать другое имя машины. Но на практике не проверял, поскольку необходимости не было.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.