Xgu.ru теперь в Контакте  — приходите и подключайтесь.
Пока мы работаем над следующими видео, вы можете подключиться в Контакте. Познакомимся и обсудим новые страницы и ролики.

Vk-big.pngYoutube-big.jpeg

Инсталляция LiLaLo

Материал из Xgu.ru

(Перенаправлено с lilalo/install)
Перейти к: навигация, поиск
Короткий URL: lilalo/install

< LiLaLo


В работе LiLaLo можно выделить несколько составляющих:

  • Запись (script),
  • Распознавание и отправка (l3-agent),
  • Получение и хранение (l3-backend),
  • Визуализация (l3-frontend).

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

Содержание

[править] Клиент

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

Для обработки данных, записанных l3-скриптом, необходимо установить l3-agent.


[править] Автоматизированная инсталляция

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

Перед тем как приступать к процедуре инсталляции, убедитесь, что в системе есть все необходимые компоненты:

  • perl
  • make
  • libmodule-build-perl (для собрки необходимых модулей Perl)
  • libc6-dev (для файла /usr/include/iconv.h, необходимого для сборки модуля Text::Iconv)
  • gcc (необходим для проверок Perl при инсталляции модулей)

Для создания и загрузки скринштов также необходимы пакеты:

  • x11-apps (или другой пакет, в который входит xwd, программа для создания скриншотов)
  • curl (необходим для загрузки xwd-файлов на сервер)

На сервере (где установлен l3-backend) также должен быть установлен:

  • netpbm (для преобразования xwd-файлов в png)

Для AltLinux Desktop 4.0 ставим:

  • perl-Module-Build(вместо libmodule-build-perl и libc6-dev)

После этого можно приступать к инсталляции:

%# wget http://xgu.ru/lilalo/install # или fetch вместо wget для FreeBSD; а ещё лучше curl, если он есть
  • lilalo_user — имя пользователя lilalo;
  • lab — название первой записи;
  • users — имена пользователей системы, которым нужно модифицировать ~/.bashrc и включать автоматическую запись журнала;

на основе параметров lilalo_user и lab строится контекст; первые записи в журнале будут доступны по адресу /l3/users/$lilalo_user/$lab.

%# lilalo_user=vova lab=xen-dom0-setup users="root vova" sh install 

Можно поправить параметры непосредственно в файле install:

  • lilalo_user — имя пользователя в lilalo(нужно для lilalo_context)
  • lab — название "лабораторной" работы(опять же нужно для lilalo_context)
  • install_l3bashrc_for_this_users — системные пользователи для которых нужно вести log (записывать все их действия)
  • lilalo_context — при использовании l3-backend-сервера xgu.ru(по умолчанию так и произойдёт), ваш лог будет доступен на странице http://xgu.ru/l3/"lilalo_context" (оставляем по умолчанию или меняем по своему вкусу)


Если автоматизированная инсталляция по каким-то причинам не подходит, необходимо выполнить действия, выполняемые скриптом вручную. Ниже описана процедура ручной инсталляции l3-скрипта и l3-agent'а.

[править] Ручная инсталляция l3-скрипта

Для того чтобы начать вести журналы LiLaLo, необходимо выполнить следующие действия:

  1. Создать каталог ~/.lilalo
  2. Получить скрипт-клиент LiLaLo (далее l3-скрипт) и записать его в каталог ~/.lilalo
  3. Настроить контекст lilalo
  4. Добавить в ~/.bashrc строку запуска l3-скрипта.
  5. Перелогиниться или запустить новый bash
  6. Убедиться, что запись ведется.

[править] Создание рабочего каталога ~/.lilalo

Каталог, который будет использоваться LiLaLo для записи всех журналов, а также для хранения промежуточных результатов преобразования, до того как они будут отправлены на backend-сервер.

# mkdir ~/.lilalo

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

[править] Получение скрипт-клиента LiLaLo

Получите скрипт-клиент (l3-скрипт) и запишите его в рабочий каталог LiLaLo. Получить текущую версию скрипт-клиента можно по адресу: xgu.ru/lilalo/l3bashrc

# cd ~/.lilalo
# wget xgu.ru/lilalo/l3bashrc

Этот скрипт будет вести запись сеанса работы с консолью системы. Журналы лабораторных работ, полученные в результате записи, буду находиться в каталоге ~/.lilalo (или в другом рабочем каталоге LiLaLo, заданном на предыдущих шагах).

[править] Настройка контекста LiLaLo

Журналы, записываемые l3-скриптом обрабатываются l3-агентом и передаются на l3-backend. Хранилище l3-backend имеет иерархическую структуру: каждая команда привязывается к какой-то точке - контексту - в иерархии, напоминающей иерархию файловой системы.

Здесь вы указываете, куда будут попадать команды, передаваемые на l3-backend.

Например, команда:

# l3 cd /users/devi/ipsec-openswan

указывает, что команды, которые будут записаны с этого момента попадают в контекст /users/devi/ipsec-openswan.

При использовании backend-сервера xgu.ru они будут доступны по адресу xgu.ru/l3/users/devi/ipsec-openswan

Просмотреть текущий контекст можно командой:

# l3 pwd

[править] Запуск l3-скрипта из bashrc

Добавьте в конец файла ~/.bashrc строку:

. ~/.lilalo/l3bashrc && _l3_start

Она означает: загрузить в текущий командный интерпретатор функции l3-скрипта, находящиеся в файле l3bashrc, и, при условии что загрузка выполнилась успешно, начать запись.

Если запускать это команду вручную, сразу же после её выполнения должна начаться запись.

[править] Перезапуск bash

Для того чтобы изменения в файле ~/.bashrc вступили в силу, нужно перезапустить bash. Для этого нужно или перелогиниться, или запустить новую копию bash.

Если запуск l3-скрипта осуществляется вручную, а не из .bashrc, просто выполните его.

[править] Проверка

По умолчанию l3-скрипт модифицирует приглашение командного интерпретатора так чтобы оно изменило свой цвет. Приглашения пользователя становится зелёным, а приглашение суперпользователя - красным. Изменения цвета приглашения означает то, что сейчас l3-script работает, и запись ведётся.

Убедиться что запись выполняется можно и иначе. Нужно запустить команду w и посмотреть, какая программа работает на текущем терминале. Должна работать программа script.

Например, в данном случае запись выполняется только на терминале pts/11:

# w
 15:50:49 up  5:45,  5 users,  load average: 0.01, 0.04, 0.05
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
user     tty1     -                10:12    2:08   0.59s  0.01s /bin/login --     
user     tty2     -                11:08    2:09   0.06s  0.01s /bin/login --     
user     tty3     -                12:17    2:09   0.03s  0.01s /bin/login --     
user     tty4     -                12:12    2:02   0.06s  0.02s /bin/login --     
root     pts/11   linux.nt         15:42    0.00s  0.05s  0.04s script -f -q /root/.li

[править] Получение дистрибутива LiLaLo

Для полноценного использования LiLaLo необходимо получить и установить дистрибутив системы.

Получить архив исходных текстов системы можно здесь: http://xgu.ru/lilalo/lilalo.tar.gz

[править] Ручная инсталляция l3-agent

[править] Сервер

Данные, которые l3-agent получит из файлов-журналов, должны быть переданы l3-backend-серверу. Можно воспользоваться уже работающими серверами, например xgu.ru.

Для использования собственного сервера, необходимо инсталлировать и сконфигурировать l3-backend и l3-frontend, а также web-сервер, с помощью которого будет выполняться доступ к l3-frontend'у.

[править] Получение кода проекта

Архив LiLaLo находится по адресу:

Текущая версия LiLaLo лежит в Mercurial-репозитории по адресу:

Для получения проекта нужно установить mercurial и выполнить команду:

$ hg clone http://xgu.ru/hg/lilalo

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

  • l3-backend
  • l3-frontend
  • l3-cgi-lite

[править] Инсталляция l3-backend

Скопировать l3-backend:

%# cp l3-backend /usr/bin/
%# chmod +x /usr/bin/l3-backend

Нужно добавить вызов l3-backend в загрузку. Например, в файл /etc/rc.local.

Можно воспользоваться стартовым скриптом /etc/init.d/l3-backend:

%# cp initd-l3-backend /etc/init.d/l3-backend
%# chmod +x /etc/init.d/l3-backend

После чего нужно добавить вызовы этого скрипта на соответствующие уровни выполнения (chkconfig, update-rc.d, вручную или как-нибудь ещё).

l3-backend прослушивает сетевой порт, через который к нему поступают распознанные команды.

Записанные журналы попадают в backend_datadir. По умолчанию это каталог:

 /var/lilalo/lablogs-xml

Необходимо создать этот каталог.

%# mkdir /var/lilalo/lablogs-xml

Icon-caution.gif

Вообще, сейчас l3-backend работает по умолчанию с правами root'а, что совершенно глупо и необоснованно. Его можно запускать с ограниченными правами какого-нибудь пользователя. Лучше всего на роль этого пользователя подойдёт www-data, или любой другой, с правами которого исполняется web-сервер. В будущем (см. LiLaLo_TODO скрипт l3-backend будет удалён как таковой, и команды будут поступать через скрипт l3-cgi-lite

В этом каталоге (и его подкаталогах) будут создаваться кэш-файлы с HTML-представлением журналов. Поэтому каталог надо сделать доступным для записи web-серверу.

%# chgrp -R www-data /var/lilalo/lablogs-xml
%# chmod -R g+ws /var/lilalo/lablogs-xml


После того как каталог создан, можно запускать l3-backend:

%# cd /usr/bin/
%# ./l3-backend

или, если используется стартовый скрипт:

%# /etc/init.d/l3-backend start

[править] Инсталляция l3-frontend

Скопируйте l3-frontend в каталог, который присутствует в PATH (Скрипт l3-frontend вы можете вызывать самостоятельно, и кроме того он будет вызываться CGI-скриптом l3-cgi-lite при просмотре журналов; поэтому имеется в виду не только ваш личный PATH, но и тот PATH, который знает web-сервер).

%# chmod +x l3-frontend l3-cgi-lite l3-upload
%# cp l3-frontend /usr/bin/
%# cp l3-cgi-lite /usr/lib/cgi-bin/
%# cp l3-upload /usr/lib/cgi-bin/

Скопируйте каталог со стилями в корневой каталог web-сервера или создайте соответствующий алиас:

%# cp -R l3files /var/www/

После того как файлы скопированы, необходимо создать несколько алиасов в конфигурации web-сервера:

    ScriptAlias /l3 /usr/lib/cgi-bin/l3-cgi-lite
    ScriptAlias /l3-upload /usr/lib/cgi-bin/l3-upload
    <Directory /usr/lib/cgi-bin/>
        AllowOverride None
        Options ExecCGI -MultiViews FollowSymlinks
        Order allow,deny
        Allow from all
    </Directory>

После чего для того чтобы изменения вступили в силу, web-сервер нужно перезапустить.

При обращении к странице /l3 Web-сервера, будет открываться страничка l3-backend'а.

Попробуйте обратиться по адресу:

   http://127.0.0.1/l3/

Если вы планируете загружать на сервер картинки и прочие файлы, создайте каталог для их хранения:

%# mkdir /var/www/l3shot

Путь к каталогу для хранения загруженных файлов задаётся параметром upload_dir.

[править] LiLaLo на Xgu.ru