Доброго времени суток!
Что-то подзабросил я свой блог, ну да ничего...
За прошедшее время произошло много всего, но одно событие более других должно повлиять на состояние сего блога - я обзавелся домашним сервером. Это обстоятельство позволяет теперь экспериментировать с разными интересными решениями и технологиями. Одним таким экспериментом стала установка WebYaST, о котором и хочу рассказать...
Наверное, все те, кто знаком с миром Linux, знают или хотя бы краем уха слышали про менеджер настроек в операционных системах openSUSE, SLED и SLES, гордо называемый YaST. Эдакая «Панель управления» для Linux-систем.
Но немногие в курсе, что год назад на конференции OSC 2010 (openSUSE Conference) был представлен проект WebYaST, переносящий функционал YaST на просторы интернета. Над проектом велась и ведется активная работа, и впервые он стал доступен вместе с операционной системой openSUSE 11.4.
Что же предоставляет WebYaST:
- Удаленное управление системой, используя только браузер
- Отсутствие необходимости экспертных знаний по настройке системы
- Широкие возможности по настройке системы
- Возможность легкой интеграции сторонних модулей
- Широкие возможности по брендированию
- REST-интерфейс
Кого заинтересовало — прошу под кат.
Постараюсь подробнее рассмотреть возможности системы, рассказать о внутреннем устройстве и привести пример установки.
Возможности WebYaST
Итак, на текущий момент доступны следующие возможности:
Конфигурация системы:
- Базовые настройки сети
- Базовое управление пользователями
- Установка и изменение пароля для root-а
- Настройка уведомлений администратора, включая SMTP
- Запуск / остановка служб и сервисов
- Настройки часового пояса, даты и времени
Управление системой:
- Обзор статуса системы (используемая / свободная память, использование диска, сетевой монитор и пр.)
- Просмотр основных Логов
- Установка обновлений и патчей
- Удаленная перезагрузка системы
Архитектура проекта
Проект написан на Ruby on Rails и представляет из себя две отдельные системы, Back-end и Front-end, каждый компонент работает отдельно, в качестве веб-сервера используется Nginx.
YaST Webclient
Веб-приложение, отвечающее за пользовательский интерфейс WebYaST, использует собственный веб-сервер и не имеет системных привилегий. Может находится не на администрируемой машине.
YaST Webservice
Это Back-end для WebYaST, он также использует собственную конфигурацию веб-сервера, имеет доступ к системе с особыми правами (но не root-доступ).
Более наглядно архитектура представлена на следующей схеме:
Установка
Приведу пример установки, в которой back-end и front-end установлены на одной машине.
Для установки необходимо подключить следующий репозиторий:
Далее устанавливаем пакеты с ядром системы:
zypper in webyast-base-ws webyast-base-ui
Теперь можно запустить Back-end:
rcyastws start
По адресу
http://localhost:4984/
должна отобразиться пустая страница, так происходит потому, что мы ещё не установили никаких модулей.
Строго говоря, наборы модулей back-end-а и front-end-а могут отличаться, в зависимости от требуемого функционала. Для обзора предлагаю установить все, что есть:
zypper in webyast-*-ws webyast-*-ui
После завершения установки перезапустим службы:
rcyastws restart
rcyastwc restart
Теперь на странице back-end-а можно увидеть список доступных служб, а сама панель доступна по адресу:
https://localhost:54984/
По-умолчанию вход возможен только под пользователем root администрируемой системы, однако после авторизации, используя компонент Роли, можно предоставить доступ различным пользователям к различным модулям системы.
Переназначить порты, настроить алиасы и прочее можно в соответствующих конфигах Nginx-а.
Веб-интерфейс
Теперь можно посмотреть, как это все выглядит и работает:
Страница входа в панель.
Локализация неполная из-за того, что сейчас ведется очень активная разработка, и даже английский вариант постоянно меняется.
Альтернативные интерфейсы
Наличие отдельного back-end-а позволяет использовать не только предлагаемый веб-интерфейс, но и собственные решения.
В качестве примера доступно приложение-клиент для платформы Android: YaSTroid
Разработка
На текущий момент WebYaST доступен для следующих систем: openSUSE 11.3, openSUSE 11.4, SLE* 11, SLE* 11 SP1. В будущем планируется отвязать проект от платформы SUSE и сделать его кроссдистрибутивным.
Исходный код проекта открыт и доступен на GitHub: https://github.com/webyast
Подробнее о разработке можно прочитать здесь.
Сейчас проект очень активно развивается, и было бы интересно увидеть, что же получится в итоге.
Комментариев нет:
Отправить комментарий