четверг, 29 сентября 2011 г.

Знакомьтесь, YaST... WebYaST!

Доброго времени суток!

Что-то подзабросил я свой блог, ну да ничего...
За прошедшее время произошло много всего, но одно событие более других должно повлиять на состояние сего блога - я обзавелся домашним сервером. Это обстоятельство позволяет теперь экспериментировать с разными интересными решениями и технологиями. Одним таким экспериментом стала установка 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 ar -r http://download.opensuse.org/repositories/YaST:/Web/openSUSE_11.4/YaST:Web.repo

Далее устанавливаем пакеты с ядром системы:

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-а.

Веб-интерфейс

Теперь можно посмотреть, как это все выглядит и работает:

Страница входа в панель.


Главный экран.


Управление службами.


Все модули.


Настройки Firewall.


Установка обновлений.


Локализация неполная из-за того, что сейчас ведется очень активная разработка, и даже английский вариант постоянно меняется.

Альтернативные интерфейсы

Наличие отдельного back-end-а позволяет использовать не только предлагаемый веб-интерфейс, но и собственные решения.
В качестве примера доступно приложение-клиент для платформы Android: YaSTroid

Разработка

На текущий момент WebYaST доступен для следующих систем: openSUSE 11.3, openSUSE 11.4, SLE* 11, SLE* 11 SP1. В будущем планируется отвязать проект от платформы SUSE и сделать его кроссдистрибутивным.
Исходный код проекта открыт и доступен на GitHub: https://github.com/webyast
Подробнее о разработке можно прочитать здесь.

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

Комментариев нет:

Отправить комментарий