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

Итак, я благополучно завершил свою карьеру в ЧУП "Фёст-Лайн" и ушел работать в byLectric. Тому было много причин, не последняя из которых - крайне нестабильное положение организации. Для тех, кто не в курсе - ЧУП "Фёст-Лайн" является владельцем портала Sport in the Game, компьютерного клуба Тарантул и интернет-кафе КофеБерри.

Итак, я благополучно завершил свою карьеру в ЧУП "Фёст-Лайн" и ушел работать в byLectric. Тому было много причин, не последняя из которых - крайне нестабильное положение организации. Для тех, кто не в курсе - ЧУП "Фёст-Лайн" является владельцем портала Sport in the Game, компьютерного клуба Тарантул и интернет-кафе КофеБерри.

Конечно, уйти просто так, хлопнув дверью и забыв все и вся не получилось :-(. Видимо, я плохой преподаватель и очень плохо умею делиться своими знаниями. То есть, за 10 лет работы я так и не смог воспитать себе устраивающего меня помощника, который бы смог полностью меня заменить там. Что, соответсвенно, заставляет меня постоянно отвлекаться от новой работы для того, чтобы обеспечить хоть видимость работоспособности на старой. Впрочем, заканчивается второй месяц работы на новом месте, и количество вопросов, которые мне задают - значительно уменьшилось, что позволяет надеяться на скорое их исчезновение. Вместо меня сейчас над клубами трудятся три человека, которые, на мой взгляд, вполне справляются со всеми моими обязанностями. Я оставил для себя лишь самое интересное - сопровождение сайта, так как это позволяет мне прокачивать те навыки, которых у меня еще просто нет :-). Впрочем, белорусские отборочные на WCG 2010 я тоже оставил для себя - дело в том, что киберспорт продолжает меня интересовать, и я постараюсь поддерживать его в свободное от работы время.

Вот так - краткая сводка о том, что происходит в моей жизни. Надеюсь, что я скоро смогу снова, хоть немного оживить свой блог, а также внести кое какие не только внутренние, но и внешние инновации на портале SnG.by.

1

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

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

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

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

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

Система управления клубом OutKafe в своей основе опирается на базу данных PostGRESQL. Таким образом, первый шаг - установка на управляющую машину этой самой БД.
Установка и настройка PostgreSQL на FreeBSD подробно описана тут - 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 написан для BASH (Bourne Again Shell) и вызывается так, как это делается в Linux (/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/). Это и будет темой моего следующего поста.