Pull to refresh

OpenVZ Web Panel

Reading time4 min
Views16K
Благодаря новогодним каникулам появилась возможность рассказать о проекте OpenVZ Web Panel. Данный проект занял 3-е место в номинации «Индивидуальный проект» конкурса «Лучший свободный проект России — 2010», проводимый журналом «Linux Format» (пруф-линк). Звучит немного пафосно конечно, но, как говорится, слов не выкинешь.

Interface

О главном


OpenVZ Web Panel представляет собой инструмент для управления серверами OpenVZ через веб-интерфейс. Основные фичи представлены ниже:
  • интуитивно понятный интерфейс
  • автоинсталлятор панели
  • поддержка 10 языков интерфейса (в том числе русский и английский)
  • создание/удаление виртуальных серверов
  • настройка лимитов виртуальных серверов (размер диска, объем памяти, лимиты на CPU)
  • возможность подключения нескольких физических серверов
  • бэкап/восстановление виртуальных серверов
  • клонирование виртуальных серверов
  • быстрая переустановка виртуального сервера
  • графики использования диска, памяти и процессора
  • многопользовательская система с ролями
Проект располагается на хостинге кода от Google по адресу http://code.google.com/p/ovz-web-panel/

В качестве команды для быстрой установки предлагается использовать следующее:
wget -O - http://ovz-web-panel.googlecode.com/svn/installer/ai.sh | sh
А после установки панель будет доступна по адресу:
http://<your-host>:3000

Если хочется получить более полное впечатление перед установкой продукта, можно посетить вики-страницу со скриншотами.

Немного истории


По роду своей деятельности мне довольно часто приходится создавать и настраивать машины для разработки и тестирования. Приходится это делать как на работе, так и дома. Физических серверов на все нужды не напасешься, поэтому виртуализация была естественным выбором. На работе для этого я в основном использую Parallels Virtuozzo Containers. Контейнерная виртуализация была выбрана благодаря скорости создания и работы контейнеров, их большой плотности на один сервер и удобству управления. Дома же я решил отказываться от прочих платформ в пользу OpenVZ (которая бесплатна, в отличие от Parallels Virtuozzo Containers). Однако с самой OpenVZ никакой панели управления не поставляется, но в вики есть страничка, где перечислены панели управления, поддерживающие OpenVZ. Правда, ни одна из этих панелей меня не устраивала по той или иной причине.

Этапы создания


Довольно долго я управлял серверами OpenVZ с помощью утилиты vzctl через командную строку, но в определенный момент это сильно надоело. Хотелось, чтобы люди имели сами возможность выполнить элементарные операции над своим виртуальным сервером (root-доступ и управление из консоли выглядело не лучшим вариантом). Повторное проглядывание списка существующих бесплатных панелей для OpenVZ ни к чему не привело. Я так и не выбрал проект, который готов бы был допилить. К слову сказать, кандидаты-то были, но сильное влияние Power Panel из Parallels Virtuozzo Containers не позволило сделать выбор. Так была сделана первая попытка написать собственную панель используя ExtJS, PHP, MySQL и Zend Framework.

Панель писалась (и пишется до сих пор) в свободное от основной работы время. Имея приличный опыт использования PHP+MySQL (9 лет практики и дважды ZCE), я все равно никак не мог сосредоточиться именно на написании проекта, а не вспомогательного кода. Ввиду небольшого количества времени, которое уделялось проекту, этот факт оказался весьма критичным, так как фичи добавлялись с черепашьей скоростью. Подливало масла в огонь еще и то, что я к тому моменту почитал про Ruby и Ruby on Rails и уже немного попрактиковался в этом. В сентябре прошлого года я решил переписать все с использованием Rails, чему, надо сказать, до сих пор очень рад. Теперь в проекте используется ExtJS, Rails, SQLite. За год он весьма основательно оброс фичами, прошел стадию обкатки и используется уже относительно немалым числом людей.

Почему Open Source


Проект изначально планировался бесплатным и был выложен в публичный доступ. Нашлись люди, которым проект был интересен и которые, возможно, как и я, были недовольны другими бесплатными панелями. Эти люди предлагали идеи по тем или иным фичам, в целом помогая проекту развиваться. Основные мои нужды по работе с OpenVZ панель уже удовлетворила, однако это не повод останавливаться. В issue tracker множество интересных идей по развитию, и читая их, понимаешь, что хочешь сам пользоваться той или иной фичей. Все это было бы невозможно, если бы проект был закрытым.

Целевая аудитория


Проект создавался исходя из нужд обслуживания машин для целей разработки и тестирования. Я не занимаюсь продажей виртуальных серверов и поэтому изначально панель не была ориентирована на данный сегмент. Однако ничто не мешает использовать панель в этой сфере. Более того, я обратил внимание, что небольшие хостинг-компании уже довольно активно используют OpenVZ Web Panel и продают виртуальные машины своим клиентам вместе с панелью. Поэтому, несмотря на мои внутренние нужды, такие фичи как Remote API и интеграция с биллингом WHMCS, тоже уже запланированы на версию 2.0.

Что дальше


Если вы пользуетесь OpenVZ, то, возможно, проект OpenVZ Web Panel вам пригодится. В вики-разделе на сайте проекта есть статьи с инструкциями по установке, конфигурированию, решению проблем. Issue tracker открыт для баг-репортов и новых идей по улучшению. Любая ваша помощь в разработке и развитии проекта — только приветствуется. А в планах и разработке сейчас — версия 2.0.
Tags:
Hubs:
Total votes 90: ↑84 and ↓6+78
Comments38

Articles