Страницы

вторник, 12 февраля 2013 г.

Сервер для проведения вебинаров на базе Ubuntu 10.04 LTS server и Big Blue Button 0.80

BigBlueButton
Перед нами стоит задача настроить сервер вебинаров на базе Big Blue Button 0.80. Мы выбрали для этой задачи операционную систему Ubuntu. Так же наш сервер будет выполнять роль NAT+DNS+DHCP, так как не предполагается сильной нагрузки. Со временем  планируется настроить web-сервер на базе nginx и файловый сервер на samba.
Обращаю внимание на то, что Big Blue Button 0.80 должен устанавливаться на Ubuntu только версии 10.04 LTS. На более позднюю версию, например 12.04 LTS, он устанавливаться не будет. Нет, кончено же можно попробовать, но при установке Big Blue Button 0.80 просто не хочет устанавливаться.
Требования к серверу:
  • NAT - для выхода из внутренней сети предприятия в Интернет. 
  • DHCP сервер - для раздачи динамических ip-адресов клиентским машинам нам необходим DHCP сервер.
  • Сервер BigBlueButton 0.80 - самое важное.
Требования к серверу на базе Ubuntu 10.04 LTS server для установки BigBlueButton 0.80:
  1. 2 GB оперативной памяти (4 GB рекомендуется)
  2. Dual-core 2.6 GHZ CPU (quad core рекомендуется)
  3. Доступные порты 80, 1935, 9123
  4. Порт 80 не должен быть занят не одной программой
  5. 50G свободного места на жестком диске
  6. 100Mb/s - скорость подключения к Интернет.
Мы опишем следующие этапы:

1. Аппаратная часть сервера

2. Установка и настройка Ubuntu 10.04 LTS server

3. Установка Big Blue Button 0.80

1. Аппаратная часть сервера

допишем

2. Установка и настройка Ubuntu 10.04 LTS server

2.1. Скачиваем дистрибутив ubuntu-10.04.4-server-amd64.iso.torrent  при помощи torrent с этой страницы http://releases.ubuntu.com/lucid/. Записываем на диск и начинаем процедуру установки.
2.2. Установка не сложная и ее может пройти каждый, кто хоть однажды устанавливал операционною систему, но стоит обратить внимание на следующие нюансы:
  • Настройки локализации и языка должны быть en_US.UTF-8, поэтому при установке выбираем месторасположения US, и язык интерфейса English. Не знаю, что будет, если настроить русские региональные стандарты, скорее всего псевдографика в отдельных местах :)
  • При установке дополнительного ПО мы устанавливали только SSH сервер, не нужно устанавливать DNS сервер, т.к. мы будем использовать другой и LAMP (Linux+Apache+MySQL+PHP), чтобы не занять 80 порт, и Big Blue Button 0.80 использует свой web-сервер - nginx.
2.3. Настраиваем шлюз (NAT), для этого делаем следующее:
  • Заходим под root 
    sudo su 
  • настраиваем сетевые интерфейсы, открываем файл
    nano /etc/network/interfaces
    вносим в него изменения должен получится следующий файл:

    auto lo
    iface lo inet loopback
    auto eth0
    iface eth0 inet static
            address 192.168.1.3
            netmask 255.255.255.0
            network 192.168.1.0
            broadcast 192.168.1.255
            gateway 192.168.1.1
            dns-nameservers 192.168.1.1
    auto eth1
    iface eth1 inet static
            address 192.168.0.1
            netmask 255.255.255.0

здесь eth1 - смотрит в локальную сеть, а eth0 - подключен к ADSL модему, который настрое в режиме bridge (рис1). Обратите внимание, что вам может понадобиться ручная настройка DNS и изменение MAC-адреса сетевой карты.


Рис. 1 Схема подключения интерфейсов eth0, eth1, ppp0


  • Настраиваем подключение к Интернет по протоколу PPPoE, для этого подключаем ADSL модем, вставляем телефонный провод и витую пару, далее пишем команду:
    pppoeconf
    отвечаем на вопросы мастера подключения, вводим логин и пароль подключения.
  • Перезапускам сеть:
    /etc/init.d/networking restart
  • Пробуем пинг какого-нибудь сайта например ya.ru
    ping ya.ru
    если пинг проходит, то подключение установлено правильно.
  • Обновляем Ubuntu. Для этого вводим поочередно команды и дожидаемся их выполнения:
    apt-get update
    apt-get upgrade
  • устанавливаем DNSmasq
    apt-get install dnsmasq
  • Можно проверить подключение к Интернет. На клиентской машине настраиваем сетевую карту следующим образом:
    address 192.168.0.2
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-nameservers 192.168.0.1
    и на клиентской машине выполняем команду
    nslookup ya.ru
    в ответ должны получить 7-8 ip-адресов, значит все хорошо.
  • Настраиваем перенаправлявшие пакетов
    nano /etc/sysctl.conf
    найти и снять комментарий # со строки
    net.ipv4.ip_forward=1
    сохранить и выйти.
  • Настраиваем правила для маршрутизации
    nano /etc/rc.local
    Обратите внимание, что у нас ADSL модем настроен в режиме "мост" и подключение к Интернет выполняется на сервере, поэтому пакеты из внутренней сети необходимо передавать на интерфейс ppp0. Если у вас модем настроен в режиме роутера, то пакеты необходимо переадресовывать на внешний интерфейс. Добавляем перед exit0 следующие строки

    iptables -F
    iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
    iptables -A FORWARD -i ppp0 -o ppp0 -j REJECT
    iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

  • сохраняем изменения и перезагружаем сервер
    reboot
2.4. Настройка DHCP сервера. 
  • Устанавливаем DHCP сервер
    apt-get install dhcp3-server
    не торопитесь перечитывать статью, наверняка при установке вы увидели ошибку, о том, что сервер не может запуститься. Не беда - все идет по ранее утвержденному плану!
  • Редактируем конфигурационный файл DHCP сервера:
    nano /etc/dhcp3/dhcpd.conf
    ставим комментарий перед строками
    #option domain-name "example.org";
    #option domain-name-servers ns1.example.org, ns2.example.org;
    так как наш сервер будет единственным DHCP в нашей сети, то снимаем комментарий со строки
    authoritative;
    находим строки и снимаем комментарии и приводим к такому виду:

    # A slightly different configuration for an internal subnet.
    subnet 192.168.0.0 netmask 255.255.255.0 {   # подсеть и маска подсети
    range 192.168.0.10 192.168.0.254; # указываем диапазон IP адресов, которые будут выдаваться клиентам
    option domain-name-servers 192.168.0.1; # ip-адрес DNS-сервера
    option domain-name "internal.example.org"; # можно задать название своей сети
    option routers 192.168.0.1;  # адрес шлюза через который мы выходим в Интернет.
    option broadcast-address 192.168.0.255;  #широковещательный адрес который находится последним в диапазоне IP данной подсети
    default-lease-time 432000; # время аренды IP адреса в сек. здесь установлено 5 дней
    max-lease-time 432000;  # максимальное время аренды IP адреса здесь установлено 5 дней
    }
  • В этом же файле я решил добавить строки для закрепления за своим ноутбуком постоянного ip-адреса, для этого добавил строки:

host my-nb-wifi {
  hardware ethernet 00-24-21-4D-1C-7E;
  fixed-address 192.168.0.2;
}

        сохраняем и закрываем файл.
        • Теперь нам необходимо указать, на каком сетевом интерфейсе необходимо выполнять раздачу ip-адресов. Для этого открываем файл:
          nano /etc/default/dhcp3-server
          находим строку INTERFACES="" и вписываем интерфейс, который смотрит во внутреннюю сеть:
          INTERFACES="eth1"
        • сохраняемся, выходим и перезапускам наш DHCP сервер
          /etc/init.d/dhcp3-server start
        Сервер готов для установки BigBlueButton 0.80

        3. Установка и настройка BigBlueButton 0.80

        Инструкция по установке BBB находится на Google Code. Переводить и искажать ее нет смысла, к тому же, на официальном сайте она будет поддерживаться в актуальном состоянии.

        Команды и опции BigBlueButton 

        Установка демо BigBlueButton
        sudo apt-get install bbb-demo
        Удаление демо BigBlueButton
        sudo apt-get purge bbb-demo
        Получение saly и URL - эта команда необходима, чтобы получить saly и URL, для последующей интеграции в CMS и LMS. Есть опыт удачной интеграции в Joomla 1.5 - 2.5 и Moodle 2.x. Так же при помощи этой команды можно контралировать IP-адрес, на котором работает сервер BigBlueButton.
        bbb-conf --salt
        Изменение IP на котором работает сервер BigBlueButton.
        bbb-conf --setip 192.168.0.55
        Проверка конфигурации
        sudo bbb-conf --check