UNIX-подобные системы всегда связывали с командной строкой, поэтому уровень админов считался выше, а новички обходили такие решения стороной. Но времена меняются, даже в небольшой организации можно встретить *nix-системы, которыми приходится кому-то управлять. Нужно признать, что у GUI есть ряд преимуществ — наглядность, простота в использовании, понятность и меньшая вероятность ошибки. Выбрать среди десятков проектов непросто: несмотря на кажущуюся схожесть, у всех разный набор функций. Остановимся на самых знаковых.

 

Cockpit

Самый молодой проект обзора — ему всего два года. Cockpit — веб-панель управления серверами с открытым исходным кодом, разрабатываемая компанией Red Hat. Предназначена для контроля работы и состояния систем, развертывания услуг на базе контейнеров. С помощью понятного интерфейса очень просто выполнить основные задачи администрирования: здесь и запуск и остановка служб (systemd), и настройка устройств хранения (настройка LVM, создание RAID), конфигурация сети (bonding, VLAN, bridge), управление учетными записями пользователей, присоединение в домен, управление пользовательскими SSH-ключами, мониторинг нагрузки в реальном времени, проверка логов и многое другое. Особенно хочется выделить возможность работать с контейнерами Docker. Чтобы управлять несколькими серверами из одной веб-консоли, к Dashboard можно подключить панель управления кластерами Kubernetes или OpenShift v3. К несомненным плюсам Cockpit относится возможность использовать для управления сервером одновременно терминал и веб-браузер. В отличие от остальных решений, здесь такой подход не вызывает никаких проблем. Можно отдавать команды в консоли, а отслеживать результат в Cockpit, или наоборот. Более того, сам Cockpit предоставляет терминал, поэтому управлять сервером можно полностью из браузера.

Веб-служба Cockpit (Cockpit-ws), установленная на базовой системе и использующая сокет systemd, позволяет получать доступ к интерфейсу локальным пользователям с помощью PAM (настройки обычно /etc/pam.d/cockpit). На удаленных системах должен работать SSH-сервер. Для подключения можно использовать связку логин/пароль, возможен SSO-вход на основе Kerberos или использование публичного ключа. Предусмотрена возможность входа на удаленный сервер с текущими данными пользователя.

Управление производится при помощи веб-панели. Интерфейс не локализован, но, в принципе, это трудностей не создает, так как все параметры понятны и обычно требуется нажать ссылку или заполнить предложенные поля.

Минус Cockpit — привязка к systemd. В дистрибутивах, использующих другой менеджер служб, будут работать не все функции. Хотя это не мешает собрать все серверы под один интерфейс для более удобного доступа к ним.

Доступен в репозитории дистрибутива Fedora с версии 21. Кроме исходных текстов, на сайте проекта можно найти ссылки на репозитории разработчиков для Fedora, RHEL/CentOS, Arch Linux и Ubuntu. Версия Ubuntu не указана, но, если учесть привязку к systemd, без напильника будет работать в 15.04/15.10. Запустить можно и в более ранних версиях, использующих Upstart, в том числе и в популярной на серверах 14.04 LTS, но некоторые функции работать не будут. Установка:

$ sudo add-apt-repository ppa:jpsutton/cockpit
$ sudo apt-get update
$ sudo apt-get install cockpit
$ sudo apt-get install glib-networking
$ sudo /usr/sbin/remotectl certificate --ensure --user=root
$ sudo /usr/libexec/cockpit-ws

Опционально в строке запуска cockpit-ws можно заменить порт (—port) и запретить использование TLS (—no-tls), но лучше использовать конфигурационный файл cockpit.conf. Во время установки генерируется самоподписанный сертификат. По умолчанию для управления используется протокол HTTPS и порт 9090 (https://ip-server:9090). После входа пользователя встречает панель мониторинга, показывающая графики нагрузки CPU, памяти, сети и I/O дисковых операций. Ниже показан сервер, на котором установлен Cockpit; чтобы получить по нему данные, достаточно щелкнуть по ссылке. Все настройки разбиты в шесть меню, назначение которых понятно. Чтобы подключить новый сервер, достаточно выбрать Add Server, указать его имя или IP. Флажок «Log in with my current credential» позволит использовать текущие данные для входа. Настройки работы самого Cockpit обычно не требуются, все вопросы по администрированию изложены в Cockpit Guide.

Cockpit позволяет управлять несколькими серверами
Cockpit позволяет управлять несколькими серверами
 

Ajenti

Визитной карточкой Ajenti изначально был красивый интерфейс, использующий технологию AJAX. Первое время набор функций ограничивался системными параметрами: сеть, firewall, файл hosts, монтирование дисков, настройка DNS и NFS, учетные записи пользователей и групп, cron, просмотр логов, управление пакетами. Понятная среда, не перегруженная установками, позволяла проще освоиться даже неопытному админу. Необходимо лишь заполнить предложенные поля, а мастер проверит установки и подстрахует в случае ошибок. Риск получить неработающую конфигурацию минимален. Но знать, что делать, все-таки нужно, так как в Ajenti нет пошаговых мастеров, которые помогут настроить сервис, просто отвечая на вопросы. Также администратору показываются различные графики: загрузка процессора, ОЗУ и сетевых интерфейсов, состояние swap и другие.

Развиваясь, Ajenti постепенно стал обрастать возможностями настройки и управления основными сервисами (веб, почта, FTP, СУБД и прочее), функциями мониторинга, появился файловый менеджер, консоль, редактор конфигов. Дополнительные возможности реализованы при помощи плагинов. Причем плагины при установке подключаются автоматически исходя из наличия определенных сервисов, так что лишней функциональности панель не несет. Если корректная работа плагина требует доустановки некоторых пакетов (они помечаются восклицательным знаком), выдается подсказка и ссылка для установки. Также в 2013 году разработчики анонсировали новое расширение Ajenti V, которое добавляет функции панели управления веб-сайтами, позволяя быстро разворачивать веб-серверы, приложения, базы, настраивать маршрутизацию и email (Exim 4 и Courier IMAP). Поддерживаются настройки PHP, Python, Ruby и Node.js. И хотя Ajenti V до сих пор находится в состоянии бета, это достаточно популярное решение.

Интерфейс локализован и не перегружен, Dashboard можно полностью подстроить под себя, размещая виджеты по своему усмотрению. Распространяется по условиям GNU GPL. Разработчики по заявке могут легко адаптировать Ajenti под любые системы. Встраивание в коммерческие продукты требует определенных отчислений. К плюсам Ajenti можно отнести небольшие размеры и низкие системные требования: около 30 Мбайт ОЗУ и 75 Мбайт HDD. Написан на Python с фреймворком gevent и JavaScript с AngularJS.

Официально поддерживаются Debian, Ubuntu, RHEL, CentOS, Gentoo и FreeBSD. Для этих систем имеются готовые пакеты и репозитории, а также установочный скрипт, при помощи которых установить Ajenti не составляет проблем. Для остальных *nix-систем доступен исходный код. Весь процесс самостоятельной сборки описан в документации, и особых затруднений она не вызывает.

$ wget http://repo.ajenti.org/debian/key -O- | sudo apt-key add -
$ sudo echo "deb http://repo.ajenti.org/ng/debian main main ubuntu" >> /etc/apt/sources.list
$ sudo apt-get update
$ sudo apt-get install ajenti
$ sudo service ajenti restart

После установки будет сгенерирован самоподписанный сертификат и в консоли выведется информация для входа (по умолчанию root/admin). Ajenti слушает на HTTPS/8080-м порту, поэтому набираем в браузере https://localhost:8000.

Возможности Ajenti расширяются при помощи плагинов
Возможности Ajenti расширяются при помощи плагинов
 

Vesta CP

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


7 комментариев

Подпишитесь на ][, чтобы участвовать в обсуждении

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

Check Also

Espruino Pico. Учимся программировать USB-микроконтроллер на JavaScript и делаем из него токен авторизации

Несмотря на огромное количество устройств на базе микроконтроллеров, созданных на волне ус…