Делаем сервер разработчика Rails с использованием виртуализации

Всем пламенный привет после небольшого моего отсутствия :)

Сразу с места в карьер: я все свои разработки пишу в основном в windows. Это, конечно имеет как ряд преимуществ (лично для меня), так и ряд неудобств.

Недавно мне пришла в голову идея - почему бы не сделать сервер разработки приложений при помощи виртуальной машины. А что - это удобно. Мы получим нативную среду для приложений и избавимся от многих неудобств.

И тогда я установил Kubuntu в виртуальной машине VirtualBox и установил там LAMP и Rails. Сейчас по-порядку расскажу, как все это сделать.

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

Теперь, когда мы имеем установленную Kubuntu под виртуалкой, нам нужно сделать форвардинг портов из гостевой ОС Kubuntu в хост-ОС Windows, чтобы мы могли из windows соединяться с Kubuntu например по ssh или по http. Делается это так: создаем forwarding.bat файл в директории С:\Program Files\Sun\xVM VirtualBox\ и пишем в него следующие строки (kubuntu - это название вашей виртуальной машины):

Форвардинг апача с 80 на 8888 порт:

VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/HostPort" 8888
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/GuestPort" 80
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/Protocol" TCP

Форвардинг монгрела с 3000 на 3000 порт:

VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/mongrel/HostPort" 3000
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/mongrel/GuestPort" 3000
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/mongrel/Protocol" TCP

Форвардинг ssh с 22 на 2222 порт:

VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata kubuntu "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP

Все. Теперь останавливаем виртуальную машину, если она запущена, затем сохраняем forwarding.bat и запускаем его. После этого снова запускаем виртуальную машину. Кстати, в настройках виртуальной машины соединение по сети должно быть установлено через NAT.

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

$ sudo apt-get install openssh-server

Ssh будет установлен и запущен. Давайте соединимся с гостевой ОС. Для этого используем клиент Putty:

putty_ssh

Отлично - соединились. Если все же не получилось соединиться - попробуйте перезагрузить компьютер.

ssh_connected

Итак, соединение с гостевой ОС Kubuntu по ssh теперь работает. Приступим к установке Ruby и Rails.

Установка Ruby и Rails в Kubuntu

Установим Ruby:

$ sudo apt-get install ruby ruby1.8-dev libopenssl-ruby1.8 rdoc ri irb build-essential wget ssl-cert

Потом установим дополнительные пакеты gem’ы для Ruby:

$ cd /tmp
$ wget http://rubyforge.org/frs/download.php/57643/rubygems-1.3.4.tgz
$ tar zxf rubygems-1.3.4.tgz
$ cd rubygems-1.3.4
$ sudo ruby setup.rb
$ sudo ln -sfv /usr/bin/gem1.8 /usr/bin/gem

Далее, установим Mongrel. Он работает быстрее, чем дефолтный веб-сервер WEBrick. И к томуже - у меня так и не получилось сделать форвардинг 3000 порта, когда был WEBrick - я не стал разбираться отчего это происходит - просто установил Mongrel. Итак - устанавливаем:

$ sudo gem install mongrel

Теперь по команде script/server будет запускаться именно Mongrel. Давайте создадим пустое rails-приложение, чтобы проверить что все работает.

Переходим в домашнюю директорию:

$ cd $HOME

И создаем Rails-приложение:

$ rails mycoolapp

Потом запускаем Mongrel

$ cd mycoolapp
$ script/server

Открываем браузер в Kubuntu и набираем http://localhost:3000/. Если все работает - то вы увидите дефолтную страничку Rails-приложения. Все, можно работать :).

Но - можно установить еще кое что.

Установка LAMP в Kubuntu

Давайте установим еще и LAMP - не помешает. Кому помешает - ставьте только Mysql и не читайте дальше :)

$ sudo tasksel install lamp-server

И PHPMyAdmin - пригодится:

$ sudo apt-get install phpmyadmin

После установки о будет находиться по адресу http://localhost/phpmyadmin на гостевой ОС, или по адресу http://localhost:8888/phpmyadmin на хост-ОС.

Спасибо Константину Тумалевичу за помощь в подготовке статьи

Also interesting

Tags: , , , , ,

5 Responses to “Делаем сервер разработчика Rails с использованием виртуализации”

  1. Fedyashev Nikita says:

    Спасибо за статью. Было интересно :)

  2. Alex Night says:

    как раз то, что мне надо =) огромное спасибо, все просто и доходчиво =)

  3. Nicklasos says:

    Интересно.
    Есть проект Virtual Rails, что-то подобное http://www.virtualrails.org/
    Лично для себя выбрал cygwin под windows, гораздо удобнее.

    • Ouch! says:

      А linux еще удобнее будет. Я выбрал Ubuntu для себя)

      • Nicklasos says:

        Конечно удобнее :)
        Просто на моей домашней машинке проблема с драйверами на видеокарту, вот там и удобно cygwin + gvim, а так да, только Linux!

Leave a Reply