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

2 years ago I posted an article on HabraHabr, which describes how Continuous Integration is done in Colours, where I am working ATM. Those time it was published only on Russian, but, it seems to me, that newest explanation should be published on both languages (russian version is accessible here - http://habrahabr.ru/post/249523/).

...читать далее "Continuous Delivery as done in Colours"

Microsoft выпустил встроенный в Win2008 менеджер виртуализации Hyper-V. Этот пост - про мое с ним близкое знакомство

Относительно недавно, Microsoft выпустил менеджер виртуализации под названием Hyper-V. В этом посте я расскажу про мое с ним близкое знакомство, про мое мнение по поводу данного менеджера, и, на сладкое - установка Debian Squeeze в виртуальную машину под управлением Hyper-V ...читать далее "Windows 2008 Hyper-V"

Несмотря на то, что предыдущая идея, связанная с Outkafe, провалилась - я не оставляю надежду сделать Интернет-кафе, полностью основанное на Linux. В этот раз, объектом экспериментов стал дистрибутив под названием ZenCafe...

Несмотря на то, что предыдущая идея, связанная с Outkafe, провалилась - я не оставляю надежду сделать Интернет-кафе, полностью основанное на Linux. В этот раз, объектом экспериментов стал дистрибутив под названием ZenCafe (http://linux.blogs.ie/)...

Если судить по мануалу, то его инсталляция проста до безобразия, то есть - вставил диск, выбрал авторежим и вперед... Все установиться самостоятельно...

Собственно говоря, для начала я так и сделал, создав две виртуальные машины - администраторскую и клиентскую соответственно.

И вправду, все установились автоматически и без каких-либо закавык.

Основой Zencafe является Cafe Con Leche - специально адаптированный для Linux софт, для управления Интернет-кафе

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/). Это и будет темой моего следующего поста.

1

Итак, я рад объявить всем, что у нас скоро открывается новое Интернет-кафе, в центре города Минска, в горячо любимом мной торговом центре Столица, в прекрасной кофейне КафеБерри.

Итак, я рад объявить всем, что у нас скоро открывается новое Интернет-кафе, в центре города Минска, в горячо любимом мной торговом центре Столица, в прекрасной кофейне КафеБерри.

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

Следующий шаг - объяснение самому себе, как именно это должно работать.
Исходные данные: Интернет-кафе Росток (г. Минск, Ленинградская, 7), работает под управлением довольно-таки хорошего, но небесплатного ПО AstaLaVista (по заявлению его автора, разрабатывалось им самим специально для сети его компьютерных клубов), имеющего 30 лицензий на стационарные клиентские компьютеры +17 лицензий для внешних клиентов (Wi-FI). Где экономия, спросите Вы? Отвечаю: на Ростиксе всего 15 стационарных компьютеров, следовательно, еще 15 лицензий просто так стоят и не используются.

Задача1: объединить точки - решается на уровне провайдера, и почти меня не касается. Побочные следствия решения задачи на уровне провайдера - необходимость установки роутера в КафеБерри, и настройки исполнения скриптов Асты для IPFW на нем зеркально к такому же роутеру в Ростиксе. Статус задачи зеркалирования - пока не решена, буду благодарен любой помощи (можно в комментариях). На всякий случай, чтобы не задавалось лишних вопросов поясню смысл сей замысловатой задачки, правда, для этого придется несколько отклониться от темы.
Итак, программный комплекс AstaLaVista (я его обзываю для краткости Аста), состоит из нескольких модулей, без которых его функционирование невозможно. Причем часть модулей исполняется исключительно под управлением MS Windows. Основа Асты - программа/сервис под незамысловатым названием Server, с которой, собственно говоря, и происходит все управление. Данные Аста хранит в БД MySQL в формате InnoDB, взаимодействие с клиентом осуществляется специальной клиентской оболочкой, запускающейся перед Winlogon (под GNU/Linux, вроде бы и есть реализация, но что то про нее не слышно вообще), взаимодействие с админом - посредством программы Operator (тоже Windows приложение), взаимодействие с управляющим клубом - посредством программы Boss (Windows-приложение, по сути, являющееся всего лишь фронтендом для базы данных MySQL). У сервера есть замечательная возможность отдавать команды роутеру (в основном, это связка FreeBSD+IPFW, но при наличии прямых рук, напильника - можно заточить под что угодно). То есть, админ создает счет, клиент садиться за компьютер, shell открывает доступ к виндам, а сервер, по ssh отдает команду роутеру. В случае с одним роутером - все пляшет прекрасно. Но, у меня их, во-первых 2, а во-вторых, второй расположен удаленно (пусть и в одной подсети). Так вот, моя задачка состоит в том, чтобы или мониторить состояние правил IPFW и, при изменении той их части, которая касается КафеБерри, отправлять эти изменения туда (как?), или же, просто, при получении команды для IPFW роутер Ростикса просто передает такую же команду роутеру КафеБерри (такой подход мне кажется более экономичным и менее ресурсоемким). Прошу всех, кто может - окажите помощь ;-).

Задача2: экономия компьютеров - решилась относительно просто. Вместо двух компьютеров (роутер, и компьютер админа) - будет установлен лишь один, под управление FreeBSD с каким-либо GUI + 10 клиентских.
Дальше начались для меня шаманские пляски с бубном. Собственно говоря, я не новичок во FreeBSD, но ламерские мохнатые ушки все еще растут у меня откуда-то :-D. C самого начала, инсталлятор, загрузившись с диска, отказался обнаруживать этот самый диск в качестве источника установки. Имея доступ в Интернет, для меня это не оказалось такой уж большой проблемой, тем более, что последний дистрибутив, скачанный мной имеет номерок 7.2, а тут уже и 8.0 есть. Так что, я просто подсказал откуда с какого фтп-сервера брать дистрибутив и ушел пить кофе и готовить компьютеры с Windows.

Скоро сказка сказывается, но нескоро дело делается. Через некоторое время, Фря таки собралась и установилась и я начал настройку ее, как роутера и файл-сервера. Тут мне было все просто и знакомо: VPN-подключение поднимается при помощи MPD5, firewall и контроль доступа в Интернет - IPFW (всего что нужно - перекомпилировать ядро с парой новых параметров), файл-сервер - Samba. Установил, настроил, проверил, обновил, еще раз проверил - все работает.
Чуть не забыл о некоторых необходимых параметрах для /etc/sysctl.conf:

  • net.inet.ip.fw.verbose=1 - сообщения IPFW будут более содержательными 😉 (шутка, этот параметр обозначет необходимость логировать сообщение от ipfw в /var/log)
  • net.inet.ip.fw.verbose_limit=10000 - ограничение количества сообщений в лог
  • net.inet.ip.fw.one_pass=0 - пакет проходит через файрволл дважды - на входе и на выходе
  • net.inet.ip.forwarding=1

    #This sets the session lifetime for TCP sessions without any traffic to 1 hour,
    #for UDP to 10 seconds.
    net.inet.ip.fw.dyn_ack_lifetime=3600

    #Linux kernel 2.6.19
    compat.linux.osrelease=2.6.19

А вот далее, мне пришлось ступить на тропу неизведанного - установка GUI (Graphical User Interface). Спросил у знакомых, проанализировал собственные, довольно таки скудные знания в этой области и, первоначально, остановился на XFCE. Собралась она довольно таки быстро, запустилась тоже без проблем, а вот что с ней делать дальше - я так и не смог разобраться. Простой, непонятный и неудобный для меня-виндузятника интерфейс. Исходя из всех, вышеперечисленных моментов, а также, учитывая то, что я уже имел опыт работы с Gnome (http://wordpress.sng.by/testirovanie-svobodnoj-os-na-blondinke/), я решил не пытать судьбу и поставить его. Однако, из портов он так и не захотел собираться - останавливается на сборке libxml2/python и все на этом. Поискав информацию во всемогущем Гугле, я так ничего не нашел, и пришлось мне пойти по другому пути установки, любезно предоставляемой мне ОС FreeBSD - установка из системы пакетов.
Пакет Gnome2 (pkg_add -r gnome2) довольно таки шустро собрался, установился и запустился без проблем. Таким образом, первая часть конфигурация перешла в статут "завершена".

Теперь нужно приступить к доработке получившейся заготовки при помощи напильника. В первую очередь, проверил, стоил ли апдейтить Гнома - оказалось, что нет, из пакетов установилась последняя версия.
Теперь - русификация консоли, в чем я воспользовался блогом hd_keeper - http://hd-keeper.livejournal.com/1577.html.
После русификации консоли, следующий шаг - установка драйверов для видеокарты NVidia, потому что тот дефолтный драйвер что загружается по умолчанию, не поддерживает разрешение выше 800х600 пикселей. Тут опять же мне на помощь приходит всезнайка-Гугл и блог Linux/BSD Sharing (http://linux-bsd-sharing.blogspot.com/2009/03/howto-install-and-configure-nvidia.html). Первая рекомендация - смотреть на сайте Nvidia драйвера последней версии для моей системы. Однако, я решил скачать драйвера с официального сайта производителя моей материнской платы ASUS. Так как драйвера для FreeBSD специально не пишутся - то придется устанавливать еще и поддержку Linux, что делается довольно таки просто. Подробно и интересно все это описано тут - http://www.linux.com/archive/feature/53055?theme=print.
Однако, для конфигурации с загрузкой нужных мне параметров - необходимо изменять xorg.conf (по умолчанию, он должен находиться в /etc/X11/), однако в новых версиях его там нет, и появляется он при помощи команды Xorg -configure. Опять же, чтобы не утомлять - вот линки с информацией:

После этих нехитрых манипуляций Гном приобрел значительно более приятный внешний вид.

Итак, настройка ограниченно завершена, в следующих статьях постараюсь рассказать о моей борьбе с wine и настройке объединения клубов.

А работа на Gamerbox.ru продолжается. Советую всем, кто еще не знает об этой системе ознакомиться с ней и подписаться на рассылку с тем, чтобы в числе первых оказаться ее пользователем.

Недавно я решился на интересный эксперимент на человеке - установил подруге жены на ноутбук Debian (один из распространенных дистрибутивов Linux). Опыта использования данной операционной системы у девушки вообще не было, до этого она пользовалась исключительно Windows (последовательно - XP, Vista, 7), так что эксперимент по использованию свободного ПО можно считать чистым.

В первую очередь, хочу представить Вам, мои читатели, объект эксперимента - Рита, хорошая подруга моей жены, умная  и красивая девушка. До начала эксперимента пользовалась исключительно продукцией Microsoft - последовательно Windows Vista, Windows XP, Windows 7. Если попытаться классифицировать уровень знаний ПК - то ее можно отнести к "продвинутому пользователю". Под термином "продвинутый пользователь" я подразумеваю пользователя, уверенно использующего свой компьютер, который может не только установить какую-либо программу, но и, в случае ее неработоспособности, провести диагностику и устранить причины ее неработоспособности (или удалить, если причину установить/устранить не получается).

А сама история началась с того, что летом, получив Windows 7 Pre-release, я предложил ей установить исключительно в целях тестирования эту, новую для меня, операционную систему. Установив, я про нее фактически забыл, то есть, дальнейшую настройку под себя, поиск, скачивание и установку софта, Рита делала сама. Единственная проблема, с которой она меня донимала - эта постоянные просьбы "семерки" активировать ее, и, как следствие, то, что не активированная версия не выводила на рабочий стол обои.

Постепенно, Рита все-таки извлекла из меня все соки, и я предложил ей переустановить ОС. Изначально, я планировал просто взять "семерку", поставить ей и забыть на этом про ее ноутбук на некоторое время. Однако, покопавшись в своей коллекции дисков с ОС, я обнаружил записанный мной еще летом у друга на 5 DVD-дисков дистрибутив Debian Lenny и решил, что стоит предложить Рите установить именно его, а не ОС производства Microsoft. К моему удивлению, предложение провести эксперимент было воспринято Ритой и Олей (моей женой) на УРА, и ноутбук достался мне для эксперимента.

Во время установки проблем не возникло никаких, только девушки беспрестанно спрашивали о происходящем. Я как мог, давал ответы. В отличии от "семерки", "Lenny" опознал все устройства ноута и установил корректные драйвера. Единственной проблемой для полноценного функционирования ноутбука (как рабочей станции пользователя, а не как тестовой системы) могло бы стать то, что подключение к Интернету я осуществляю через VPN, а в дистрибутив не было включено ни одного VPN-клиента, но, благодаря тому, что моя домовая сеть предоставляет бесплатный доступ к гостевым ресурсам ByFly, среди которых есть и репозитарии Debian, к следующему вечеру все было настроено и работало.

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

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

Да этого эксперимента, я все-таки не окончательно был уверен в дружественности свободного ПО, несмотря на то, что сам им пользуюсь на серверах в компьютерных клубах и фирмах, которые администрирую.

З.Ы. Рита до сих пор боится загрузочной консоли, а саму систему, после того как загрузился Gnome, использует уверенно.