OpenVZ Web Panel

    Благодаря новогодним каникулам появилась возможность рассказать о проекте 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.

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 38

      +10
      Приятно, что разработчик из Новосибирска :)
        –4
        Вы убили Virtuozzo :-)
          +8
          «Лучший свободный проект», с копирайтом в шапке – это пять :D
            +6
            Это довольно тонкий момент и здесь все, вроде, нормально. Код распространяется под GPLv2, а copyright позволяет заявить об авторстве кода.
          +3
          отличный проект
            +1
            Мне, как хостеру, проект интересен, но без API его использование в реальном проекте невозможно. Ждём версию 2.0
              +1
              Могу лишь сказать, что работа над API началась и в версии 2.0 он будет :)
                0
                Чем вас не устраивает API PIM?
                • UFO just landed and posted this here
                    0
                    Ну… ничего там навороченного нет.
                    А тут будет ваш запрос в API, который обратится, по сути, к API PIM и что-то сделает… зачем лишнее звено?

                    Эта штука из топика скорее всего для каких-то ручных задач удобна, как более легкая замена монстроподобному интерфейсу Virtuozzo и иже с ними.
                      0
                      Кстати, насчет малодокументированности — у вас есть отличный случай попросить документацию или разъяснения у топикстартера, он, вроде бы как, там работает :)
                      • UFO just landed and posted this here
                          0
                          У меня все операции сделаны через ssh sudo… :)
                  +1
                  Зашел в карму плюсануть, увидел что Вы работаете в Parallels.
                  Интересно узнать, а они в курсе что Вы такую замечательную штуку пишите?
                    +1
                    Что самое интересное, что у них в договоре есть интересные пункты на тему кода, который вы пишете, пока работаете там.
                      +1
                      Не совсем так, вы говорите про код который он пишет в соответствии с тех.заданием работодателя, а если он пишет для себя, то он никому ничего не должен.
                        0
                        Там были пункты на тему смежных продуктов, насколько я помню
                      +2
                      Да, работадатель в курсе и ничего против не имеет :) На самом деле Power Panel (или PIM) обладает заметно большим количеством функций и OpenVZ Web Panel не сильно большую конкуренцию ему составляет. Да и вообщем-то цели у продукта были немного другие.
                        +2
                        Это хорошо! Приятно знать что паралели не мешаю. Удачи Вам с проектом!
                      +1
                      Выглядит отлично, пошел тестить.
                        0
                        установил, понравилось.
                          +1
                          во-первых, респект за проект!

                          пара вопросов:

                          1.этот инсталлятор по ссылке — куда, что и как он ставит в систему?
                          2.почему не завернули в пакет?
                          3.как обновлять пакет?
                          4.
                          «http://:3000»

                          тут не совсем понял: панель вешается в виде демона? откуда 3000 порт?
                            +1
                            Меня тоже интересует, как обновлять панель.
                            Демон — ruby /opt/ovz-web-panel//script/server webrick -e production -p 3000 -b 0.0.0.0 -d
                              0
                              1. Инсталлятор — это автоматическое скачивание пакета, распаковка его в /opt/ovz-web-panel, создание init-скриптов и запуск панели на 3000 порту (кастомизируется). Все эти шаги вы можете проделать руками. Исходник исталлятора также доступен для изучения.
                              2. В прошлом у меня был опыт пакетирования одного продукта — это очень приличные усилия по подержанию в актуальном состоянии. Мне значительно дешевле поддерживать универсальный автоинсталлятор, чем пакеты для множества дистрибутивов Linux. Меня уже спрашивали о создании пакета для Ubuntu, Debian, CentOS, Arch Linux и Gentoo. Я пока не решился ввязываться в пакетирование еще раз.
                              3. Обновляется пакет той же командой, что и ставится.
                              4. По-умолчанию панель использует webrick (HTTP-сервер на Ruby) и вешается на 3000 порт. Если хочется использовать Apache/nginx, то можно посмотреть в сторону passenger aka mod_rails. Я использую passenger на своих серверах, но это чуть сложнее и дольше деплоить.
                                +3
                                Я думаю, стоит доверить сборку пакетов людям, кто держит репозитории для каждой из систем.
                                В версии для iPhone я бы хотел увидеть текущую загрузку каждой VE в отдельности, а информация по лимитам можно было бы вообще вынести за ссылку.
                                Спасибо за панельку, тестирую. Пока все выглядит очаровательно, желаю удачи в развитии.
                              0
                              Спасибо!

                              1.7 крутится уже около недели, полет нормальный. 4 ноды, 22 виртуалки.

                              Мобильная версия только для iphone? Можно ли попасть, например, с nokia (symbian)? При заходе на host:3000 отображается та же версия что и для браузера на компьютере.

                              При детальном отображении статистики по использованию ресурсов не совсем понятно, что в значениях по оси Х.

                                0
                                Судя по коду, мобильная версия только для iPhone, iPod Touch и iPad, (/(Mobile\/.+Safari)/).
                                Что не понятного по оси X? Это сколько всего доступно, а по Y — сколько БЫЛО использовано. Все логично.
                                  0
                                  Мобильная версия пока только под iphone (и то довольно урезанная). Запросы под другие платформы были, но пока это выглядит довольно ресурсоемко.

                                  На графике по оси Х — минуты. В ExtJS 4 обещают более навороченные графики, поэтому в будущем планировал сделать их более понятными.
                                  0
                                  А ITV Project не ваших рук дело? )
                                    0
                                    Никогда о таком не слышал :)
                                      0
                                      А голубенький интерфейс в комплекте с чем-то идёт? Просто и там, и там практически одно и то же, вот и спрашиваю.)
                                  +1
                                  Выглядит отлично. Удачи в развитии!
                                    0
                                    У ovz-web-panel есть плохая особенность — хранить статус машины а не получать его. В итоге, упавшая VDS в списках видна как работающая.
                                      +2
                                      Думаю в ближайшем будущем порешаю эту проблему. Первые попытки были сделаны еще в 1.6, но из-за особенностей SQLite я решил пока повременить с подобным улучшением.
                                        0
                                        Ну а в остально все отлично.
                                      –4
                                      У меня похожая панелька только не для openvz, а для всего спектра хостинговых услуг.
                                      Только на dhtmlx, он попи*же будет, ну и естесна не опенсорс )
                                      В общем так держать, оно всегда кому то пригодится.

                                      Only users with full accounts can post comments. Log in, please.