Создание бесплатного выделенного виртуального сервера (VPS/VDS) для тестов

Некоторое время назад появилась идея протестировать перспективность разработки сайта на ASP.Net, ориентированного на работу в окружении Linux. Впрочем, то, что сайт будет работать в окружении на хосте с Linux, было решено сразу, оставалось лишь определиться с языком программирования: ASP.NET 2 в связке с мощностями Mono, либо PHP. Варианты с тестированием различных VPS, пусть даже и бесплатно предоставляемых на небольшой срок хостинговыми провайдерами отпали сразу, т.к. в случае успеха эксперимента рано или поздно в любом случае потребовался бы локальный VPS сервер.

Виртуальной машиной для создания домашнего виртуального сервера стала программа VirtualBox – из тех соображений, что виртуальная машина может понадобиться всего на один раз, коммерческие варианты не рассматривались сразу, а среди бесплатных программ – только эта достаточно проста для настройки и полноценно может поддерживать гостевые операционные системы семейства Linux. Также, в результате проведения анализа предложений VPS в интернете, было определено несколько наиболее распространенных и совместимых с Mono операционных систем, из предустанавливаемых хостинг провайдерами.

Итак, используемые инструменты:

  • Sun VirtualBox (в данном случае была использована версия 3.1.6 r59338).
  • Операционная система Debian 5-ой версии в минимальной конфигурации (образ netinst i386).
  • Putty.
  • WinSCP.
  • Также потребуется доступ в Интернет (и около 100 МБ трафика).

Устанавливаем VirtualBox, запускаем и создаем виртуальную машину нужной конфигурации. При создании виртуальной машины я оставил все рекомендуемые установки кроме доступного объема памяти – он был снижен до 128 МБ, и размера виртуального жесткого диска – увеличен до 4 ГБ. Запускаем виртуальную машину и монтируем образ с операционной системой Debian 5.

После загрузки в меню установки выбираем Install, т.к. графическая установка нам ни к чему. Выбираем язык установки, я рекомендую английский (если вы с английским совсем никак не дружите, то русский), далее выбираем месторасположение other => Europe => Russian Federation, и раскладку клавиатуры для ввода, здесь я настоятельно советую выбрать Английскую для США. Во время установки предлагается ввести имя машины для сети, я ввел MyVPS, и имя домена в которой входит данный компьютер (здесь можно ничего не вводить). Далее предлагается выбор временной зоны, и метод разметки жесткого диска. Я выбрал метод, предлагаемый по умолчанию, в общем-то, для меня это было не особенно важно. Соглашаемся с предложением записи изменений на диск и подтверждаем его разметку. Ждем окончания установки системы…

В процессе установки запрашиваются пароль для администраторской записи, логин пользователя и его пароль. Далее предлагается выбрать адрес ближайшего репозитория и параметры прокси-сервера для доступа в Интернет. Если вы не используете прокси-сервер вводить ничего не нужно. Теперь программа установки соединится с выбранным вами репозиторием, запросит информацию о доступном программном обеспечении и загрузит необходимые для продолжения установки пакеты. После этого будет настроено ядро системы и появится меню выбора устанавливаемого программного обеспечения. Снимаем отметку с пункта Desktop environment (рабочий стол на VPS не нужен), обязательно оставляем отметку на пункте Standard system, остальные пункты выбираем по желанию. По завершении установки, будет задан вопрос: можно ли поставить загрузчик операционной системы GRUB в качестве основного, выбираем Yes. После этого будет предложено вытащить диск и перезагрузиться. Размонтируем образ диска и нажимаем Continue для перезагрузки виртуальной машины. Поздравляю! На этом установка ОС закончена.

Итак, виртуальная машина перезагружена. Предлагается ввести логин. Вводим root, далее будет запрошен пароль, вводим и его. Теперь нужно установить SSH. Для этого вводим команду

apt-get install ssh
Программа проанализирует зависимости и запросит подтверждение на загрузку и установку пакета ssh и тех пакетов, от которых он зависит.

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

halt
Теперь нужно настроить нашу виртуальную машину для доступа по SSH, а также настроить доступ к будущему веб-серверу по 80 порту. Это можно сделать двумя способами.

Закрыть все окна VirtualBox. Перейти в папку C:\Users\%username%\.VirtualBox\Machines на Windows 7 и Vista или в папку C:\Documents and Settings\%username%\.VirtualBox\Machines, если у вас Windows XP.

Открыть папку созданной вами виртуальной машины, найти в ней файл с названием вашей виртуальной машины. В моем случае это MyVPS.xml открыть его и добавить в раздел ExtraData следующие строки

<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/GuestPort" value="80"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/HostPort" value="80"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/Protocol" value="TCP"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" value="22"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" value="2222"/>
<ExtraDataItem name="VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" value="TCP"/>
Закрыть VirtualBox. Открыть консоль. Если у вас Windows перейти в папку C:\Program Files\Sun\VirtualBox. Ввести в консоли следующие команды

VBoxManage setextradata "%mashine_name%" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/GuestPort" 80
VBoxManage setextradata "%mashine_name%" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/HostPort" 80
VBoxManage setextradata "%mashine_name%" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/Protocol" TCP
VBoxManage setextradata "%mashine_name%" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata "%mashine_name%" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
VBoxManage setextradata "%mashine_name%" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
где %mashine_name% название вашей виртуальной машины.

Запускаем VirtualBox и включаем виртуальную машину. Если сейчас выдается ошибка о невозможности включения, закрываем все и снова выполняем настройку виртуальной машины. Вероятно, вы допустили при вводе команд. Если вы изменяли настройки в файле xml, проверьте добавленные записи на ошибки, если в консоли – вводите команды еще раз.

После запуска виртуальной машины, запускаем программу Putty, если вы в Windows, в поле Host пишем localhost, в поле Port ставим значение 2222. Нажимаем Open, соглашаемся принять ssl-ключ. Если вы в Linux, введите

ssh -l %user_name% -p2222 localhost


Вводим логин (в Putty) и пароль.

Для управления файловой системой можно воспользоваться программой WinSCP. Нужно будет ввести localhost, значение Port установить равным 2222, ввести логин и пароль.

Сервер в минимальной конфигурации готов. Теперь можно установить Apache, nginx, MySQL и т.п. Обратите внимание, что веб-сервер должен работать с 80 портом. Если вы хотите использовать любой другой порт, измените настройки виртуальной машины с помощью программы VBoxManage.