Перейти к содержимому

Linux-based Internet-cafe

Итак, поставив относительно удачный эксперимент с соединением двух Интернет-кафе посредством протокола точка-точка, я решил развить эту идею... И путь для развития, избранный мной, стал таким - зачем использовать в Интернет-кафе, не ориентированном на игры и не обладающем достаточными системными ресурсами для игр, дорогую и всеми любимую ОС производства Microsoft, если уже есть работающие системы под управлением семейства ОС *nix.

Итак, поставив относительно удачный эксперимент с соединением двух Интернет-кафе посредством протокола точка-точка, я решил развить эту идею...
И путь для развития, избранный мной, стал таким - зачем использовать в Интернет-кафе, не ориентированном на игры и не обладающем достаточными системными ресурсами для игр, дорогую и всеми любимую ОС производства Microsoft, если уже есть работающие системы под управлением семейства ОС *.

На эту идею меня натолкнул директор предприятия Денис и сайт Internet-club.info, посвященный проблематике компьютерных центров, в частности, статья об использовании Linux в Интернет-кафе. Тщательно изучив, погуглив по предоставленной информации - я остановился на двух системах:

Первым, в очереди на препарацию стал .
Причинами тому стало то, что он ставиться на существующую систему (то есть, клиент можно установить на любую ОС, в том числе и производства MicroSoft), что позволяет с минимальными затратами перевести уже существующую инфраструктуру Интернет-кафе КофеБерри на новые рельсы.

Установка и настройка OutKafe.

Система управления клубом OutKafe в своей основе опирается на базу данных PostGRESQL. Таким образом, первый шаг - установка на управляющую машину этой самой БД.
Установка и настройка PostgreSQL на подробно описана тут - http://jasonk2600.wordpress.com/2010/01/11/installing-postgresql-on-freebsd/ (если я когда нибудь получу разрешение и у меня будет время - я обязательно его переведу).

Вкратце, суть такова:
В /etc/rc.conf необходимо внести запись 'postrgresql_enable="YES"' и затем, запустить инициализацию БД командой '/usr/local/etc/rc.d/postgresql initdb'. После чего, PostGRESQL создаст необходимую структуру папок в /usr/local/pgsql/data, в том числе и конфигурационные файлы.
Далее, чтобы разрешить доступ к БД со всех интерфейсов, необходимо отредактировать файл /usr/local/pgsql/data/postgresql.conf, установив в нем параметр listen_addresses = '*'.
Далее, необходимо отредактировать файл /usr/local/pgsql/data/pg_hba.conf для того, чтобы разрешить в аутентификацию по паролю:
host  all  all  10.0.1.0/24  password (разумеется, не забудьте заменить 10.0.01.0/24 на свою сеть)
И последний шаг - запуск СУБД и добавление пользователя:
# /usr/local/etc/rc.d/postgresql start
# su pgsql
$ createuser -sdrP username
Enter password for new role: ******
Enter it again: ******
$ exit

Первая проблема, с которой я столкнулся - Postgresql не стартует, ругаюсь не недостаточность системных ресурсов. Как оказалось, именно во FreeBSD наиболее простой способ тюнинга этих самых параметров - посредством изменения параметров sysctl. Суть в том, что некоторые параметры в настройках по умолчанию - слишком малы, и их необходимо увеличить. Подробности, необходимые для понимания, что и как увеличивать - можно прочитать тут: http://www.postgresql.org/docs/8.2/static/kernel-resources.html

Опять же, опишу вкратце:

Изначально, FreeBSD после установки выделяет мало места для семафоров и общей памяти, которых явно недостаточно для запуска полноценной БД PostGRESQL. Данная ситуация очень легко изменяется изменением (простите за тавтологию), некоторых переменных в sysctl.
Редактируем /etc/sysctl.conf , добавляя туда нижеуказанные параметры:
kern.ipc.shmall=32768
kern.ipc.shmmax=134217728
kern.ipc.semmap=256
kern.ipc.shm_use_phys=1

Редактируем /boot/loader.conf, добавляя туда нижеуказанные параметры (они могут буть изменены лишь до загрузки):
kern.ipc.semmni=256
kern.ipc.semmns=512
kern.ipc.semmnu=256

После настройки и тюнинга ОС для запуска Postgresql - теперь нужно сконфигурировать его. Для этого, уже есть DB schema... У меня не поставился PGadmin3 (ни из портов, ни из пэкеджей), но так как это все еще тестовая среда - то я пока решил не задумываться над этой проблемой и просто скачать и поставить Windows-версию.

Шаг 2 - Установка OutKafe Daemon

OutKafe поставляется как Unified Installer, запакованный при помощи MakeSelf. При простой попытке запуска - он вываливается с ошибкой о том, что ./setup.sh не найден. Однако, как на самом деле оказалось - setup.sh написан для (Bourne Again Shell) и вызывается так, как это делается в (/bin/bash), а во FreeBSD BASH устанавливается в /usr/local/bin/bash.
Есть два выхода из этой ситуации - редактировать setup.sh или же, сделать просто link на BASH в /bin ;-). Второй выход мне кажется более правильным и универсальным, в связи с тем, что необходимость в BASH'е явно возникнет у демона после установки.

Итак, графический инсталлятор запустился, и сразу же начал ругаться на отсутствие файла libpq.so.4. Опять же - проблема в том, что во FreeBSD все исполняемые/используемые пользователем билиотеки/файлы пишутся в /usr/local/lib. А во FreeBSD, Linux версии софта начинают поиск необходимых им библиотек с /usr/compat/linux/lib. Там они их не могут найти, находят их в /usr/lib, либо же в /usr/local/lib, но не могут их применять. Решается копированием из /usr/local/lib в /usr/compat/linux/lib и использованием команды brandelf -f Linux имя_библиотеки.

Однако, запустить Outkafe на машине с FreeBSD у меня так и не получилось :-(, что, вероятно, и к лучшему: зачем класть все яйца в одну корзину. В идеале, все-таки, схема должна быть такова: роутинг и БД - на отдельной машине, админ - на отдельной машине.

Так что, демона и программу контроля развернем под управлением Ubuntu, а базу данных и роутинг - оставим на плечах FreeBSD. Все-таки, Ubuntu более привычная пользователю Windows ОС, нежели чем FreeBSD, что впрочем, не умаляет для меня значения Фри.

Установку Ubuntu 10.04 я тут описывать не буду - так как все не просто очень просто, а по настоящему удобно и прекрасно :-).

К сожалению, от использования OutKafe мне пришлось отказаться, ввиду того, что пока там нет привычной системы управления клубо (то есть, табличка, с состоянием компьютеров и пост оплатой клиентами), а есть система, ориентированная на постоянных пользователей с предоплатой, что не очень удобно для моего формата Интернет-кафе, подразумевающего небольшое количество постоянных клиентов (около 200-300) и большой проходняк людей, которым интернет нужен здесь и сейчас, но не надолго. Если этому человеку понравиться сервис - вероятно он вернется, но постоянных клиентом он станет лишь значительно позже.

Итак, следующий в очереди на препарацию - Zencafe 2.0 (http://linux.blogs.ie/documentation/). Это и будет темой моего следующего поста.