Как я внедрял Linux в учебном заведении



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

Давным-давно работал я техником (что-то вроде лаборанта, но более узкоспециализировано) в одном из учебных заведений среднего профессионального образования нашей необъятной родины. Смотрел, как проходят занятия, видел, как неаккуратно обращаются с хрупким программным обеспечением студенты и преподаватели, участвовал в массовых рутинных операциях, таких как: «переустановить некую самую популярную ОС на 30 и более разных компьютеров», «ой, нам для нужд учебного процесса срочно нужно поставить вот этот программный пакет, но аудиторию ещё не знаем» и далее в таком же духе.

Был я не совсем доволен положением вещей. Казалось мне, что всё должно быть проще, легче, изящней и вообще работать чуть ли не само (знакомое чувство?). В итоге взрывоопасная смесь из юношеского максимализма, студенческой неопытности и желания изменить мир сотворили в моей голове «идеальную» картину, как оно всё-таки должно быть.

Под катом много текста c картинками, технические подробности, одна тяжелая гифка и 6-ти минутная видео презентация.

А идея была проста, ставлю везде дистрибутив Linux, ведь все знают, что они (линуксы) безопасны, красивы и вирусов там нет. Пишу небольшой велопарк, для автоматизации рутины… Профит!

На самом деле, к тому времени с Linux и открытым ПО я был знаком достаточно хорошо и вполне осознавал отсутствие привычных программ для преподавателей и/или учебных материалов по открытым аналогам. Насколько мне было известно, об эти проблемы разбились многие внедрения. Но я все продумал! Надо было только сесть, быстренько всё написать и настало бы всеобщее счастье. Неужели такие мелочи, как человеческие привычки и нежелание учиться чему-то новому могут остановить дотошного студента? В общем-то, они могли бы остановить, но начальство было благосклонно к моему энтузиазму, за что ему большое спасибо. Пока я копошился с написанием своих велосипедов, о которых ниже, в нашей стране в сфере образования стали усиленно бороться с нелегальным ПО. Тут мои идеи пришлись кстати.

Помимо чисто эгоистического «облегчить работу себе», я искренне желал сделать обучение в компьютерных классах проще и плодотворнее как для студентов, так и для преподавателей. Простая замена «самой популярной ОС» на дистрибутив Linux, с моей точки зрения, — это «шило на мыло». Такой переход упрощает жизнь бухгалтерам и юристам, а обслуживающий персонал как бегал от компьютера к компьютеру, так и продолжит бегать (ну, может чуть меньше). Собственно, вот список проблем, которые я вознамерился решить. И решил.

ПО в компьютерных классах требует обслуживания. Его надо устанавливать и обновлять на многих машинах


Могу поставить одну программку на один компьютер, на два — уже не могу: однообразная работа меня пугает. Тут очень кстати пригодилась пакетная система установки. Собрал пакет, положил в репозиторий, на компьютерах прописал обновление при загрузке. Репозиторий от Ubuntu скачал целиком и разместил в локальной сети. Часть пакетов заменил, часть добавил. Написал несколько скриптов для сборки пакетов и копирования обновлённого репозитория на сервер.

Теперь, если нужно обновить ПО, достаточно кинуть пакет в репозиторий и перезагрузить компьютеры.

Красивый, лёгкий внешний вид без возможности его поменять


Студенты любят проявить свою индивидуальность и подкрутить внешний вид общественных компьютеров под себя. Иногда у них это получается не совсем политкорректно, тогда преподаватели прибегают в панике, ведь через политики псевдобезопасности «самой популярной ОС» заблокировано меню для смены обоев. Это обстоятельство ничуть не пугает студентов, они ведь в курсе, какую картинку надо заменить… И далее в том же духе. Фантазия молодого поколения и стремление «выделиться» не знает преград. То есть не знала.

Будучи фанатом KDE, я бы с удовольствием поделился радостью использования этой чудесной среды, но здесь легендарная KDE-шная настраеваемость как раз совсем не нужна, поэтому выбор пал на оконный менеджер OpenBox и pypanel. И почти всё. Вот такой минимализм. Поработала такая связка и выяснилось, что c OpenBox не дружит Lazarus (клон Delphi) и некоторые программы из-под wine.

Итоговый вариант, работающий по сей день, был постороен на оконном менеджере KWIn и панели tint2. KWin умеет рисовать и «современные красивости» через OpenGL, и «по старинке» без проблем работать на старом железе, которое на тот момент имело место быть.



Внимательный читатель уже заметил недостающий компонент в этом «рабочем столе-описании» — собственно рабочий стол, на котором рисуются иконки. Вот и велосипед номер один. «Рабочий стол» я написал сам. Были у меня к этому компоненту специфичные требования, да и писать его просто. Нужно только правильные X11 флаги назначить окну, а флаги эти быстро смотрятся в реализации KDE-шного рабочего стола (вот она, сила open source!). Мой рабочий стол должен был быть предельно простым: уметь отображать .desktop-файлы (аналог .lnk в Windows, только текстовый) из конкретной папки и показывать «нескучные обои» из конкретного файла. Вот только запускать программы он должен был не самостоятельно, а по DBUS (это такой IPC) через «клиента для управления», о котором ниже. Последняя версия рабочего стола была переписана с использованием QML, и стало всё совсем весело и анимировано.

Безопасность и здоровье всем компьютерам!


Многие студенты и преподаватели относятся к этим понятиям по принципу «не моё — не жалко». Такое отношение пользователей крайне расстраивает обслуживающий персонал. Я подумал немного и сделал из студенческих машин «терминалы», возвращающиеся к своему исходному состоянию при смене пользователя или перезагрузке. Сделано это было обычным скриптом на баше, зачищающем home и tmp. Просто и эффективно.

Свои данные везде или наше персональное облако


Если просто стирать все студенческие наработки и заставлять их делать каждый раз всё заново… Это было бы круто! Наверное, скорость и качество их работ сильно возросли бы, и уже ко второму курсу они могли бы… Но этому плану по улучшению качества образования не суждено было сбыться. Отчасти потому, что мне хотелось поиграть с FUSE и написать свою кеширующую файловую систему. Написал. Некоторое время она поработала, но потом мне надоело с ней возиться. На баше набросал скрипт, который при выходе пользователя избирательно сжимает файлы из домашнего каталога и бросает на сервер через rsync, а при входе загружает и распаковывает. Побочный эффект: студенты больше не привязаны к конкретным компьютерам и аудиториям. Ура!



Хотим указывать, какое ПО можно использовать


Пользователи в основной своей массе юридически безграмотны. Объяснить, что ряд программ нельзя использовать в учебном процессе, не заплатив крупную сумму, очень сложно, так ещё и ряд этот периодически пополняется без ведома сотрудников, ответственных за вопросы легальности установленных программ.

Для начала я подошёл к решению этого вопроса классически: работать все будут из-под ограниченного аккаунта. Именно все, как студенты, так и преподаватели из-под одного обычного аккаунта, заведенного на всех машинах. Это, а также самоудаляющиеся данные, да и сам по себе Linux делают установку стороннего неодобренного софта затруднительной.

Кнуты без пряников внедрению не подлежат


Ограничить теперь можно всё и вся и почувствовать себя настоящим злодеем. Но такой задачи не стояло, поэтому нужно было сделать что-то приятное… Сначала преподавателям и учебному процессу. Ради этой благой цели я написал «Панель управления» компьютерным классом. Зачем писать своё, когда уже есть неплохие и даже открытые решения? Мне хотелось веб-интерфейс. Ведь так здорово зайти с любого компьютера (смартфона, планшета) и порулить компьютерным классом. И преподаватель не привязан к конкретной машине.



«Панель управления» — это сервер, принимающий команду с веб-интерфейса и пересылающий всем выделенным компьютерам. HTTP- и сетевой IPC-сервер я объединил в одной программе (сейчас я бы так не делал, совсем не масшабируется) ради удобства обработки событий и общей памяти.

Клиент для упомянутого сервера я установил на все машины под управлением Linux. Клиент подключается к серверу при включении компьютера и ждёт команд. Большинство команд просто запускают bash-скрипты.

Концентрация внимания студентов


Функционал «Панели управления» расширялся постепенно. Но первой и, пожалуй, главной «фичей» было разрешение на использование программ. Выглядит это так: студенты садятся за компьютеры, вводят свои логины и пароли и видят пустой рабочий стол. Преподаватель садится за компьютер, вводит свой логин и пароль и видит на рабочем столе иконку «Панели управления». При нажатии на иконку открывается браузер со страницей «Панели управления». На этой странице из списка установкой галочек выбираются программы, которые нужны преподавателю для занятия. Иконки выбранных преподавателем программ появляются на рабочих столах студентов. Теперь студенты могут запустить программы, щелкнув по иконкам, или сам преподаватель может со своего компьютера запустить нужные программы на всех или на выделенных компьютерах студентов.



Работает эта магия следующим образом. Сервер посылает клиентам команду «установить application_name». Клиент, получив команду, скачивает с HTTP-сервера файл «application_name.desktop». В этом файле к стандартным полям я добавил ещё несколько, в которых перечислены пакеты для установки, основные файлы и директории приложения и т. д.

Когда desktop-файл загрузится, клиент попытается установить перечисленные в нём пакеты и задать права на чтение/запуск указанным файлам приложения. Если преподаватель решает, что хватит студентам работать с какой-то из разрешенных программ, он снимает галочку в «Панели управления». Клиентам приходит команда «удалить application_name», программа закрывается, desktop-файл удаляется, с указанных файлов снимаются разрешения на чтение и выполнение. Установленные пакеты остаются нетронутыми. Переустанавливать каждый раз слишком накладно.

Пока программа ставится и настраивается, на рабочем столе весело подпрыгивает полупрозрачная иконка приложения.
Когда выходит новая интересная программка, я кидаю пакет в репозиторий, а на сервер desktop-файл, и в «Панели управления» появляется программа, доступная для выбора преподавателем.

Наблюдение за работой


Студенческие машины раз в несколько секунд посылают на сервер уменьшенный скриншот рабочего стола. Эта картинка демонстрируется преподавателю в «Панели управления». Но этого мало. Все конкурентные решения умеют смотреть и управлять удаленным рабочим столом. А чем я хуже?

Тут возникла ещё одна «хотелка»: режим показа одного рабочего стола всему классу. Была такая задача и подумал, что неплохо бы встроить и этот функционал. Обычный x11vnc из поставки Ubuntu сильно тормозил при подключении 25 экранов, да и при 10 было уже некомфортно. Спас положение TurboVNC, который показал приемлемую производительность. На «Панель управления» добавил ещё две кнопки: «Посмотреть рабочий стол (и поуправлять)» и «Показать выделенный всем». При нажатии идёт команда на сервер «Покажи компьютер X компьютерам Y1..Yn», а сервер уже указывает, кому запустить VNC-сервер, а кому — просмотрщики, панель управления ведь обычная web-страница и напрямую общаться с другими компьютерами ей сложно.

Ограничение Интернета


Когда студенты видят браузер, мысли об учёбе покидают и во вкладках обосновываются социальные сети и прочие не связанные с обучением ресурсы развлекательного характера. Ну и ладно, вернемся к диктаторским мерам и введём белые списки. Только пусть управляют ими преподаватели. Хотят, пусть всё разрешают, а надо, так указывают разрешенные адреса. Добавил ещё одну кнопку в «Панель управления». По нажатии открывается диалог, куда можно добавить URL.



Эти сайты сохраняются в профиле преподавателя, и доступны в списке программ, откуда легко назначаются студентам, установкой галочки. При назначении URL выделенным компьютерам приходит команда: добавить в список разрешённых указанный адрес и перенастроить установленный на каждой машине tiniproxy.

Структура WWW сейчас такова, что разрешенный сайт X скорее всего тянет скрипты, стили и картинки с других неразрешенных ресурсов, и страницы выглядят грустно или работают некорректно. Поэтому. когда приходит команда «добавить разрешенный URL», сайт скачивается, парсится, из него вынимаются ссылки на скрипты, стили и картинки и добавляются в разрешённые. Cрабатывает не всегда корректно, но это лучше чем ничего.

Еще некоторым приложениям нужен доступ к определенным сайтам для корректной работы. Для таких случаев в desktop-файл я добавил параметр с перечислением сайтов. Когда преподаватель выбирает приложение, указанные для него сайты автоматически разрешаются. Если нужно разрешить всем или некоторым студентам полный доступ, преподаватель выбирает в списке «Полный доступ в Интернет» и ограничения снимаются.

Изучение операционных систем или виртуальные машины


Поначалу, когда все это затевал, я успокаивал преподавателей наличием «самой популярной ОС XP» в виртуальной машине. Забегая вперёд, скажу, что больше эта опция недоступна и у нас плавно, не без стрессов, но сформировалась среда исключительно из свободного ПО (в нескольких компьютерных классах).

Возвращаясь к визуализации, я выбрал VirtualBox и реализовал управление виртуальными машинами в духе всей системы — делаю один раз и тиражирую для всех. В «Панели управления» в разделе с приложениями теперь перечисленны и FreeDOS (не спрашивайте зачем), и ReactOS, и тот же Ubuntu Linux с root-доступом. Эти псевдоприложения запускают скрипт, который загружает с сервера образ виртуальной машины и кладёт его в кеш. Если образ не изменился и уже в кеше, заново скачиваться он не будет. Тот же скрипт настраивает VirtualBox и запускает виртуальную машину в режиме снапшота, т. е. студент может делать с запущенной виртуальной машиной что угодно, но всё вернётся к изначальному состоянию.

А как же Gnome и KDE?


Преподаватели хотят показывать студентам разные «рабочие среды», мол, существует не только одна кнопка Пуск (которая то есть, то её нет). Сначала я пошёл по простому пути и подготовил несколько виртуальных машин с Linux: одна — на KDE, другая — на Gnome. Но в таком режиме эти требовательные окружения работали очень неторопливо. И когда выдалась свободная минутка, написал скрипты, которые «просто» запускают выбранное окружение рабочего стола поверх моего, а преподаватель с «Панели управления» может в любой момент закрыть «KDE» или «Gnome». Теперь менять рабочие столы можно без перезагрузок. Быстро и удобно!

Анонимный вход


В компьютерных классах иногда проходят мероприятия со сторонними участниками (презентации, курсы, олимпиады и т.д.). Заводить для каждого из гостей логин и пароль неинтересно, поэтому в панели есть кнопка «Анонимный вход». Это очень удобная и важная кнопка! Нажатие на неё откроет на выбранных компьютерах чистый рабочий стол без единой иконки. Если потом выбрать в «панели управления» из списка всё, что необходимо и нажать «запустить утомительный процесс запуска одинаковых программ или открытия сайтов, связанный с перебеганием от компьютера к компьютеру будет заменён несколькими кликами.

Ограничивать так по полной


Ещё в „Панели управления“ есть кнопка „Заблокировать экран“. Она запускает самописный блокировщик с анимированным замочком (да, потому что мне хотелось анимированный замочек) и блокирует экран выбранным студентам.



Флешки отключены запретом чтения /media. Раньше способ был радикальнее, правильнее и эффективнее, но он перестал работать после очередного обновления Ubuntu. Преподаватель может разрешить студентам использовать флешки, выбрав в списке „Сменные носители“.

Установка дистрибутива должна быть предельно простой


Все компоненты системы я собрал в репозиторий. Теперь, чтобы настроить рабочее место моей мечты, нужно выполнить три простых действия: установить Kubuntu, подключить репозиторий, скомандовать apt-get install integration-client. И так на каждой машине. Это долго и нудно, особенно когда компьютеров 100+. Поэтому я воспользовался чудесным дистрибутивом SystemResсueCD. У него есть простое руководство по пересборке и добавлению скриптов в автозапуск. Теперь для установки дистрибутива нужно загрузиться с подготовленных мною флешки или диска, выбрать тип сети (DHCP, NAT или общая), указать номер аудитории и номер компьютера, выбрать тип установки: на одну машину или массовую установку во всём классе (поднимется сервер сетевой загрузки). Когда все параметры введены, скрипт размечает диск через parted, монтирует на самбе директорию с заранее подготовленным образом системы, распаковывает через fsarchiver на жесткий диск и устанавливает загрузчик. Весь процесс занимает 5-10 минут в зависимости от мощности компьютера и загруженности сети, а главное — не требует особых технических навыков.



Для тех, кто добрался до этих строк и располагает еще шестью минутами свободного времени есть изобилующая 3D эффектами презентация описанного проекта, которую я готовил для одной профильной конференции. К сожалению, по наивности, я сделал упор на то, что Linux это хорошо, а не Linux — плохо, а надо было отстраниться от священных воин и просто демонстрировать свои наработки. Но если смотреть с определённой долей иронии то вполне забавно.



Почему нельзя было тоже самое сделать на „самой популярной ОС“?


В принципе можно, но намного сложнее. Разрабатывать придётся намного больше. Для многих задач решаемых одной строкой на Bash в Windows придётся писать полноценную программу (PowerShell в те времена не было). И самое главное реализовать описанную массовую установку для большинства Windows программ легально не получится. В тексте лицензий такой подход, часто явно запрещён. А если ограничиться только open source приложениями, то зачем вообще Windows? По поводу совместимости с железом, дистрибутив Linux смотрится намного выигрышнее. За долгие годы апгрейдов в компьютерных классах собрался зоопарк материнских плат, видео и прочих карт. Ubuntu без проблем и долнительных настроек ставится практически на все машины (c учётом обновления установочного образа системы раз в два года). Установить класс на Windows и что бы сразу всё заработало — это очень редкий случай, и приходится по долгу колдовать над каждой машиной по отдельности.

Выводы


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

Сейчас многие ограничения потеряли актуальность в связи с обилием мобильной техники у студентов. Интернет и игры от учебных компьютеров уже не нужны, они есть на планшетах и телефонах. (Вот сынок/дочка тебе планшет, учись хорошо… Много раз видел такую сцену… О чём эти родители вообще думают?!)

P. S. По поводу игр. Совершенно случайно получился интересный эксперимент. Когда я только развернул первую версию системы, в ней не было доступных игровых приложений. Через несколько дней один из преподавателей попросил меня добавить хоть какую-нибудь игру. Ну, я и добавил… шахматы. Вы когда-нибудь видели, как ещё недавно непреклонные фанаты Conter Strike c тем же задором играли в шахматы? Студенты собрались у компьютера (к сожалению, не было сетевого режима), кричали, махали руками, играя в эту игру!

P. P. S. Наработки по проекту здесь: http://sourceforge.net/p/int/code/ci/master/tree/. Внимание! Очень много страшного студенческого кода и глупых архитектурных решений, на JS вообще без слёз смотреть нельзя. Может когда-нибудь я всё же вернусь к этому проекту и перепишу, как надо (мечтательно).
Share post

Similar posts

AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 93

    +1
    Получается, доступа к терминалу у студентов нет?
      +7
      Есть, если преподаватель поставит галочку в панели управления.
      Когда студент логинится на компьютер у него вообще ни к чему доступа нет. Всё только с разрешения преподавателя.
      Есть возможность делать пресеты для аудиторий и групп пользователей.
        +2
        Стало быть, если преподаватель разрешит доступ к терминалу (например, чтобы студент мог скомпилировать свой код из консоли), система больше не в состоянии ограничивать доступ к приложениям? Ведь при желании любую программу можно будет запустить минуя ограничения рабочего стола.
          +8
          Я об этом писал в статье.

          С ключевых директорий и файлов приложений снимаются права на чтения и исполнения. Без определённой смекалки и знаний запустить ничего нельзя, даже из терминала, пока преподаватель не разрешит.
            +4
            А как вы запретили выход из иксов по ctrl+alt+F1...F6?
              +5
              Ну выйдешь ты туда, увидишь картину Малевича. Что дальше? Или вы думаете там login prompt самозарождается?
                +2
                Понятно, что можно убрать приглашение через inittab, но что делать, если с ПК что-то произошло и таки нужно выйти в консоль и починить?
                  +6
                  Приглашения никто не убирал, всё на месте.
                  На каждой машине два пользователя student и teacher (root не в счёт). Причём все работают из под student, зайти в него просто так нельзя, там вообще нет пароля. Когда компьютер загружается вместо всяких DM грузятся X11 от имени student и запускается самописный диалог входа, а через него уже идёт авторизация на сервере и вся магия происходит в student space.
                  teacher (и зачем я его так назвал?!) это сервисная учётная запись, которая может sudo. У неё очень длинный и страшный пароль. Это как раз на случай если что-то случится, но просто так под ней никто не заходит и ничего не запускается.

                    +2
                    Собственно это меня и интересовало, спасибо за ответ. Я предполагал, что на каждого пользователя заведена учетка в системе и соответствующий ей пароль.
                –8
                выход из иксов

                Вам бы самому ещё изучать и изучать…
                  +1
                  Соглашусь, конечно, учить еще есть что и совсем не мало, но к чему это замечание?
                    +1
                    Это называется «придираться к мелочам». Из разряда: "… По умному это не «выход из иксов», а «переключение на консоль»..."
                    Не обращайте внимания, суть вопроса понятна, а остальное неважно.
        +8
        Это очень круто. Вы большой молодец!

        Больше десяти лет назад я участвовал в аналогичном проекте в одном из питерских ВУЗов (но был на проекте, по сути, почти эникейщиком), и задачей максимум мы ставили примерно то, что в итоге получилось у вас. У нас тоже был зоопарк старых слабых машин, тщательно подобранная и настроенная DE (уже не помню, на чем мы остановились, к сожалению) и много-много своего кода, который всем рулит (но в тарболлах, так как у нас был Slackware). Но до такой красоты, как у вас здесь, мы довести не смогли, поэтому особенно приятно видеть проект, доведённый до совершенства.

        PS А в видео вашей презентации действительно совсем нет звука или это у меня какие-то косяки?
          +5
          Спасибо! До совершенства еще далеко :)

          Звука в презентаци, к сожалению, нет…
          Озвучкой был мой голос, когда я её демонстрировал, а потом про фоновую музыку и забыл совсем.
          Будет минутка обязательно добавлю!
          –3
          Моя первая linux была в далёком 2008 в школе (поставил из-за эффектов compiza) уж очень было интересно, в итоге разобрался и получил опыт во многих областях.

          Вас бы в те времена к нам в школу!
            +7
            Спасибо за занимательный пост! Конечно, тут Вам повезло с начальством, одобрившим энтузиазм, и с аудиторией: студенты быстро освоют все, что угодно, а преподаватели, видимо, согласились освоиться.

            Другой вопрос, чем же все это закончится? Если бы я пришел работать после вас — то тупо бы поставил обратно «самые популярные», так как разобраться в вашем элегантном решении с кучей самописных велосипедов выглядит удручающей задачей.
              +1
              Другой вопрос, чем же все это закончится? Если бы я пришел работать после вас — то тупо бы поставил обратно «самые популярные», так как разобраться в вашем элегантном решении с кучей самописных велосипедов выглядит удручающей задачей.


              Думаю, что так и будет.

              Хотя я уже около года ничего радикально не менял, а то что менял можно было не трогать. Спасает инсталятор, который я сделал. Компьютер сломался ставят другой, накатывают образ и всё работает как раньше. Вот если серверная инфраструктура сломается и меня рядом не будет, то да проще «самые популярные»
                0
                А выкатите всё это щЯстье в общее пользование? Только не как сорцы, а как полноценную сборку, в виде репозитория. Там, глядишь, и мануал кто-нибудь напишет.
                  +3
                  Там не просто сборка, нужно поднимать всю инфраструктуру из разных компонентов для полноценной работы.

                  Мануал для пользователей я и сам давно написал (преподавателям). А вот руководство и скрипты для установки никак не доделаю (несклько раз начинал, но всё время отвлекался). А сейчас времени столько свободного нет. Есть шанс, что через месяц или два вернусь к проекту доделать одну идею, может и на руководство время останется.
                  0
                  Напишите документацию, что где и короткий FAQ что делать если что-то сломалось, типа Troubleshooting guide. Последователям будет проще.
                    0
                    Когда-нибудь обязательно напишу! Времени сейчас совсем нет. Я и эту то статью готовил почти два месяца, в свободные минуты.
                +5
                Мы на предприятии осуществляем управление и полный контроль целого зоопарка компьютеров (сейчас их около 800 штук) на самой популярной ОС. Реализуется это всё стандартными средствами серверной версии той самой ОС, когда поднят домен-контроллер и грамотно настроены права и групповые политики.
                Но Вы молодец, раз смогли разработать и внедрить такой проект. Студенту в для повышения квалификации самое то. Круто.
                  +1
                  Спасибо.

                  Грамотно настроенная популярная ОС, на самом деле, не так уж и плоха на предприятии, но ничего «стандартного» в ней для такого делегирования административных и управленческих функций я не знаю. Есть куча сторонних программок для управления классами. но ни в одной я не видел простого, прозрачного, для технически не грамотного человека: запрета, разрешения, установки, запуска и останова программ. А вообще касательно мира Linux так там вообще нет ничего стандартного. Популярное есть, стандартного нет.
                    +5
                    Вы видимо с серверными версиями не плотно работали. Я всегда говорю — лучший инструмент тот, который хорошо знаешь.
                      0
                      А можно примеры аналогов описанного в посте? Боюсь, что на винде скриптов придётся писать не меньше, а вот гибкость решения ниже.
                        0
                        Полных аналогов наверное нет.

                        Из открытого и бесплатного italc.sourceforge.net/.
                        Коммерческие Windows only ищустя по фразе «управление компьютерным классом».

                        Web-интерфеса и установки, запрета, разрешения программ я не у кого не находил. Хотя уже много времени прошло, может что изменилось.
                          0
                          Про аналоги догадываюсь, мой вопрос скорее адресован к cbone, написавшему, что всё описанное можно сделать встроенным средствами Windows.
                            0
                            Если внедрить System Center то можно очень гибко управлять инфраструктурой, например с помощью SCCM.
                            Вот кстати обзорная статья есть: habrahabr.ru/company/microsoft/blog/129851/
                              +3
                              Посмотрел… преподаватели через это будут управлять? бесчеловечно

                              Инфраструктуру один раз настроил и забыл. Главное, что преподавателям без сертификатов Microsoft дали предельно простой инструмент для управления классами: установка, запуск останов программ, блокирование/фильтрация Интернета и т.д. в любой момент почти мгновенно и одной кнопкой.
                              SCCM ну никак здесь ни к месту. Есть специализированные продукты для управления классами, вот с ними можно сравнивать. MS, насколько мне известно, на этом рынке не представлена.
                                0
                                Тут больше про создание инфраструктура, да и не жирно будет использовать SCCM как пускалку для скриптов на WSH?
                                Я не против решений от MS, многие штуки там сделаны намного лучше, но глубокая кастомизация ОС к ним не относится.
                    0
                    Рассматривали ли вы возможность монтирования домашних директорий студентов по нфс? Тогда была бы не нужна магия с баш скриптом при разлогинивании и рсинком выборочных файлов.
                      0
                      Расматривал.

                      Только сеть в заведении большая (более 600 машин, c разными ОС) и не очень стабильная из-за частых экспериментов и местами ненадёжного оборудования.
                      В варианте скачал, поработал, залил обратно мелкие сетевые сбои не заметны.

                      Для отдельного взятого класса с собственным сервером можно было и NFS, но у нас система работает на несколько классов и преподаватели и студенты не привязаны к конкретной аудитории.
                      • UFO just landed and posted this here
                          +1
                          Мне тоже кажется, что вы совершенно напрасно изобрели этот велосипед.

                          Есть такая очень старая книжка — Managing NFS and NIS, в ней описана ровно ваша ситуация и ее решение. Пространство логинов у вас плоское, поэтому можно легко обойтись NIS (если бы оно было иерархическим, можно было бы взять и LDAP, он и моднее сейчас) в качестве NSS.

                          NFS + automounter решают проблему доступности файлов в любой момент времени — причем, не обязательно собирать их на общем сервере, можно разложить на многие. Если очень хочется, можно над этим поднять cachefs, хотя я не знаю, насколько он хорош в современных Linux. NFS давно умеет работать по TCP, поэтому нормально переживает congestion. Трудно что-то говорить про разваливающуюся связанность в вашей сети, но, насколько я понимаю, пропадание ее приводит и к пропаданию интернета (и интранета, если такой есть, что не до конца очевидно из статьи), поэтому это в любом случае проблема.

                          Я имел опыт управления ~300 машинами (даже не в нескольких зданиях, а в нескольких странах) в связке общего домена NIS + NFS + automounter больше 10 лет назад. Предела масштабирования тогда не было видно. Поэтому полагаю, что 600 машин сейчас — это почти незаметная нагрузка.
                            0
                            Нагрузка на систему сейчас порядка 100+, 600+ это я описывал всю сеть.
                            Трудно что-то говорить про разваливающуюся связанность в вашей сети, но, насколько я понимаю, пропадание ее приводит и к пропаданию интернета (и интранета, если такой есть, что не до конца очевидно из статьи), поэтому это в любом случае проблема.

                            На одном из этапов внедрения были неприятные аппаратные и человеческие факторы, приводившие к длительным сбоям. В текущем варианте студент зашёл ему всё загрузилось, от сети он временно больше не зависит. Если во время пары сеть пропадёт, но починить успеют минут за 30, то никто ничего не заметит.
                            Сейчас такие масштабные сбои остались в прошлом, но предосторожность осталась.

                            Текущее решение мне самому не очень нравится. Большие профили долго загружаются и архивируются. Бывали случае повреждения архивов. Чистить данные студентов (если положат, что-то большое и неуместное ) не удобно, всё в tar.gz.

                            Из плюсов только защищенность от временных сетевых сбоев и экономия места на сервере.
                            Когда я учился в универе, нам студенческие каталоги монтировали по smb (в Windows), достаточно часто ощущались подвисания в работе и было не комфортно. Поэтому к идее просто примонтировать каталог по сети я относился предвзято и не до конца проработал этот вопрос. Спасибо за ценную информацию.
                              0
                              Из плюсов только защищенность от временных сетевых сбоев и экономия места на сервере.
                              Про сеть трейдоф понятен.

                              Желание экономить место на сервере тоже понятно, кстати, в случае с NFS + NIS/LDAP можно вполне внедрить дисковые квоты. Думаю, можно было бы даже приноровиться управлять ими из вашей панели управления — давать каждому студенту свою квоту, преподавателю — свою, а каким-то избранным настраивать отдельно.

                              Наверное, можно и на сервер(-е/-ах) поиграть в продвинутые файловые системы со сжатием, но, я лично это не пробовал, поэтому советовать не берусь. Подозреваю, что для интерактивного использования это будет плохо подходить по ряду причин, но надо пробовать, что б проверить, применимо ли это к вашей ситуации, или нет.
                              +1
                              Этого коментария здесь нет. Написал не туда, удалить не могу :(
                          +1
                          Впечатляет.
                          респект.
                          • UFO just landed and posted this here
                              +2
                              Почему нельзя?
                              • UFO just landed and posted this here
                                  0
                                  Дык в России же тоже самое, плюс преподаватели по факту ничего не могут изменить, ибо если они отклонятся от программы, и студенты будут изучать что-то другое, то при проверке, которая может быть, все будет очень плохо.
                                    +3
                                    В России (на Украине не знаю) в образовательных стандартах (для среднего профессионального образования) нет упоминания ни об одном конкретном продукте. Этот вопрос мы внимательно изучали.
                                    Насчет стандартов для школ точно не знаю, но сильно подозреваю, что так же.
                                    Проблема в школах из за учебников, которые должны быть с грифом министерства и из за некоторых преподавателей, которые не видят никаких проблем. Для среднего и высшего образования учебников как таковых нет, поэтому в рамках стандарта можно преподавать всё, что угодно (читай, всё что знает преподаватель).

                                    Проверку со стороны контролирующих органов по предмету «информатика» представить очень сложно (хотя всё может быть), скорее достанется математике и русскому языку.
                                      0
                                      В разных УЗ столкнулся с диаметрально противоположными случаями. В первом, преподаватели отчаянно сопротивлялись внедрению Linux. В качестве аргументов приводились стандарты, спускаемые сверху, уже готовые рабочие программы, да много чего.
                                      Во втором случае преподаватель (один), просто вёл занятия по собственной программе, максимально ужав всяческое «изучение редакторов и кнопки пуск». При вопросе о стандартах, отмахнулся тем, что стандарты можно трактовать как удобно в данном конкретном случае.

                                      Еще вспомнил интересный аргумент. Мы учим работать в "%productname%" это популярная штука, а вашими линуксами никто не пользуется. Что студенты после учёбы делать будут если не знакомы с %productname%?
                                    0
                                    и тем не менее в некоторых школах Linux-based очень даже успешно используется ;)
                                    причем на методически «законных» основаниях :)
                                      0
                                      Ну, собственно, что-то аналогичное описанному в статье можно сделать и на базе Windows. Не все, но очень многое. Было бы желание и время.
                                        0
                                        Я под этот вопрос целый раздел в статье отвёл :)

                                        Почти уверен, что можно реализовать (часть уже реализована в разных продуктах) весь описаный функционал, но желание и времени будет потрачено в разы больше. А помимо сильно увеличившегося количества чисто технических вопросов, добавятся ещё и неприятные юридические.
                                          +1
                                          Мм, не согласен про «разы больше», но про юридические — вполне, если нет денег на лицензию.
                                            +2
                                            Проблема не в деньгах. Лицензии есть на всё что нужно в достатке, а по подписке MSDN для учебных заведений есть всё, предлагает MS в почти не ограниченных количествах. Только эти лицензии надо очень внимательно читать, во многих например, есть запреты на модификацию инстолятора или поставку без него. Несколько программ мне пришлось патчить что бы работали нормально без рута или искали конфиги в других местах (то есть были совместимы с моей моделью безопасности). И как это провернуть с проприетарными программами? А если использовать исключительно open source приложения, то зачем вообще Windows?
                                              0
                                              Очень многие вещи пр-ва Microsoft могут весьма гибко настраиваться, через те же групповые политики, например. Если вам настолько не хватает встроенной функциональности по конфигурации, что вы хотите заняться патчингом и декомпиляцией, возможно, вы просто идете не в том направлении. Опять же, самописную оболочку можно сделать не только на Линуксе, если уж она так сильно нужна.
                                              Поймите меня правильно, я не говорю, что вы зря использовали Линукс. Вы большой молодец и проделали достойную работу. Но в этом решении есть свои плюсы и свои минусы, и я лично, по многим соображениям, выбрал бы другой путь.
                                              Раскрывать дальше свою позицию я не очень хочу, потому что это Хабр, и здесь любое, сколь угодно аргументированное или личное мнение поперек опен-сорса воспринимается некоторыми, как оскорбление святыни. Собственно, мне уже накидали минусов в карму :)
                                                +1
                                                Очень многие вещи пр-ва Microsoft могут
                                                Т.е., только софт от MS, и то не весь?
                                    0
                                    Тем кодом который я выложил лучше пользоваться осторожно (он страшен! Но, есть интересные моменты).
                                    Но желание, свободное время, и отзывчивое начальство творят чудеса :)
                                    +4
                                    Эх, а потом вы увольняетесь, находите работу получше, а вся система превращается в тыкву. Т.к. никто не знает как с ней работать :)
                                      0
                                      Не превращается, а работает пока не рассыплется в пыль.
                                        +1
                                        Не знает и не будет разбираться. Наём специалиста, который сможет это поддерживать будет очень дорог. Так что автор не только впустую потратил своё время (работа большая, это видно, но сомневаюсь что оплата была достойной), но и потенциально нанёс ущерб, т.к. придётся всё опять переставлять и переучивать людей.
                                          +3
                                          Какой я не хороший :)

                                          Переучивать не придётся. Всё ПО для учебного процесса я подбирал (вместе с преподавателями) кросс платформенное. Так что хоть на Mac мигрируй. Да, приятных плюшек все лишаться.
                                          К тому же не всё заведение на Linux, а только 6 компьютерных классов. Есть и классы на «самой популярной». Студенты и преподаватели спокойно работают и там и там (но на Linux всё же спокойней).
                                            0
                                            В моём институте уже лет 10 не обновляется инфраструктура на «самой популярной ОС», так как развернувший её человек уже ушел, а нового спеца не нашли.
                                          • UFO just landed and posted this here
                                            0
                                            Был подобный опыт. Но это ж Россия, ни тебе образовательных программ, ничего, только голый скудно оплачиваемый энтузиазм. Все свелось на бодания с учителями, в итоге остался Domain, samba, ну и еще что то типа похожее на дистанционное обучение по средствам BBB (BigBlueButton).
                                              0
                                              А можно посмотреть на Ваш рабочий стол поближе? Может быть код, видео, что-нибудь!
                                              0
                                              Мне очень понравилось! Код рабочего стола на чем написан?
                                                +2
                                                C++, Qt, Qml
                                                0
                                                Автор молодец, побольше бы таких инициатив и реализаций. Студентов к доработке не пробовали привлекать в рамках изучения программирования? И им хороший практикум, и вам фронт работ сузится. А если взять C++ IDE и teamcity от jetbrains (бесплатно для учебных заведений), да натаскать их по SCRUM, git и т.д. — это же полноценные сотрудники прямо на выпуске из вуза будут. Если найти инициативного преподавателя с головой на плечах, мне эта задача видится вполне посильной и с хорошими так сказать социальными дивидендами.
                                                  +1
                                                  Я работал со студентами над другими проектами. Очень много сил и времени уходит на «направить» и/или «обучить». Для студентов это хорошо, а для проекта плохо.

                                                  Для описанного проекта я давал обьявление на тему присоединится к разработке, хотя бы в рамках диплома (страница с обьявлениями установлена, как домашняя в браузер студентов) но откликов не получил. Либо студенты работу посчитали слишком сложной (и бесплатной), либо энтузиазма не достаточно, а без него никак.
                                                    0
                                                    Сам факт того, что пытались, уже хорошее начало. Я уверен, что есть заинтересованные ребята, просто информация не была представлена в удобоваримом и легковоспринимаемом виде, оттого они и «испугались» большого объема работ.

                                                    Изложу способы «воздействия» на студентов, буду рад услышать конструктивную критику сообщества.

                                                    1) Подготовить краткую презентацию о проекте — преимущества, текущее состояние, планы на будущее. Обязательно рассказать о сокращении трудозатрат, отзывы преподавателей — все в форме интересной презентации с шутками, это почти всем нравится.
                                                    2) Подготовить «платформу» для привлекаемых студентов — я на 90% уверен, что если им дать грамотно задокументированный процесс установки и настройки необходимого софта, вопросов будет намного меньше. Не поленитесь, сделайте простую вики страницу с пошаговым процессом подготовки рабочего места.
                                                    3) Провести анализ имеющихся планов — как в плане инфраструктуры (непрерывные релизы, система тестирования и т.д.), так и в плане бизнес-требований. Раздробить эти планы на небольшие задачи и опубликовать их на домашней странице, чтобы студенты видели, что планируется сделать и пытались себе это визуализировать — это поможет с внутренней мотивацией.
                                                    4) Привлечь преподавателей, они знают кого и как можно (или нужно) мотивировать — взаимновыгодное сотрудничество как минимум 3 сторон (вы, студент, преподаватель)
                                                • UFO just landed and posted this here
                                                    +1
                                                    А что там с безопасностью?
                                                    Некто как поснифает протокол да поднимет свой сервер управления вместо вашего и поставит везде… чего нибудь или rm -rf / сделает.


                                                    Такое возможно.
                                                    И снифать ничего не надо код то открыт :)
                                                    SSL я так и не прикрутил (хотя собирался) вот прикручу и такой фокус не пройдёт!

                                                    Я наверное всё жду когда же студенты до этого додумаются… вот тогда я за них порадуюсь и включу SSL. Перестановка всего класса минут 40, а на машинах всё равно ничего важного не хранится, так что ничего страшного впринципе.
                                                    • UFO just landed and posted this here
                                                    +8
                                                    Аплодирую стоя, проделанная работа впечатляет. Если допилить систему, то вполне можно защитить кандидатскую диссертацию. Под такую тему вполне реально получить грант на 2-3 млн. рублей. Но к сожалению, это не гарантирует что система получит распространение за пределами одного учебного заведения. Добиться этого будет куда сложнее.
                                                      +2
                                                      Если допилить систему, то вполне можно защитить кандидатскую диссертацию.
                                                      Автор большой молодец сделал качественную инженерную работу, но тут ни о какой кандидатской говорить не приходится.
                                                        +1
                                                        На кандидатскую запросто, таких работ не мало защищается.
                                                          +1
                                                          На кандидатскую запросто, таких работ не мало защищается.
                                                          Если подходить с вашей точки зрения, то, конечно, такую работу можно защитить. Как и любую другую (начиная от уровня курсовых работ старших курсов) при наличии небольшого блата и отсутствии совести. Да и не могут же совсем без дела сидеть научные советы, если народ совсем не выпускается и не способен в большинстве своем родить что-нибудь стоящее.

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

                                                          Надеюсь, автор не примет, как личную обиду, повторюсь, он большой молодец, работа проделана хорошая.
                                                            0
                                                            Никаких обид :)

                                                            Первая версия как раз прокатила за диплом в универе. Xотел написать, что-то ещё, но так завозился с этим проектом, что не успел (очень хотелось побыстрее внедрить)
                                                              0
                                                              Я не знаю, как вообще с научной ценностью обстоит дело в IT, но в той же социологии и аналогичных «науках» защищается безумное число диссеров по частным практическим темам, которые с фундаментальной точки зрения на научную новизну в принципе претендовать не могут.

                                                              Наук в чистом виде, где возможны принципиальные фундаментальные открытия (пусть и небольшие), научная новизна — их всего ничего: практически только естественные сюда и попадают (здесь стоит считать таковой и математику).

                                                              Все остальное по сути — области знания, а не науки. И новизна в них чисто практическая, можно сказать, инженерная. Но защищаются люди — и не только степени, но и звания ученые получают ;-)
                                                        0
                                                        По поводу gnome и kde предложу опцию — Xnest. Если его заюзать, gnome,kde, whatever… можно запускать в отдельном окошечке, как будто в виртуалке.
                                                          0
                                                          Пробовал.
                                                          В нём не работал OpenGL. А это критично как минимум для gnome 3 да и KDE не так хорош.
                                                          Сейчас быстро погуглил, в подтверждение своих слов (а то может чего не помню), и нашёл Xephyr. Вроде то же, что xnest только умеет OpenGL и composite, как-нибудь надо попробовать. Спасибо!
                                                          +3
                                                          Интересно было бы услышать мнение команды AltLinux. Судя по тем финансовым вливаниям, что были со стороны государства, именно они, а не техник в учебном заведении, должны были создать такое.
                                                            0
                                                            Очень круто! Сколько по времени создавали и внедряли систему?
                                                              0
                                                              Около 2-х лет. Перепробовал кучу архитектурных решений, пока дошёл до того, что есть.

                                                              Я был не опытен и с большими амбициями.
                                                              0
                                                              У всей этой автоматизации есть один значительный минус. Человек. Как только оператор, породивший эту систему, покинет сие стены — все очень быстро загнется, т.к. кроме него, никто в этом ничего не смыслит и поддерживать не сможет. Тем более самописные скрипты без комментариев и хоть какого-то единообразия. И выхода из этой ситуации я не вижу. Ну кроме как отдела со штатом сотрудников, что для школы\вуза полная утопия
                                                                0
                                                                Как на счет написания этим человеком документации и инструкций для следующих поколений техников? Техники это не домохозяйки, они вполне могут разобраться в чем то малопонятном.
                                                                  0
                                                                  Отдел со штатом квалифицированных сотрудником в заведении есть!
                                                                  Это реальность в не утопия. И в этом отделе я не самый «квалифицированный», но наверное самый дотошный :)
                                                                  В этом колледже достаточно сложная сеть, куча хитрого оборудования, 600+ рабочих мест и всё это в агрессивной студенческой среде. В таких условиях этот отдел не роскошь, а необходимость.
                                                                    0
                                                                    Тогда остается порадоваться за ваш колледж, ибо в нашем Горном все было отдано на откуп кафедрам, а на примере моей АСУ этим ведовал один уже далеко не молодой человек, на подхвате у которого были более ловкие студенты. И когда они что-то придумывали в этом плане — оно плавно загибалось после оканчяния ими института и исчезновения с кафедры.
                                                                  0
                                                                  Привет родному РКСИ!
                                                                    0
                                                                    Линукс без консоли… Мда, раньше я недостаточно полно представлял себе, кто такой администратор-фашист. Вообще задача очень амбициозная, но и решение выглядит очень достойно.
                                                                      0
                                                                      Есть консоль!
                                                                      Просто её доступность определяет преподаватель во время урока. И запустить с её помощью можно только разрешённые преподавателем программы.
                                                                        0
                                                                        Да, есть. Но не всегда, и это может действовать на опытного пользователя удручающе. ;)
                                                                        Я не очень понял, как управляется возможность запуска программ. Меняется атрибут исполняемого файла? Тогда можно будет скопировать файл к себе домой и запустить там. Чтобы этому воспрепятствовать, хомы должны монтироваться с noexec, а тогда нельзя будет заниматься такой важной учебной деятельностью как написание и отладка программ. Еще бывают программы, целиком написанные на скриптовых языках.
                                                                          0
                                                                          Да, есть. Но не всегда, и это может действовать на опытного пользователя удручающе. ;)

                                                                          Почти всегда можно договорится с преподавателями (во всяком случае с теми, которых я знаю), объяснить, что нужен терминал или другие программы для выполнения задания.

                                                                          Я не очень понял, как управляется возможность запуска программ. Меняется атрибут исполняемого файла?

                                                                          Снимаются атрибуты чтение и исполнение с исполняемого файла и ключевых файлов и директорий приложения (библиотеки, ресурсы… список подбирается в ручную в каждом отдельном случае). Просто копирование к себе в папку, во многих случаях, ничего не даст, потому, что пути зашиваются в исполняемые файлы на этапе ./configure. Ну а если студент сам пересобирёт программу или правильно изменит скрипт, что бы запустить я только порадуюсь.
                                                                          Я думал насчёт SE, но это слишком радикально. Вот когда у нас появятся настолько умные и несносные, что смогут обойти текущую защиту, тогда добавим тяжёлую артиллерию.
                                                                      0
                                                                      Очень хорошо то, что проект доведён до рабочего состояния, и что вы его публикуете! Часто это всё остаётся только у создателя и держится только его усилиями.
                                                                        0
                                                                        Спас положение TurboVNC, который показал приемлемую производительность.

                                                                        А spice ещё не приспособили как замену VNC на физических машинах?
                                                                          0
                                                                          Мне, кстати, вот ещё что интересно:
                                                                          Раз Вам так понравился SRCD, то почему бы вместо Ubuntu не использовать то, из чего он сделан, т.е. Gentoo (по той же схеме с центральным хранилищем бинарных пакетов, правда, потребуется билд-сервер)? Ну, или Sabayon (та же Ubuntu, но сделанная из Gentoo. В этом случае — просто пересобрать нужный пакет с нужными опциями намного проще, чем в Ubuntu)? ;)

                                                                          И это, к тому же, гарантированно защитит Вас и ваших подопечных от «болезней» убунты :)

                                                                          P.S. Не сочтите за вброс :)
                                                                            0
                                                                            Gentoo для таких проектов вообще намного лучший выбор! Когда начинал я серьезно обдумывал взять за основу Gentoo (и опыт работы у меня с ним уже был приличный) или даже LFS (смелости не хватило), но в тот момент инфраструктура и сообщество Gentoo переживало кризис и будущее дистрибутива было туманным. Решил не рисковать. Ещё в пользу Ubuntu был довод, что специалистов (читай студентов) на роль помощников/администраторов/разработчиков найти было бы проще, но с этим вообще не сложилось. В принципе в перспективе переехать на другой дистрибутив не так сложно. Нужно только убрать специфичные Ubuntu фиксы и заменить apt на например emerge в скриптах (и пересобрать все пакеты и проверить, что всё работает ...).

                                                                          Only users with full accounts can post comments. Log in, please.