Рубрика:
Администрирование /
Коллективная работа
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС
OpenGroupware.org, или Последний кирпич в стене
Несмотря на замечания скептиков, операционная система GNU/Linux смогла привлечь (и привлекает) на свою сторону пользователей. Но если с установками на сервере или на домашнем компьютере ситуация более или менее определенная и зависит не в последнюю очередь от подготовки и желания пользователя или администратора, то вот с применением этой системы на корпоративном уровне все не так просто, как хотелось бы. И те администраторы, которые рискнули сделать этот шаг, что скрывать, сталкиваются с проблемами. Недостаток информации, разнообразие программ, интерфейсов, плохая и путающая пользователей локализация, – это далеко не полный список, с чем придется столкнуться. Между тем в сообществе Open Source уже известно несколько проектов, цель которых заполнить имеющийся вакуум и заменить приложения, привычные по Windows.
Система программного обеспечения коллективной работы OpenGroupware.org (OGo) призвана конкурировать с такими известными продуктами, как Microsoft Exchange, IBM Lotus Domino и Novell GroupWise. Проект не возник на ровном месте, основой послужил код одной из самых ранних таких разработок под GNU/Linux – Skyrix 4.1 Groupware Server, представленный немецкой компанией Skyrix Software AG, занимавшейся разработкой этого приложения с 1996 года (до 2000 года он назывался LSOffice). Именно поэтому с самого начала это был рабочий продукт, а не прототип. Буквально за один день после анонса сайт проекта http://www.opengroupware.org посетили более чем два миллиона посетителей. Схожесть названия (да и истории возникновения) с еще одним известным Open Source-проектом – OpenOffice.org породила некоторую неразбериху. На сайте размещено примечание, что это хотя и дополняющие друг друга, но все-таки отдельные сообщества. Кроме GNU/Linux, OGo в настоящее время портирован под BSD, GNUstep и MacOSX. Интерфейс полностью переведен на английский и немецкий, плюс ведутся разработки по локализации на датский, испанский, итальянский, французский, голландский, корейский, турецкий, японский и китайский. К сожалению, русского в этом списке нет. Все данные хранятся в обычных текстовых файлах, рисунки хранятся в отдельных файлах и используется Unicode, поэтому локализация не представляет серьезных проблем. Достаточно перевести все параметры в файлах одного из подкаталогов /opt/opengroupware.org/Resources/ и настроить клиентов на вывод в нужной кодировке. Дополнительно в помощь «Translation Project» представляет два скрипта, помогающих в переводе интерфейса (рис. 1). Но, очевидно, не каждый будет этим заниматься, и OGo обретет у нас популярность, после того как на него обратят внимание компании-разработчики ПО вроде ALTLinux.
Рисунок 1
Приложения, входящие в состав OGo
Для доступа ко всем функциональным возможностям и данным проект представляет открытые, основанные на XML интерфейсы и API. При этом все функции реализуются в виде модулей, что позволяет расширять возможности по мере необходимости. Поэтому состав приложений вполне может измениться, разработчики открыты для общения.
Итак:
- Contact Management (менеджер контактов) – сохранение и организация персональных и групповых контактов, с широкими возможностями по поиску и оптимизации данных, с возможностью экспорта и удаленного доступа.
- Group Calendar (календарь) – планирование событий как персонально, так и для группы. Возможность добавления примечаний, автоматическое обнаружение конфликтов, простая настройка повторяющихся событий.
- Resources Planner (планировщик ресурсов) – позволяет рационально планировать использование различного имущества (автомобили, проекторы), помещений, с возможностью поиска свободных интервалов времени, автоматической проверкой конфликтов, посылки уведомлений.
- Task Management (менеджер задач) – организация персональных, групповых или специфических задач с возможностью их упорядочивания по приоритетам, дате, состоянию, выводом на персональной странице и уведомлением по e-mail.
- E-Mail Client – предлагает удобную среду для обмена e-mail посредством прямого доступа к IMAP4 и POP3-серверам, с предоставлением большинства принятых в e-mail клиентах функциональных возможностей и импортом данных в менеджер контактов.
- Projects and Documents (проекты и документы) – единая централизованная среда, позволяющая использовать файлы и документы локально и удаленно группами пользователей или участниками отдельного проекта, с выдачей необходимых ссылок пользователям.
- News (новости) – доска объявлений, дает возможность публиковать необходимую информацию (правила использования, новости компании и пр.), плюс служит напоминанием о текущих задачах и служит как персональная страница.
- Palm Sync (синхронизация с Palm) – синхронизация данных в устройствах Palm с приложениями OGo.
Плюс ко всему имеется легко перестраиваемый пользовательский интерфейс, а администратор получает возможность удобного манипулирования пользовательскими и групповыми аккаунтами, и по настройке OGo. Клиентами OGo могут выступать не только веб-браузеры, но некоторые популярные утилиты вроде MS Outlook, kOrganizer, Mac OS/X Finder, Apple iCal.app, Ximian Evolution.
Надо отметить, что OGo далеко не единственный проект такого рода, реализованный под свободные ОС или имеющие статус OpenSource. Поэтому стоит вкратце, справедливости ради, дать ссылки и на остальные решения. Тем более даже у некоторых из платных решений базовые версии, большей частью свободны. Самый известный и довольно мощный продукт SUSE Linux Openexchange Server (http://www.suse.com/us/business/products/openexchange/index.html). Далее проект от разработчиков KDE и финансируемый правительством Германии – Kroupware (http://www.kroupware.org, на момент написания статьи ссылка не работала), DeskNow Mail and Collaboration server (http://www.desknow.com/index.html), HyperOffice (http://www.hyperoffice.co), проект, основанный на zope и qmail Amphora (http://www.amphora.ee/eng), LinuXchangE (http://www.linuxchange.com), PHPGroupware (http://www.phpgroupware.org).
В OGo подкупает размах, зрелость и самое главное – свобода с использованием открытых технологий. Именно эти качества могут привести к тому, что OGo вполне возможно и станет номером один в этом списке.
Установка
Если цель ваших исследований – ознакомление с этим продуктом, и имеется возможность скачать файл большого объема, то лучшим и самым быстрым вариантом получить работающую версию будет использование LiveCD, базирующегося на Knoppix (http://www.opengroupware.org/knoppix/index.html). В этом случае можно носить его с собой для демонстрации возможностей. В любом другом случае придется немного повозиться с установкой. Но в отличие от многих других проектов, только начавших свой путь, установка особых проблем вызвать не должна, и, имея некоторый опыт общения с UNIX-системами, заставить работать OGo, безусловно, можно. Дополнительно проект в последнее время начал быстро обрастать HOWTO, в которых объясняется специфика установки для отдельного дистрибутива и готовыми скриптами, автоматизирующими процесс. Но, если почитать всю доступную документацию, можно немного запутаться, т.к. авторы HOWTO подходят по-разному к самому процессу, а в предлагаемых скриптах используются разные пути и переменные. К тому же в некоторых документах указаны команды, в которых на данный момент уже нет необходимости. Как пример rpm-пакеты распаковываются в /opt/opengroupware.org (исключение – недавно появившиеся пакеты для SuSE 9.1 – /usr/local/share/opengroupware.org-1.0a) и /opt/skyrix/, Debian в /usr/lib/opengroupware.org, скрипты для Slackware устанавливают все в каталог вида /opt/OGo-yyyymmdd/. Хотя если почитать документацию годичной давности, то можно сделать вывод, что раньше возни было все-таки побольше. А поэтому просто необходимо быть внимательным и для начала использовать официальную (т.е. общую) документацию.
Далее на странице закачки уже появились ссылки на прекомпилированные пакеты, собранные сторонними добровольцами, все в основном под glibc 2.3. Если в дистрибутиве используется более ранняя версия этой библиотеки, попробуйте собрать из исходников или обновите glibs. Как исключение имеются пакеты для RedHat 7.3 (http://ftp.nakedape.cc/nakedape/rh73/rpm/opengroupware). Приведу пример ручной конфигурации OGo для rpm-пакетов, испробованная на SuSE 9.1, RedHat 9, Linux XР и Mandrake 10, хотя сейчас доступен Perl скрипт Kelley Graham http://www.toasterz.com/ogo/add_remove_ogo.pl, который может сделать большую часть работы за вас (wget -q -O – http://exchangekiller.com/install | perl и ./add_remove_ogo.pl install).
Итак, прекомпилированые пакеты доступны как по отдельности, в этом случае нужно скачать все имеющие latest в названии или единым архивом, например, rpm-all-latest.tar.bz2.
Первым делом распаковываем архив:
# tar -xzvf rpm-all-latest.tar.bz2
В результате образуется подкаталог rpm, содержащий 78 файлов, переходим в него:
# cd rpm
Все в принципе не нужны, но какая разница.
# rpm -Uvh *.rpm
В процессе система выдает сообщения о домашнем каталоге утилиты и о создаваемых пользователях.
Running post installation in root "/opt/skyrix/system" ..
GNUstep root: /opt/skyrix/system
...
GNUstep Root: /opt/opengroupware.org
No "skyrix" group available on the system, creating...
Using group ID "321"
Made a backup of the group file in "/opt/opengroupware.org/backup/200409251027"
Created group "skyrix".
No "opengroupware" user available on the system, creating...
Using user ID "56641"
Made a backup of the passwd/shadow file in "/opt/opengroupware.org/backup/200409251027"
Created user "opengroupware" with UID "56641"
|
Далее конфигурирование PostgreSQL (подробности см. в статье Сергея Супрунова «PostgreSQL: первые шаги», журнал «Системный администратор» № 7, 2004 г.).
Редактируем файл /var/lib/pgsql/data/pg_hba.conf:
local all all trust
host all all 127.0.0.1 255.255.255.255 trust
host all all 0.0.0.0 2 55.255.255.255 reject
Так советуют разработчики. Но в этом случае к базе данных получают доступ все локальные пользователи, а поэтому данную конфигурацию следует использовать только при отладке.
Далее стоит безопасности ради использовать конкретного пользователя вроде:
host opengroupware skyrix 127.0.0.1 255.255.255.255 trust
А лучше еще и требовать пароль для доступа.
host opengroupware skyrix 127.0.0.1 255.255.255.255 passwd (или md5)
Да и в более ранних версиях (<=7.2) нужно использовать конструкцию с одним all.
local all trust
Далее в файле /var/lib/pgsql/postgresql.conf должны быть такие строки.
# CONNECTIONS AND AUTHENTICATION
#--------------------------------------------------------
# - Connection Settings -
tcpip_socket = true
max_connections = 32
port = 5432
Перезапускаем сервер:
# /etc/init.d/postgresql restart
Shutting down PostgreSQL done
Starting PostgreSQL done
|
Теперь создаем новую базу данных, таблицы, пользователя.
# su
# cd /opt/opengroupware.org/Database/PostgreSQL
# su postgres
# createdb ogo
# createuser -A -D ogo
# psql ogo ogo
Welcome to psql 7.4.2, the PostgreSQL interactive terminal.
Type: copyright for distribution terms
h for help with SQL commands
? for help on internal slash commands
g or terminate with semicolon to execute query
q to quit
|
ogo=> i pg-build-schema.psql
Дело сделано, выходим.
ogo=> q
Настала очередь Apache. Для начала необходимо установить модуль, находящийся по адресу: http://www.opengroup ware.org/sources/old-cvs-sources/opengroupware.org-mod_ngobjweb-latest.tar.gz.
# tar -zxvf opengroupware.org-mod_ngobjweb-latest.tar.gz
# cd opengroupware.org-mod_ngobjweb
Если установлен второй Apache, то, возможно, в файле GNUmakefile придется исправить строку: HTTPD = $(APACHE)/sbin/httpd2.
# make
Получаем модуль ngobjweb_x.x.xx.so, где х соответствует версии сервера. Копируем его, куда нам удобнее.
# mkdir /opt/opengroupware.org/module
# cp ngobjweb_2.0.40.so /opt/opengroupware.org/module
Следующим шагом редактируем /etc/apache2/httpd.conf.
Здесь два варианта – занести все параметры в httpd.conf или вынести все в отдельный файл и прописать путь к нему строкой вида Include /etc/apache2/ogo.conf. Поступайте, как вам удобней.
#OpenGroupware Apache Module config file.
LoadModule ngobjweb_module/opt/opengroupware.org/module/ngobjweb_2.0.40.so
<LocationMatch "^/OpenGroupware/*">
SetHandler ngobjweb-adaptor
SetAppPort 20000
# SNSPort 127.0.0.1:20000
</LocationMatch>
<Directory "/opt/opengroupware.org/WebServerResources">
Order allow,deny
Allow from all
</Directory>
Alias /OpenGroupware.woa/WebServerResources/opt/opengroupware.org/WebServerResources
# Exchange public folders URL
<LocationMatch "^/zidestore/*">
SetHandler ngobjweb-adaptor
SetAppPort 23000
</LocationMatch>
Alias /zidestore/so/images /opt/opengroupware.org/WOApps/ZideStore.woa/WebServerResources
# News Alias
Alias /ArticleImages /opt/opengroupware.org/news
Перезапускаем сервер.
#/etc/init.d/apache2 restart
Syntax OK
Starting httpd2 (prefork) done
|
Запускаем OpenGroupware. При отладке полезно давать команды прямо из консоли, тогда сразу будут видны все ошибки.
# su opengroupware
# echo "source /opt/opengroupware.org/OpenGroupware.org.sh" >> ~/.bash_profile
# echo "export LD_ASSUME_KERNEL=2.4.1" >> ~/.bash_profile
Примечание в дистрибутивах, не использующих NTPL, последняя строка не нужна, в Fedora она будет иметь вид: export LD_ASSUME_KERNEL=2.4.19.
# /opt/opengroupware.org/WOApps/OpenGroupware.woa/ix86/linux-gnu/gnu-fd-nil/OpenGroupware -WOHttpAllowHost localhost
В первый раз система, скорее всего, не сможет найти требуемые версии библиотек и выдаст ошибки. Поэтому для начала нужно занести следующие строки в файл /etc/ld.so.conf (для rpm-версии, в остальных случаях измените путь), после чего даем команду ldconfig.
/opt/opengroupware.org/Libraries/ix86/linux-gnu/gnu-fd-nil
/opt/skyrix/system/Libraries/ix86/linux-gnu/gnu-fd-nil
Для удовлетворения зависимостей в случае SuSE 9.1 необходимо дать такие команды:
# ln -s /usr/lib/libldap.so.199.3.4 /usr/lib/libldap.so.2
# ln -s /usr/lib/libssl.so.0.9.7 /usr/lib/libssl.so.0.9.6
# ln -s /usr/lib/libcrypto.so.0.9.7 /usr/lib/libcrypto.so.0.9.6
# ln -s /usr/lib/liblber.so.199.3.4 /usr/lib/liblber.so.2
Если используется другой дистрибутив, то в сообщении будет указана требуемая версия. Например:
/opt/opengroupware.org/WOApps/OpenGroupware.woa/ix86/linux-gnu/gnu-fd-nil/OpenGroupware:
error while loading shared libraries: liblber.so.2: cannot open shared object file: No such file or directory
|
А команда ls -al /usr/lib/lib* укажет на имеющуюся.
Запускаем:
# /opt/opengroupware.org/WOApps/OpenGroupware.woa/ix86/linux-gnu/gnu-fd-nil/OpenGroupware -WOPort 20000 -WOHttpAllowHost localhost
-OGoMinimumActiveSessionCount 0 -LSNewsImagesUrl "/ArticleImages" -LSNewsImagesPath /opt/opengroupware.org/news
-LSConnectionDictionary {databaseName = ogo; hostName = 127.0.0.1; password = "qwerty"; port = 5432; userName = ogo}
-LSAdaptor PostgreSQL72 -LSModelName OpenGroupware.org_PostgreSQL >> /var/log/ogo.log 2>&1 &
# /opt/opengroupware.org/WOApps/ZideStore.woa/ix86/linux-gnu/gnu-fd-nil/ZideStore -WOPort 23000 -WOHttpAllowHost localhost -SxExplain YES
-WOCachingEnabled YES -WOHttpTransactionUseSimpleParser YES >> /var/log/ogo.log 2>&1 &
Для автоматического запуска лучше использовать init-скрипт. Ничего самому писать не надо, уже имеются готовые. Для RedHat смотрите на http://toasterz.com/ogo/docs/opengroupware, в пакете slack-all для Slackware тоже имеется готовый скрипт, другие можно найти по адресу: http://helms-deep.cable.nu/~rwh/howtos/opengroupware, http://exchangekiller.com/docs/opengroupware (наиболее полный), http://helms-deep.cable.nu/~rwh/howtos/opengroupware2, http://mail.opengroupware.org/pipermail/users/2003-July/000427.html, http://www.toasterz.com/ogo/docs/run.conf. Выберите любой понравившийся, только проверьте пути.
# wget -v -N http://exchangekiller.com/docs/opengroupware
# cp ./opengroupware /etc/init.d/
# chmod u+x /etc/init.d/opengroupware
# ln -s /etc/init.d/opengroupware/etc/init.d/rc3.d/S20opengroupware
# ln -s /etc/init.d/opengroupware/etc/init.d/rc3.d/K20opengroupware
# ln -s /etc/init.d/opengroupware/etc/init.d/rc5.d/S20opengroupware
# ln -s /etc/init.d/opengroupware/etc/init.d/rc5.d/K20opengroupware
Запускаем.
# /etc/init.d/opengroupware start
Если теперь набрать в строке веб-браузера: http://localhost/OpenGroupware, то получите доступ как администратор со всеми привилегиями без пароля (рис. 2), который тут же надо установить (Preferences –> Edit Password) и создать остальных пользователей. Теперь при входе будет запрашиваться логин и пароль.
Рисунок 2
Тонкая настройка параметров работы сервера OGo может производиться из командной строки при запуске, путем ручного редактирования конфигурационных файлов или при помощи команды Defaults. Для запуска последней выполняем от имени пользователя opengroupware команду:
# source /opt/opengroupware.org/OpenGroupware.org.sh
(если она не занесена в файл ~/.bash_profile). Теперь можно работать, например, для просмотра установленных параметров используется опция read.
# Defaults read
{
Defaults = {};
NSGlobalDomain = {
"skyrix_id" = server.com;
LSAdaptor = PostgreSQL72;
LSAttachmentPath = "/opt/opengroupware.org/documents";
LSConnectionDictionary = {
databaseName = ogo;
hostName = localhost;
password = "qwerty";
port = 5432;
userName = ogo;
};
LSModelName = "OpenGroupware.org_PostgreSQL";
LSNewsImagesPath = "/opt/opengroupware.org/news";
LSNewsImagesUrl = "/ArticleImages";
Languages = (
English
);
NGBundlePath = "/opt/opengroupware.org/Library/OpenGroupware.org";
TimeZoneName = GMT;
XMLReader = libxmlSAXDriver;
};
OpenGroupware = {};
skyaptnotify = {
AptNotifyFromAddress = "sergej@server.com";
AptNotifySkyrixUser = root;
AptNotifySkyrixPassword = khjds5d;
};
}
Параметр write установит указанный ключ, delete удалит значение. Например:
# Defaults write NSGlobalDomain LSConnectionDictionary "{hostName=localhost; userName=ogo; password="12345";
ort=5432; databaseName=ogo}"
# Defaults write NSGlobalDomain NGBundlePath "/opt/opengroupware.org/Library/OpenGroupware.org"
# Defaults write NSGlobalDomain LSAttachmentPath /opt/opengroupware.org/documents
Настройка для работы с LDAP описана в документе «Active Directory Authentication Mini-HOWTO», интеграция с телефонными системами в «Telephony Integration with OGo», которые доступны на сайте.
Средства обеспечения коллективной работы помогают оптимизировать рабочее время сотрудников, позволяя лучше управлять свободным временем, распределять задачи, эффективней использовать информацию. Миру Open Source не хватало готового полноценного продукта. Теперь эта ситуация изменилась. Если почитать отзывы о тестировании OGo годичной давности, то несмотря на сырость программы, отмечалось, что это готовый и, самое главное, своевременный продукт. За последнее время убраны некоторые шероховатости, намечены разработки на будущее, проект оброс документацией, несколькими подпроектами и армией пользователей. Возможно, кто-то предпочтет использовать OpenGroupware.org вместо популярных сегодня платных и отнюдь не дешевых решений.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|