Вход:  Пароль:  
FreeSource: AltLinux/Документация/EjabberdJit ...
Free Source | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация |
Это старая версия AltLinux/Документация/EjabberdJit за 2005-06-28 11:58:06..

Настройка ejabberd + jit в alt linux


Ставим ( apt-get install ) ejabberd.
Находим конфиг /etc/ejabberd/ejabberd.cfg


указываем там ( тут приведен пример):


{acl, admin, {user, “combr” }}.
этот пользователь будет записан в даминистраторы сервера.


{host, “vesna.ru”}.
на этом хосте будет работать jabber-сервер. Ejabberd с версии 0.9 поддерживает виртуальный хостинг, так что хостов может быть много. если нужно поддерживать несколько хостов, используйте опцию hosts.


{language, “ru”}.
язык, на котором будут выдаваться сообщения сервера.


Должны быть открыты порты открыты порты
[{5222, ejabberd_c2s, [{access, c2s},
..... это соединение клиент-сервер, достаточно для организации нешифрованных соединений клиентов и отдельно стоящего сервера.

{5269, ejabberd_s2s_in,
.... соединение сервер-сервер, для общения с клиентами других серверов.

{5280, ejabberd_http,

.... веб-администрирование этого сервера.


попробуйте запустить сервер service ejabberd start, посмотрите в лог /var/log/ejabberd/sasl.log
если там последняя запись – это
=CRASH REPORT====
ищите причину (чуть ниже может быть подсказка)
Если там последнее – это
=PROGRESS REPORT====


То вы успешно его запустили.
теперь можете зайти браузером по адресу host:5280/admin, ввести полный jid администратора (например, combr@vesna.ru) и пароль, и администрировать себе ;)


перед этим надо задать пароль администратора:
Usage: ejabberdctl node command
command:

register user server password register a user

т.е.
ejabberdctl register combr vesna.ru combr
через пробел команда узер хост пароль


далее нередактированное письмо от 
Вадим Илларионов <master@usib.irkps.ru>


Я или кто-нибудь вернитесь к его редактированию позже ;)

============================
1. Не удавалось приконнектиться к веб-морде администрирования.
Оно, вроде, и не очень надо (всё можно сделать из старой доброй командной
строки), однако ж...


Решение


Далее довольно пространно, зато на эту ремарку после только и буду, что 
ссылаться (если не забуду в процессе).
В моей ситуации, когда машинка-маршрутизатор во внутренней сети зовётся
router, а во внешней – хм... никак не зовётся, и привязать сервис надо к 
конкретному имени... В общем, геморроя хватило.
Прежде на рутере имелся ещё и реальный айпишник, к которому было привязано
реальное имя – скажем, usib.irkps.ru (тем более, что так оно и обстояло).
Не так давно я для вящей безопасности да ради облегчения и без того
непосильного админского труда ;) сныкался за аппаратным WAN-маршрутизатором.
Благо, последний умеет прокидывать обращения извне на заданный адрес внутри и 
даже более того: при обращении изнутри на внешний адрес, возвращать
обратившегося «куда надо» (блин, мозги вывихнешь).
Так вот, почти всё дальнейшее повествование будет связано с именем
usib.irkps.ru, если обратное не оговорено особо.
Важно! В конфиге ejabber вместо директивы 'host' пользоваться директивой
'hosts', где в качестве параметров указать оба имени: и внутреннее, и 
внешнее; например:
{hosts, ["router", “usib.irkps.ru”]}
Почему именно так, оставлю до более светлых времён и умов.
После первого запуска сервиса регистрируем в нём себя, любимого (кому ж ещё
доверить роль админа!), причём с указанием домена. В моём случае:
ejabberdctl register owner@usib.irkps.ru usib.irkps.ru <passwd>
Теперь в конфиг сервиса добавим (раскомментарим и поправим имеющуюся) строчку:
{acl, admin, {user, “owner”, “usib.irkps.ru”}}
и перезапустим его.
Всё, можно заходить на http://usib.irkps.ru:5280/admin с логином
owner@usib.irkps.ru и паролем <passwd>. (Гы. А вы подберите. =))


2. При регистрации через JIT вываливалась «Ошибка отправки регистрационных
данных. Причина: XDB troubles»


Решение


Дело в следующем. Как я уже писал, jabber-jit не умеет жить без xdb_file.so,
который принадлежит jabber-1.4. Но жабер-то остановлен! И в противовес ему 
рулит парадом Е-жабер. Значит, надо подсунуть эту библиотечку jit'y, чтоб
выкручивался сам. (Майнтейнеры, ау!) Более того, в доке к е-жаберу есть
рецепт, как это сделать. Просто переточим его под Альт, и добавим
в /etc/jabber/jabber-jit.xml подправленную «подкоренную» секцию из примера
(«корневее» только <jabber>):
<!--
Some Jabber server implementations do not provide XDB services
(for example jabberd 2.0 and ejabberd).
xdb_file_so is loaded in to handle all XDB requests.
  • ->
  • <xdb id="xdb">
    <host/>
    <load>
    <!-- Майнтейнеры, ау 2 раза!! >
    <xdb_file>/usr/lib/jabber/xdb_file/xdb_file.so</xdb_file>

    </load>
    <xdb_file xmlns="jabber:config:xdb_file">

    <! ...3 раза!!! Каталог /var/lib/jabber не принадлежит jabber-jit! -->
    <spool><jabberd:cmdline

    flag='s'>/var/lib/jabber</jabberd:cmdline></spool>

    </xdb_file>
    </xdb>

    # Лирическое отступление.
    Почему подправлена секция <xdb_file>, можно увидеть тривиальным пролистыванием
    файловой системы. А вот о секции <spool> – в сути №...
    # Кранты лирическому отступлению.


    ...3. Попытка импорта экаунтов из jabber-1.4 (хоть поюзерно, хоть каталогом)
    обламывалась хоть и многословно, но всегда со словечком “eacces” (да-да, не 
    опечатка).


    Решение


    Всё просто. ejabberdctl import-something запускается от юзера ejabberd, тогда
    как права на /var/lib/jabber/<hostname>/* принадлежат юзеру.группе
    jabber.jabber с маской 700 на каталоги (начиная с /var/lib/jabber) и 600 на 
    файлы. То есть, довольно НА МОМЕНТ ИМПОРТА отдать права ПРОЧИМ на 
    чтение-исполнение, и – вуаля! По запросу:
    ejabberdctl import-file /var/lib/jabber/<hostname>/<user>.xml
    или вообще:
    ejabberdctl import-dir /var/lib/jabber/<hostname>
    из объектива вылетает кролик!
    Важно не забыть ПОТОМ вернуть допуски к файлам-каталогам в прежнее состояние,
    потому что...
    ... Вот и добрались до спула. Как я уже подмечал, JIT живёт без жабера, но как
    юзал спул жабера под жабером, так и будет юзать спул _жабера_ под Е-жабером
    (майнтейнеры, фиг ли). И если локальные клиенты имели регистрацию в аське,
    самым безболезненным вариантом станет не новая их регистрация в пресловутом,
    но достойном сервисе, а прозрачный своею незаметностию для означенных юзверей
    переход на новый, хоть и чуть более прогрессивный... Ой, наплёл-наплёл!
    Простите пиво, а?
    Надеюсь, теперь понятно, почему важные на мой затуманенный взгляд моменты
    касательно жабер-спула были выделены КАПСЛОКОМ.


    Если вы меня поняли, вашим юзерам не придётся перерегистрироваться в аське.
    Если нет – придётся не только ЭТО, но и после новой регистрации, для того,
    чтоб респонденты выглядели зеленовато при коннекте, не останется ничего
    иного, как по новой просить у каждого респондента авторизации (эту проблему я 
    не описывал в запросе, однако ж сам в неё упёрся – после решения первых
    трёх).


    Постскриптум

    Ремарка (вспомнил, ура!) на пункт 1. Если ваши юзера помимо жабер-сервиса,
    которого вполне хватает для внутреннего сообщения, юзают ещё и внешнюю аську
    (тогда почему бы не позволить им пользовать собственные жабер-экаунты
    наружу?), не отстраивайте icq-транспорт на имена icq.localhost и 
    sms.localhost.
    Почему? Да хз. Каким-то образом jabber-1.4 с этим вариантом живёт себе, и в ус 
    не дует, а Е-жабер отчего-то не уживается. Е-жаберу какого-то чёрта вынь да 
    положь транспорты с расширением в виде FQDN.


    Впрочем, не настаиваю на собственной правоте. Если кому удастся их сдружить
    таким макаром, буду рад всяческим комментариям.



     
    Файлов нет. [Показать файлы/форму]
    Комментариев нет. [Показать комментарии/форму]