Difference between revisions of "J2J:AdminGuide"

From JaWiki (Jabber/XMPP wiki)
Jump to: navigation, search
m (Reverted edits by 72.52.116.229 (talk) to last revision by Binary)
 
(14 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
{{eng}}
 
{{eng}}
Руководство по установке и администрированию [[gateway|транспорта]] [[J2J|J2J (Jabber-to-Jabber)]].
+
Руководство по установке и администрированию [[gateway|транспорта]] [[J2J|J2J (Jabber-to-Jabber)]].
 +
 
 +
Руководство пользователя находится на [[J2J|следующей странице]].
  
 
== Установка и настройка ==
 
== Установка и настройка ==
Line 8: Line 10:
 
Для работы J2J необходимо:
 
Для работы J2J необходимо:
 
* [[Python]] >=2.3
 
* [[Python]] >=2.3
* [http://www.postgresql.org/ PostgreSQL] >=7.4.7
+
* [http://www.postgresql.org/ PostgreSQL] >=8.2
 
* [http://www.pygresql.org/ PyGreSQL] >=3.8
 
* [http://www.pygresql.org/ PyGreSQL] >=3.8
* [[Twisted]] >=2.4.0
+
* [[Twisted]] >=10.2.0 (необходимо наложить патч http://twistedmatrix.com/trac/attachment/ticket/4771/twisted-ticket-4771.patch)
 +
* [http://pyopenssl.sourceforge.net/ PyOpenSSL] >=0.6
 
* Любой Jabber-[[server]] (например, [[ejabberd]] или [[Openfire]]), поддерживающий:
 
* Любой Jabber-[[server]] (например, [[ejabberd]] или [[Openfire]]), поддерживающий:
 
** {{xep|0114|Jabber Component Protocol}}
 
** {{xep|0114|Jabber Component Protocol}}
Line 19: Line 22:
 
Необходимо получить исходный код транспорта. Это можно сделать, пройдя по [http://jrudevels.org/index.php?pg=downloads.php&dir=J2J ссылке], либо с помощью [http://subversion.tigris.org/ SVN]:
 
Необходимо получить исходный код транспорта. Это можно сделать, пройдя по [http://jrudevels.org/index.php?pg=downloads.php&dir=J2J ссылке], либо с помощью [http://subversion.tigris.org/ SVN]:
  
  <nowiki>svn co https://svn.jrudevels.org/j2j/trunk j2j/</nowiki>
+
  <nowiki>svn co svn://svn.jrudevels.org/j2j/trunk j2j/</nowiki>
  
 
=== Настройка базы данных ===
 
=== Настройка базы данных ===
Line 37: Line 40:
 
  psql -U j2j j2j
 
  psql -U j2j j2j
 
  \i pgsql.schema
 
  \i pgsql.schema
 +
 +
=== Настройка Jabber-сервера ===
 +
 +
==== ejabberd ====
 +
Вся настройка сводится к добавлению строки вида:
 +
 +
{8888, ejabberd_service, [
 +
                        {ip, {127, 0, 0, 1}},
 +
                        {access, all},
 +
                        {shaper_rule, fast},
 +
                        {host, "j2j.server.com",
 +
                        [{password, "secret"}]}
 +
                        ]}
 +
 +
В секцию listen файла ejabberd.cfg.
 +
Обратите внимание, при указании JID транспорта используется ключевое слово host, а не hosts.
 +
Замените JID и пароль на свои.
  
 
=== Настройка компонента ===
 
=== Настройка компонента ===
  
Необходимо получить конфигурационный файл для компонента с именем config.py. Для этого скопируем пример такого файла и отредактируем его:
+
Необходимо получить конфигурационный файл для компонента. По умолчанию, пути поиска для конфигурационного файла - ./j2j.conf, ~/.j2j/j2j.conf, /etc/j2j/j2j.conf. Для этого скопируем пример такого файла и отредактируем его:
  cp config.py.example config.py
+
  cp j2j.conf.example j2j.conf
  nano -w config.py
+
  nano -w j2j.conf
  
 
Параметры:
 
Параметры:
* JID - JID компоненты. Например,  
+
* Секция component:
 +
** JID - JID компоненты. Например,  
 
  JID=u"j2j.server.com"
 
  JID=u"j2j.server.com"
* HOST - IP или доменное имя сервера, к которому необходимо присоединить компонент. Например,
+
** Host - IP или доменное имя сервера, к которому необходимо присоединить компонент. Например,
  HOST="127.0.0.1"
+
  Host="127.0.0.1"
* PORT - порт на сервере, к которому необходимо подключаться. Должен совпадать с аналогичным, прописанным в конфигурации Вашего Jabber-[[server|сервера]].
+
** Port - порт на сервере, к которому необходимо подключаться. Должен совпадать с аналогичным, прописанным в конфигурации Вашего Jabber-[[server|сервера]].
* DB_HOST - IP или доменное имя сервера БД.
+
** Password - пароль на сервере, к которому необходимо подключаться. Должен совпадать с аналогичным, прописанным в конфигурации Вашего Jabber-[[server|сервера]].
* DB_USER - имя пользователя БД (в нашем примере - j2j)
+
* Секция database:
* DB_NAME - имя базы данных (в нашем примере - j2j)
+
** Host - IP или доменное имя сервера БД, оставьте пустым для использования UNIX-сокета Postgres
* DB_PASS - пароль от БД для данного пользователя БД.
+
** Type - тип используемой СУБД - postgres или mysql
* DB_PREFIX - в общем случае остается без изменений.
+
** User - имя пользователя БД (в нашем примере - j2j)
* ADMINS - список [[JID]]ов, на которые будут приходить уведомления о новых регистрациях. Пример:
+
** Name - имя базы данных (в нашем примере - j2j)
  ADMINS=[u"vasya@server.ru",u"zhenya@server.com"]
+
** Password - пароль от БД для данного пользователя БД.
 +
** Prefix - в общем случае остается без изменений. Его требуется изменять, если запускается одновременно несколько копий транспорта.
 +
* Секция admins
 +
** List - список [[JID]]ов, на которые будут приходить уведомления о новых регистрациях. Пример:
 +
  List=vasya@server.ru,zhenya@server.com
 +
* Секция debug
 +
** logfile - путь к лог-файлу
 +
** registrations - помещать ли в лог-файл сообщения, связанные с регистрацией пользователей на сервисе
 +
** logins - помещать ли в лог-файл сообщения, связанные с входом-выходом пользователей
 +
 
 +
** xml_logging - путь к xml-логу
 +
** component_xml - помещать ли в xml-лог данные от сервиса
 +
** clients_xml - помещать ли в xml-лог данные по клиентам
 +
** clients_jids_to_log - список JIDов, станзы которых помещать в xml-лог или All, если помещать все.
 +
 
 +
Конфигурационный файл должен быть в кодировке UTF-8.
  
 
=== Запуск ===
 
=== Запуск ===
Line 62: Line 98:
 
Теперь все готово к запуску:
 
Теперь все готово к запуску:
 
  python main.py
 
  python main.py
 +
 +
== Параметры командной строки ==
 +
Запустите транспорт с ключом --help для получения справки по параметрам командной строки.
  
 
== Администрирование транспорта ==
 
== Администрирование транспорта ==

Latest revision as of 07:56, 18 January 2015

Руководство по установке и администрированию транспорта J2J (Jabber-to-Jabber).

Руководство пользователя находится на следующей странице.

Установка и настройка[edit]

Зависимости[edit]

Для работы J2J необходимо:

Загрузка исходного кода[edit]

Необходимо получить исходный код транспорта. Это можно сделать, пройдя по ссылке, либо с помощью SVN:

svn co svn://svn.jrudevels.org/j2j/trunk j2j/

Настройка базы данных[edit]

Необходимо настроить базу данных (БД) на работу с J2J-компонентом:

Создаем пользователя:

createuser -P j2j

Ключ -P означает, что пользователь создается с указанием пароля. Запомните его, он понадобится для дальнейшей настройки.

Создадим базу данных:

createdb j2j

Импортируем структуру БД:

psql -U j2j j2j
\i pgsql.schema

Настройка Jabber-сервера[edit]

ejabberd[edit]

Вся настройка сводится к добавлению строки вида:

{8888, ejabberd_service, [
                       {ip, {127, 0, 0, 1}},
                       {access, all},
                       {shaper_rule, fast},
                       {host, "j2j.server.com",
                       [{password, "secret"}]}
                       ]}

В секцию listen файла ejabberd.cfg. Обратите внимание, при указании JID транспорта используется ключевое слово host, а не hosts. Замените JID и пароль на свои.

Настройка компонента[edit]

Необходимо получить конфигурационный файл для компонента. По умолчанию, пути поиска для конфигурационного файла - ./j2j.conf, ~/.j2j/j2j.conf, /etc/j2j/j2j.conf. Для этого скопируем пример такого файла и отредактируем его:

cp j2j.conf.example j2j.conf
nano -w j2j.conf

Параметры:

  • Секция component:
    • JID - JID компоненты. Например,
JID=u"j2j.server.com"
    • Host - IP или доменное имя сервера, к которому необходимо присоединить компонент. Например,
Host="127.0.0.1"
    • Port - порт на сервере, к которому необходимо подключаться. Должен совпадать с аналогичным, прописанным в конфигурации Вашего Jabber-сервера.
    • Password - пароль на сервере, к которому необходимо подключаться. Должен совпадать с аналогичным, прописанным в конфигурации Вашего Jabber-сервера.
  • Секция database:
    • Host - IP или доменное имя сервера БД, оставьте пустым для использования UNIX-сокета Postgres
    • Type - тип используемой СУБД - postgres или mysql
    • User - имя пользователя БД (в нашем примере - j2j)
    • Name - имя базы данных (в нашем примере - j2j)
    • Password - пароль от БД для данного пользователя БД.
    • Prefix - в общем случае остается без изменений. Его требуется изменять, если запускается одновременно несколько копий транспорта.
  • Секция admins
    • List - список JIDов, на которые будут приходить уведомления о новых регистрациях. Пример:
List=vasya@server.ru,zhenya@server.com
  • Секция debug
    • logfile - путь к лог-файлу
    • registrations - помещать ли в лог-файл сообщения, связанные с регистрацией пользователей на сервисе
    • logins - помещать ли в лог-файл сообщения, связанные с входом-выходом пользователей
    • xml_logging - путь к xml-логу
    • component_xml - помещать ли в xml-лог данные от сервиса
    • clients_xml - помещать ли в xml-лог данные по клиентам
    • clients_jids_to_log - список JIDов, станзы которых помещать в xml-лог или All, если помещать все.

Конфигурационный файл должен быть в кодировке UTF-8.

Запуск[edit]

Теперь все готово к запуску:

python main.py

Параметры командной строки[edit]

Запустите транспорт с ключом --help для получения справки по параметрам командной строки.

Администрирование транспорта[edit]

ToDo: Информация пока отсутствует