Преподаватель садится за любой компьютер, вводит логин и пароль. Войдя в систему, запускает по значку на «рабочем столе» панель управления и выбирает программы, с которыми будут работать студенты на уроке. Студенты садятся за компьютеры, вводят логины и пароли, на их рабочих столах появляются значки программ, разрешённых преподавателем. Преподаватель в любой момент может запретить использование программы или открыть доступ к новым.
Программы добавляются через desktop-файлы с расширенным синтаксисом. В них содержится информация о том, какой пакет ставить и у каких файлов убрать RX-права, когда программа запрещена. Desktop-файлы помещаются на сервер, откуда компьютеры в аудиториях их скачивают по команде с панели управления и, в случае необходимости, устанавливают пакеты через apt-get.
Панель управления - это web-интерфейс. Можно заходить с любого компьютера, если знать логин и пароль, для преподавателей в классах работает single sign on.
Из дополнительных возможностей:
- Просмотр/Управление рабочим столом студента (через TurboVNC).
- Показ выбранного рабочего стола всем в классе (через TurboVNC).
- Разрешение доступа только к отдельным сайтам (на каждой машине установлен tinyproxy).
- Разрешение доступа к Интернету.
- Разрешение использовать “флешки”.
- Блокировка компьютера (с красивой анимацией замка).
- При выходе всё, что в /home/student сжимается и отправляется на сервер (чере rsync), а содержимое папки стирается.
- Наверняка, что-то еще полезное о чем я забыл.
На клиентах:
- Сильно доделанная и обрезанная Kubuntu, от KDE остался Kwin и несколько программ (прошлая версия была на OpenBox, но было много проблем в основном с Lazarus).
- Клиент для связи с сервером на Python. Дополнительные программы общаются c ним по DBus.
- Рабочий стол и диалог входа на Qt/С++.
- Панель tint2.
- Много shell-скриптов.
На сервере:
- FreeBSD (так исторически сложилось).
- Сервер на Python, передающий команды от web-интерфейса клиентам и собственно этот web-интерфейс предоставляющий. Этот же сервер авторизует клиентов.
- Nginx.
- Rsync для сохранения данных пользователей.
- MySql, который там совсем не нужен, но никак не уберу.
За кадром: Установщик на базе SystemRescueCd для лаборантов. Нужно только вставить диск или флешку, перегрузиться и ввести номер рабочего места и аудитории, далее всё настроится автоматически: на жёсткий диск через FSArchiver развернется образ с Samba и в нужные файлы впишутся правильные цифры. Весь процесс займёт 5-7 минут. На этом же диске/флешке в меню есть пункт для настройки сервера сетевой загрузки на случай необходимости установить новый класс.
Под управлением этой штуки 4 класса в среднем по 30 машин в каждом.
>>> Просмотр (2560x2020, 412 Kb)