LiLaLo

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

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

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

Автор: Игорь Чубин
Mercurial-logo.png

Репозиторий проекта
http://xgu.ru/hg/lilalo

Журнал LiLaLo

Live Lab Log (дословно: живой лабораторный журнал) — система, предназначенная для автоматического фиксирования и распознавания хода работы с терминалом Unix-системы. Может применяться для автоматизированного документирования процесса работы системного администратора, для записи хода лабораторных работ во время обучения, для создания заготовок при написании документации, для слежения за ходом работы младших администраторов.


Содержание

[править] О программе

В ходе работы в консоли Unix/Linux-системы, будь то непосредственное выполнение задач администрирования, экспериментирование с целью найти и описать решение какой-то задачи или самообучения, демонстрация приёмов работы на живых примерах или что-то другое, часто возникает необходимость зафиксировать происходящий в консоли процесс.

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

Каждый из этих способов имеет собственные недостатки. Подробнее:

[править] Возможности LiLaLo

Предлагаемое решение свободно от всех перечисленных выше недостатков и обладает рядом преимуществ.

LiLaLo - это script на стероидах. LiLaLo использует для записи программу script. Однако, в отличие от программы script в чистом виде, во время записи фиксируются не только команды и результат их работы, но и множество дополнительной информации о командах. Это позволяет в дальнейшем более полно реконструировать ход работы.

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

Автоматическая запись дополнительной информации о командных строках возможна за счёт модификации приглашения командной строки. Хотя визуально это практически никак не заметно, приглашение командной строки модифицируется, и в него, в скрытом виде, добавляется несколько параметров, характеризующих команду, которая набирается в этом приглашении и будет выполнена. В их числе:

  • текущий каталог, из которого производится вызов команды;
  • время;
  • код завершения предыдущей команды

и ряд других.

Помимо того, что производится запись всего хода работы в командной строке, автоматически фиксируются все изменения в файлах, сделанные с помощью текстового редактора. Есть возможность делать скриншоты и показывать в журнале окна, которые, возможно, имеют непосредственное отношение к производимым в консоли действиям.

Записанные данные хранятся в формате программы script, то есть, фактически, непосредственно в виде набора команд терминалу. Они могут быть обработаны и представлены в структурированной форме, в виде XML-файла. Который в дальнейшем может быть либо преобразован в HTML файл и визуализирован, либо может просто попасть в хранилище.

Анализ терминального скрипта, преобразование его в XML-форму и визуализация при помощи web-интерфейса выполняется в реальном времени и без всякого дополнительного участия пользователя.

[править] Устройство LiLaLo

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

  • l3-скрипт - запись хода работы;
  • l3-agent — анализ терминального скрипта, преобразование его в XML-форму;
  • l3-backend — приём и размещение в хранилище;
  • l3-frontend — представление через Web-интерфейс.

Подробнее:

[править] Знакомство

Быстрое знакомство с LiLaLo можно осуществить за несколько минут. Для этого нужно установить l3-скрипт и l3-agent и нацелить его на публичный l3-backend. При использовании скрипта автоматической инсталляции lilalo для этого достаточно выполнить только две команды.

Скриншоты дают представление о работе программы. Наиболее интересные моменты её использования показаны здесь.

Примеры журналов лабораторных работ можно посмотреть на xgu.ru/l3/. Там находится большое количество журналов лабораторных работ с тренингов по Unix-системам, которые проводятся в УЦ Сетевые Технологии компании Techexpert.


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

Подробнее:

[править] l3-agent

l3-agent — программа, выполняющая анализ script-файлов, и представляющая данные в форме XML-потока. Потом может записываться в файл или передаваться на сервер l3-backend'.

Подробнее:

[править] l3-backend

(нужно написать)

Подробнее:

[править] l3-frontend

(нужно написать)

Подробнее:

[править] Конфигурация и l3-config

Основная страница: Настройка LiLaLo

Источники конфигурационных параметров, в порядке возрастания приоритета:

  1. l3config.pm — значения параметров по умолчанию;
  2. /etc/lilalo/lilalo.conf — общесистемная конфигурация LiLaLo;
  3. ~/.l3rc — пользовательский конфигурационный файл;
  4. аргументы командной строки.

Просмотреть текущее значение параметра:

    $ l3-config backend_address
    127.0.0.1

Если конфигурационный параметр относится к агенту, и он запущен в настоящий момент, его нужно перезапустить отправкой сигнала HUP:

    $ pkill -1 l3-agent

[править] Использование

Основная страница: Использование LiLaLo

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

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

  $ l3script

При это автоматически данные начинают записываться и ретранслироваться на backend-сервер.

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

  $ exit

Вы возвращаетесь в свой командный интерпретатор.

Если необходимо, чтобы запись велась всегда, нужно изменить строку в ~/.bashrc с

[ $0 == l3script ] && . ${user_home}/.lilalo/l3bashrc && _l3_start

на

. ${user_home}/.lilalo/l3bashrc && _l3_start

В этом случае как только запускается командный интерпретатор, запись начинается сразу же.

[править] Скриншоты

На скриншотах представлены наиболее интересные моменты работы программы.

  • В терминале идёт запись.
В терминале идёт запись

Но с точки зрения того, кто работает в нём, это практически незаметно. Если запустить команду w, то видно, что в текущем терминале работает script:

%$ w
 11:22:41 up  1:48,  4 users,  load average: 0,13, 0,06, 0,02
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
igor     tty1     -                09:35    1:47   2.93s  0.10s -bash
igor     pts/2    :0.0             10:22    0.00s  0.28s  0.16s script -f -c l3

Если в выводе w для текущего терминала в поле WHAT находится запись w, а не script, то значит запись не идёт. Начать запись можно командой l3script

  • Журнал работы с терминалом Unix-системы. Запоминаются команды и результат их выполнения, код завершения команды, время выполнения и множество другого.
Lilalo-journal.png
  • Изменения сделанные в файлах. При использовании текстового редактора в журнал попадают сделанные изменения, они представлены в виде diff-блока желтого цвета.
Lilalo-editor.png
  • Комментарии. Комментарии в журнал можно вставлять непосредственно из командной строки.
Lilalo-comment.png
  • Скриншоты. Если сфотографировать какое-то окно, не терминал, то оно автоматически попадёт в журнал
Lilalo-l3shot.png
  • Автоматическое комментирование команд. Краткое описание команд доступно в виде всплывающих подсказок
  • Статистика. Статистическая информация о ходе работы и наборе использованных команд
Lilalo-stat.png

[править] Вопросы и ответы

[править] lilalo не устанавливается, выдаёт ошибку про iconv. Что делать?

Проинсталлировать недостающее программное обеспечение. На RedHat-подобных дистрибутивах чаще всего ошибка решается путём установки compat-glibc-headers:

%# rpm -i compat-glibc-headers-2.3.4-2.26.i386.rpm

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

Права на LiLaLo принадлежат её авторам. Список авторов указан в файле README в корневом каталоге дистрибутива LiLaLo.

Программа распространяется по лицензии BSD. Текст лицензии находится в файле LICENSE в корневом каталоге дистрибутива LiLaLo. С ним также можно ознакомиться в [1] (en) и в [2] (рус).

[править] Существующие ограничения, ошибки и идеи

Основные ограничения, существующие на текущий момент:

  • поддерживается только bash (csh и zsh не поддерживаются).

Программа находится в состоянии развития. Список изменений, которые должны быть сделаны в ближайшее время, и стратегические идеи здесь:

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

[править] Название и символика

Название LiLaLo произошло от сокращения Live Lab Log — живой журнал лабораторных работ.

Как выяснилось потом, lilalo на цыганском означает в письменном виде, то замечательно отражает назначение программы.

Выдержка из цыганско-немецкого словаря [3]:

lil —  Brief — (§ subst.mask.a)
lil — Reisepaß — (§ nomphr.)
lila — Dokument(e) — (§ subst.pl.)
lilalo — Brief-, brieflich (§ adj.)

В одном из детских немецких стихов зафиксировано использование термина "lilalo". Возможно, слово вырвалось несознательно и было просто созвучно рифме, но не исключено, и то что песенку пел будущий юниксоид:

Alle Häslein singen leise

Auf der Wiese hinterm Wald
wohnt Fräulein Liese Owiealt.
Liebt die Musik und schöne Lieder,
spielt auf der Flöte immer wieder
Das Lied vom schönen Monat Mai.
" Er ist gekommen , lilalei,
Die Bäumlein blühen lilalo,
Jetzt ist er da und wir sind froh."
Und alle Häslein auf der Wiese,
die singen gern mit Fräulein Liese.
Die schöne , dumme Frühlingsweise
vom Wonnemonat Mai.

В настоящий момент символ LiLaLo не существует. Возможные варианты:

  • Лабрадор (лаборатор)
Лабрадор Лилало

[править] Внешние ссылки

Обсуждение в блогах и форумах:

Другие проекты по записи хода работы в консоли и в графических интерфейсах:

Автоматическое создание скриншотов:

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

Источник — «http://xgu.ru/wiki/LiLaLo»