Показаны сообщения с ярлыком jabber. Показать все сообщения
Показаны сообщения с ярлыком jabber. Показать все сообщения

28 мар. 2012 г.

openfire + openjdk

Один раз сделал, забыл. Чтобы в третий раз снова не искать решение, оставлю здесь.
Openfire из коробки не умеет работать с openjdk (который сейчас по умолчанию в дебианах-убунтах ввиду смены лицензионной политики относительно jre товарищей из Oracle). Для того, чтобы научить jabber-сервер запускаться в среде openjdk, меняем в /etc/init.d/openfire вот это:

if [ -z $JAVA_HOME ]
then
        t=/usr/lib/jvm/java-1.5.0-sun && test -d $t && JAVA_HOME=$t
        t=/usr/lib/jvm/java-6-sun && test -d $t && JAVA_HOME=$t
fi
на это:
 if [ -z $JAVA_HOME ]
then
        t=/usr/lib/jvm/java-1.5.0-sun && test -d $t && JAVA_HOME=$t
        t=/usr/lib/jvm/java-6-sun && test -d $t && JAVA_HOME=$t
        t=/usr/lib/jvm/java-6-openjdk && test -d $t && JAVA_HOME=$t
fi
Всё.

7 мар. 2010 г.

Jabber showbattle

Да, и раз уж тема зашла о Jabber'е и его околотках, положу на страничку с хабра ссылочку. Если кратенько - снежки в жаббере. Если подробненько - по ссылочке ;)

приход в juick

Дело было вечером, делать быть нечего. Точнее, ничего делать не хотелось ;) Так или иначе, итогом сего времяпрепровождения явилось - http://juick.com/delayer/. До сих пор не понимаю животворящей идеи микроблоггинга, однако в этом конкретном случае, думаю, можно попробовать использовать сей сервис как рупор к Всемогущему ALL. Вследствие отсутствия регистрации и дополнительного софта (кроме уже имеющегося J-клиента) точка входа падает до минимума ;)

29 июн. 2008 г.

Openfire + PostgreSQL HOW-TO. Установка и запуск.

Итак, сегодня мы установим и запустим open-source Jabber-сервер Openfire от разработчиков из Ignite Realtime. Что такое Jabber, с чем его идят и как подают к столу, в инете информации килолитры, поэтому сей вопрос оставим за рамки, тем более что человек, собравшийся развернуть на подконтрольном ему сервере openfire, думаю, в курсе, что это такое. =)
Со странички проекта нам потребуется сам дистрибутив. Выбираем и качаем. Так как jabber будет работать под управлением Debian 4.0 Etch, то я скачал .deb-пакет, однако представлены также сборки для rpm-based дистрибутивов, пакет для Solaris и, конечно же, тарбол с исходными кодами.
Для работы openfire необходима java-машина, 5 или 6 версии. О ее закачке и установке стоит озаботиться отдельно.
apt-get install sun-java6-jre
dpkg -i openfire_3.5.1_all.deb
Сервер установлен и готов принимать соединения. Вся работа с системой проводится исключительно через web-интерфейс софтины. В конфиги конечно можно попробовать залезть, но они для этого не предназначы абсюлютно (Там вообще страшно, если честно). Да и надобности имхо особой в этом нет. Да, также нам следует установить какую либо СУБД, дабы openfire мог вести свою базу. MySQL, PostgreSQL, MSSQL.... все что вашей душе угодно, со всем этим опенфайр может работать. Так как на сервере уже крутился постгрес версии 7.4, мой выбор был очевиден. Прежде чем создать базу и начать работу, следует убедиться, что в /etc/postgresql/7.4/main/postgresql.conf выставлен параметр tcpip_socket = true, иначе будете долго думать, почему все работает, но ничего не коннектится =). В восьмерке такого косяка не обнаружено, все работает сразу после инсталляции.
Создаем базу...
su - postgres #работаем от имени postgres
createuser -U postgres -dAP openfire_user #узер создает базы (-d), но не создает пользователей (-A), при создании запрашивается пароль (-P)
createdb -E UTF-8 openfiredb #создаем базу в кодировке (-E) UTF-8
su - postgres
psql openfiredb
openfiredb=# grant all privileges on database openfiredb to "openfire_user"; #даем нашему пользователю все привилегии в рамках openfiredb базы
База создана и ждет к ней подключения =). Открываем любимый браузер и топаем на http://localhost:9090. В случае, если сервер не имеет графического интерфейса, несложно пробросить порт с помоью ssh на свою рабочую машинку. У вас же *nix, не правда ли? ;)
ssh -L 19090:localhost:9090 user@server
Поясню работу этого проброса: все обращения на localhost:19090 перенаправляются через ssh на удаленный localhost:9090. Ответные пакеты, соотвественно, идут обратным путем. То бишь, введя у себя на машине http://localhost:19090, мы получим то же самое, если бы сидели на сервере и там ввели http://localhost:9090. Подробности - man ssh.
Первоначальная настройка openfire проста и интуитивно понятна. Нам требуется выбрать используемую базу данных. прописать ее параметры, выбрать способ обращения к ней, вбить мыло и пароль пользователя Admin... и по сути все. После нажатия последнего ОК севре перезапустится, и по адресу http://localhost:19090 мы уже увидим приглашение входа в Админку. Что можно сделать там, куда пойти и куда податься в первый заход, в следующий раз =) ( хотя все там просто и понятно, даром что не по-русски, так что можно потыкаться и самостоятельно - убить сервер все арвно не получится =) ) А так, сервер полностью готов к принятию соединений и обслуживанию пользователей, которых, правда, пока нет. Однако, по умолчанию, настройки openfire разрешают самостоятельную регистрацию пользователей с помощью их клиентов, это стоит иметь в виду.
А сейчас отметим возможные проблемы при пути до этого момента, до открытия входа в админку, а также пару интересных моментов...
Ну, во-первых, как я уже упомянул выше, когда мы разбирали работу с БД, если при корректно введенных данных (адрес, порт сервера, где крутится бд, имя базы, имя и пароль пользователя, который имеет полные права на эту базу, драйвер для работы с базой), выдаются ошибки соединения, стоит убедиться, что СУБД слушает внешние tcp-соединения - netstat - an вам в помощь.
Если при первом этапе графической настройки вместо подтвеждения всех ваших изменений и сообщения об успешности установки выдается лог ошибки браузера вида

INTERNAL_SERVER_ERROR
RequestURI=/setup/setup-finished.jsp
Caused by:
java.lang.NullPointerException
и куча всякого java-мусора, то следует обновить java-машину до более новой версии (у меня например, стояла пятая, пришлось обновиться до шестой. С ней проблема исчезла).

update jiveUser set plainPassword='123456', encryptedPassword = null where username ='admin';
И еще один интересный момент. Бывает, что пароль админа как-то сам по себе забыается ). В случае с openfire это не означает неизбежное убивание базы данных и пересоздание оной ( что влечет за собой, к тому же, переустановку самой софтины). Работа сервера с БД построена так, что введенный первоначально пароль админа (на этапе начального кофигурирования), да и пароли пользователей тоже, хранится в базе в PlainText-виде. Нужно лишь зайти любым удобным средством в БД и подсмотреть. если же вы сменили пароль, как и полагается после первого входа, то это автоматически шифрует его и впредь пароль хранися уже в поле Encrypted, в виде хеша. Соотвественно в таком случае, для получения доступа к админке следует сначала удалить все что есть в поле, где хранится хеш пароля, а потом что нить написать в Plaintext поле таблицы. Например, такЭто и будет паролем. Об этой особенности следует знать даже в случае отличной памяти. Ибо, очевидно, доступ к базе данных - автоматически дает нам неограниченный доступ к самому серверу. От версии к версии номера полей могут меняться, например раньше было password, теперь plainpassword, так что если команда не проходит, можно сориентироваться на месте, ибо имя таблицы - jiveUser не меняется.

17 апр. 2008 г.

Google Apps +GTalk + Jabber HOWTO

Потихоньку продолжаем осваиваться в вотчине http://delayer.org, точнее, в его админской части. С чего все началось, можно осведомиться тут и тут. За $10, которые я заплатил за регистрацию непосредственно домена в enom, в нагрузку мне был "даден" базовый пакет Google Apps, или Служб Гугла в отечественном переводе. В принципе, если доплатить ;), то можно и более продвинутые пакеты получить, с большими возможностями и техподдержкой, но это уже совсем другая история. Базовый же пакет предоставляет, напомню, следующее - почту в домене @delayer.org со всем Gmail'овскими приблудами (до ста аккаунтов), включая 6 Gb места; так называемая Стартовая страница, то есть "корпоративный аналог igoogle; сервис Pages - онлайн создание веб-страниц того или иного наполнения (гугломастер прилагается )); Google Calendar, GoogleTalk и GoogleDocs до кучи. Сегодня остановимся на GoogleTalk'e.
Кто не в курсе, гугл предлагает каждому имеющему учетную запись @gmail.com собственную разработку IM с возможностью телефонии - GoogleTalk, причем его IM-составляющая реализована на открытом протоколе XMPP, то есть любой клиент, знающий что такое Jabber, с легкостью может прицепиться к аккаунту Talk'a. При условии, что фирменный клиент существует только для масдая Windows, сие есть вери гут.
Однако не все так радужно. Аккаунт @gmail.com - это полностью работоспособный jabberID, разве что многие гейты в другие IM сети с крупных Jabber-серверов заблокированы, то есть прилинковать их не получится. Аккаунт же доменный, то бишь @delayer.org в моем случае, видит лишь все учетки внутри домена (более того, они автоматически добавляются в адресную книгу ящика и контакт-лист IM-пейджера при создании администратором), а также можно общаться с другими пользователями Служб Google. И только. Да и то, настройками службы чата можно запретить и это, оставив лишь внутридоменное взаимодействие. Чтобы сотрудники секреты корпоративные не слили ;). Но мне оно это не надо... Однако даже с поставленными разрешающими галками Service Discovery, запущенный в Psi, не выдает ничего, то есть связи с тем же jabber.org попросту нет.
Но тем не менее это прекрасно лечится, ибо есть такая штука, как федерация сети. В справочном центре читаем:
Если требуется предоставить пользователям возможность обмена мгновенными сообщениями с людьми, подключенными к сети Google Talk через объединенные в федерацию сети, то необходимо изменить записи служб (SRV).
Так как все мое хозяйство целиком и полностью находится в ведении гугла, то и правку DNS служб нужно делать через него.
Доменным регистратором, как я говорил выше, является Enom, он и предоставляет web-морду для работу с доменом и прилегающими сервисами. Попасть туда можно через админку Служб гугла для домена: Настройки домена - доменные имена - Дополнительные настройки DNS - Войдите в консоль DNS. При этом выдается логин (поле Территория) и одноразовый пасс. Попав в админку, следует ввести следующие SRV записи:

_xmpp-server._tcp.gmail.com. SRV 5 0 5269 xmpp-server.l.google.com.
_xmpp-server._tcp.gmail.com. SRV 20 0 5269 xmpp-server1.l.google.com.
_xmpp-server._tcp.gmail.com. SRV 20 0 5269 xmpp-server2.l.google.com.
_xmpp-server._tcp.gmail.com. SRV 20 0 5269 xmpp-server3.l.google.com.
_xmpp-server._tcp.gmail.com. SRV 20 0 5269 xmpp-server4.l.google.com.
_jabber._tcp.gmail.com. SRV 5 0 5269 xmpp-server.l.google.com.
_jabber._tcp.gmail.com. SRV 20 0 5269 xmpp-server1.l.google.com.
_jabber._tcp.gmail.com. SRV 20 0 5269 xmpp-server2.l.google.com.
_jabber._tcp.gmail.com. SRV 20 0 5269 xmpp-server3.l.google.com.
_jabber._tcp.gmail.com. SRV 20 0 5269 xmpp-server4.l.google.com.
_xmpp-client._tcp.gmail.com. SRV 5 0 5222 talk.l.google.com.
_xmpp-client._tcp.gmail.com. SRV 20 0 5222 talk1.l.google.com.
_xmpp-client._tcp.gmail.com. SRV 20 0 5222 talk2.l.google.com.
_xmpp-client._tcp.gmail.com. SRV 20 0 5222 talk3.l.google.com.
_xmpp-client._tcp.gmail.com. SRV 20 0 5222 talk4.l.google.com.
Ужас, правда? =)
Однако в enom'e народ не дурной, поэтому вебморда там умная и все упрощено донельзя. Вот как оно все вводится:
Сохраняем, выходим, проверяем... Настройки Psi в плане соединения должны выглядеть следующим образом:
И все, теперь JID delayer@delayer.org по функционалу ничем не отличается от @gmail.com, пишите ;)
В подготовке статьи использованы следующие материалы: первый, второй, и еще один.