Содержание статьи
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.
Хакер #204. Шифровальщик для Android
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.
Vesta CP
Vesta CP — панель управления сервером, написана сисадмином для сисадминов и ориентирована в первую очередь на хостеров, но может использоваться для наглядного управления сервисами. В процессе разработки (с 2007 года) переписывалась несколько раз, вероятно поэтому результат сегодня признают многие админы и предлагают своим пользователям хостеры. Vesta базируется на философии UNIX. Функциональность заложена в отдельных скриптах (на сегодня их более 350), каждый из которых выполняет только определенную работу (собственно, и проект начался со скрипта для создания виртуального хоста Apache). В принципе, их названия можно не знать, но часть операций администрирования (например, добавление СУБД, находящейся на другом узле) выполняется исключительно из командной строки, да и некоторые команды сами по себе могут помочь в администрировании. Данные хранятся в текстовых файлах. Все это объединено в понятном интерфейсе.
Интерфейс локализован, в настройках легко разобраться даже новичку. Все основные задачи собраны в двух меню. Одно управляет основными приложениями и состоит из семи пунктов (User, Web, DNS, Mail, DB, Cron и Backup). Через верхнее меню можно указывать IP-адрес, просматривать графики нагрузки, статистику и журналы работы Vesta, управлять сервисами, настраивать правила iptables и обновлять саму веб-панель. В настоящее время Vesta позволяет управлять веб- и почтовыми доменами, создавать базы данных и задания Cron, редактировать DNS-записи. Администрировать сервер при помощи Vesta могут несколько пользователей. Многие операции (например, создание виртуального веб-сервера) выполняются в один клик, фактически запускается один из скриптов, затем остается только заполнить поля, все остальное Vesta сделает сама. Не нужно вникать в особенности сервиса. В случае неудачи выводится подробное сообщение об ошибке. Так же легко можно удалить или отключить виртуальный сервис. Возможности расширяются при помощи плагинов. Проект предлагает коммерческий плагин, реализующий функции файлового менеджера и SFTP.
Поддерживаются RHEL/CentOS от 5, Debian от 6, Ubuntu от 12.04. Разработчики предлагают скрипт установки, который в процессе установит готовый набор: nginx, Apache, Exim, Dovecot, MySQL, vsftpd и firewall + fail2ban.
$ curl -O http://vestacp.com/pub/vst-install.sh
$ sudo bash vst-install.sh
Далее будут заданы несколько вопросов и загрузятся файлы. Для подключения следует использовать HTTPS, 8083-й порт. Если планируется использовать другие серверы, на сайте проекта нужно сгенерировать установочный скрипт по требуемой конфигурации, указав сервер веб, mail, FTP, firewall, DNS, дисковые квоты, имя узла и прочие параметры. Подобные пакеты можно создавать, сохранять и затем распространять среди пользователей и в уже установленной Vesta.
Core-admin Free Web Edition
Core-admin — коммерческое решение для управления несколькими серверами из единой консоли, контроля состояния, повышения общей безопасности и стабильности работы всех систем. Для подключения нового сервера к интерфейсу на него устанавливается программа-агент, обеспечивающая все нужные проверки (checkers). Подключается по peer-to-peer протоколу BEEP, поэтому все системы связаны не только с сервером, но и между собой. Кроме проверок работы серверов с установленными агентами, можно контролировать другие системы через работу сетевых сервисов — ICMP, SSH, HTTP, IMAP, POP3, FTP.
Поставляется с набором готовых приложений, выполняющих задачи администрирования: анализ журнала в режиме реального времени, блокировку IP, сбор статистики, cron и многое другое. Предоставляются инструменты для сбора статистики, управления приложениями и процессами, просмотра событий, централизованного управления учетными записями и сетевыми интерфейсами и так далее. Реализовано множество опций, позволяющих повысить безопасность серверов: определение перебора SSH-логинов, изменения в crontabs, несанкционированных модификаций в файлах, отслеживание изменения параметров авторизации или изменения IP-адреса и так далее. Для поиска событий в журналах можно составить правило и команды, которые будут выполнены, если обнаружатся совпадения. Интерфейс позволяет отдавать консольные команды выбранным узлам. Учитывая, что MySQL часто используется на серверах, реализован интерфейс для выполнения основных операций: создания баз, пользователей и так далее. Реализовано четыре уровня привилегий пользователей: Platform admin, Machine admin, Application admin и Object admin. То есть четко можно указать, что разрешено конкретному пользователю на конкретном сервере. Каждый уровень имеет свои возможности и свою панель управления.
Интерфейс простой, при выборе пункта открывается новая вкладка. Не локализован, но большинство параметров не требует пояснений. Хотя документацию прочитать все равно придется, чтобы понять некоторые особенности работы Core-admin. Предлагается три версии: Base Edition, Web Edition и Free Web Edition. В Web Edition, кроме сказанного, также реализованы функции, необходимые для простого управления хостингом: веб, почта, FTP, СУБД и DNS, управление сертификатами и конфигурациями сайтов, тарифами веб-хостинга, контроль ресурсов и прочее.
Версия Free Web Edition позволяет управлять настройками до десяти доменов, лицензия дает возможность использования в коммерческих проектах. Поддерживается Ubuntu 12.04 и Debian 5.0.
ISPConfig
ISPConfig — уже довольно развитый проект, предоставляющий панель управления хостингом, которая дает возможность управлять из одного интерфейса несколькими серверами, настраивать виртуальные веб (Apache 2 и nginx) и FTP (PureFTPD) серверы, базы и пользователей MySQL, создавать виртуальные почтовые домены и почтовые ящики, редактировать DNS-записи, управлять SSL-сертификатами, собирать статистику (Webalizer и AWStats), отслеживать обращения в техподдержку. Есть настройки почтовых фильтров, антиспам- и антивирус-проверок, автоответчик, список рассылок и многое другое. Администратор может устанавливать email и дисковые квоты, лимиты трафика, управлять заданиями cron, изменять IP (поддерживается IPv6), добавлять правила firewall, управлять репозиториями, обновлять пакеты, просматривать журнал.
Возможностей достаточно много. Из особенностей можно выделить поддержку технологии виртуализации OpenVZ. Реализовано четыре уровня доступа: администратор, реселлер, клиент и email-клиент. Интерфейс локализован (основные пункты) и понятен, все настройки распределены по десяти пунктам меню, назначение которых ясно из названия. В большинстве случаев помогает визард, нужно просто заполнить предложенные поля, при ошибке появится предупреждающая надпись. Некоторые настройки поддерживают шаблоны, это упрощает конфигурирование большого числа сервисов. Чтобы разобраться с возможностями интерфейса, достаточно потратить полчаса, все находится на своих местах и там, где ожидаешь.
Возможности расширяются при помощи аддонов, на сайте доступны ссылки на некоторые расширения сторонних разработчиков. Официально поддерживаются Debian 5+, Ubuntu 8.10+, CentOS 5.2+, Fedora 10+, openSUSE 11.1+, но работает в любых других *nix-дистрибутивах. Установка в отличие от остальных описанных решений чуть сложнее, вначале следует развернуть окружение, а затем поставить панель. Но именно это и позволяет установить ISPConfig на любом дистрибутиве, развернуть кластер из нескольких систем или использовать несколько серверов: один будет обеспечивать работу веб, другой — БД, третий — FTP и так далее. Проект предлагает инструкции по развертыванию в разных вариантах конфигураций.