Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
tuto:ipasserelle:divers:ejabberd_advanced [18/06/2010 00:14] dani |
tuto:ipasserelle:divers:ejabberd_advanced [08/06/2011 18:51] dani [Options avancées pour Ejabberd] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Options " | ||
+ | |||
+ | FIXME cette page est obsolète pour ceux qui utilise le paquet **ipasserelle-im** | ||
+ | ===== HTTP bind et HTTP poll ===== | ||
+ | |||
+ | |||
Ejabberd supporte les méthodes HTTP Bind et HTTP Poll (souvent utilisé par les clients web). Pour l' | Ejabberd supporte les méthodes HTTP Bind et HTTP Poll (souvent utilisé par les clients web). Pour l' | ||
Ligne 53: | Ligne 59: | ||
{mod_muc_log, | {mod_muc_log, | ||
{mod_shared_roster, | {mod_shared_roster, | ||
- | {mod_pubsub, | + | {mod_pubsub, |
+ | | ||
+ | {plugins, [" | ||
+ | | ||
{mod_time, | {mod_time, | ||
{mod_last, | {mod_last, | ||
% {mod_xmlrpc, | % {mod_xmlrpc, | ||
{mod_version, | {mod_version, | ||
- | {mod_ctlextra, []}, | + | {mod_admin_extra, []}, |
HERE | HERE | ||
$OUT .= ' | $OUT .= ' | ||
Ligne 82: | Ligne 91: | ||
# ProxyPass requests for /xmpp-admin to ejabberd web_admin interface | # ProxyPass requests for /xmpp-admin to ejabberd web_admin interface | ||
- | ProxyPass / | + | ProxyPass / |
- | ProxyPassReverse / | + | ProxyPassReverse / |
< | < | ||
Ligne 100: | Ligne 109: | ||
# ProxyPass requests for /http-bind to ejabberd http-bind interface | # ProxyPass requests for /http-bind to ejabberd http-bind interface | ||
- | ProxyPass /http-bind/ http:// | + | ProxyPass /http-bind/ http:// |
- | ProxyPassReverse /http-bind/ http:// | + | ProxyPassReverse /http-bind/ http:// |
< | < | ||
Ligne 115: | Ligne 124: | ||
# ProxyPass requests for /http-poll to ejabberd http-poll interface | # ProxyPass requests for /http-poll to ejabberd http-poll interface | ||
- | ProxyPass /http-poll/ http:// | + | ProxyPass /http-poll/ http:// |
- | ProxyPassReverse /http-poll/ http:// | + | ProxyPassReverse /http-poll/ http:// |
Ligne 142: | Ligne 151: | ||
sv t / | sv t / | ||
signal-event ejabberd-update | signal-event ejabberd-update | ||
+ | </ | ||
+ | |||
+ | ===== Authentification pam ===== | ||
+ | Ejabberd supporte l' | ||
+ | <code bash> | ||
+ | mkdir -p / | ||
+ | cat <<' | ||
+ | { | ||
+ | $OUT =<<' | ||
+ | % Authentication method. | ||
+ | % this line: | ||
+ | {auth_method, | ||
+ | HERE | ||
+ | } | ||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | Suivit d'un petit | ||
+ | <code bash> | ||
signal-event ejabberd-update | signal-event ejabberd-update | ||
</ | </ | ||
+ | |||
+ | ===== Authentification LDAP ===== | ||
+ | Sur SME8, on peut activer l' | ||
+ | |||
+ | <code bash> | ||
+ | mkdir -p / | ||
+ | cat <<' | ||
+ | { | ||
+ | |||
+ | use esmith:: | ||
+ | |||
+ | our $base = esmith:: | ||
+ | |||
+ | $OUT =<<" | ||
+ | % LDAP Auth | ||
+ | {auth_method, | ||
+ | |||
+ | % LDAP conf | ||
+ | {ldap_servers, | ||
+ | {ldap_base, " | ||
+ | |||
+ | |||
+ | HERE | ||
+ | } | ||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | Puis: | ||
+ | |||
+ | <code bash> | ||
+ | signal-event ejabberd-update | ||
+ | </ | ||
+ | |||
+ | ===== Configurer mod_vcard_ldap ===== | ||
+ | Allons-y gaiment, on a un serveur LDAP maintenant, on peut donc configurer le module mod_vcard_ldap, | ||
+ | , il suffit d' | ||
+ | < | ||
+ | {mod_vcard, | ||
+ | </ | ||
+ | Par: | ||
+ | < | ||
+ | {mod_vcard_ldap, | ||
+ | [ | ||
+ | {ldap_base, " | ||
+ | {ldap_filter, | ||
+ | {ldap_vcard_map, | ||
+ | %% vcard patterns | ||
+ | | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | ]}, | ||
+ | %% Search form | ||
+ | {ldap_search_fields, | ||
+ | | ||
+ | {" | ||
+ | {" | ||
+ | {" | ||
+ | %% vCard fields to be reported | ||
+ | %% Note that JID is always returned with search results | ||
+ | {ldap_search_reported, | ||
+ | | ||
+ | {" | ||
+ | ]}, | ||
+ | </ | ||
+ | |||
+ | ===== Configurer mod_shared_roster_ldap ===== | ||
+ | |||
+ | FIXME: configuration de mod_shared_roster_ldap à revoir. Semble poser des problèmes de groupes | ||
+ | |||
+ | mod_shared_roster_ldap permet de créer automatiquement un roster pour les nouveaux utilisateurs, | ||
+ | |||
+ | < | ||
+ | {mod_shared_roster_ldap, | ||
+ | {ldap_base, " | ||
+ | {ldap_rfilter, | ||
+ | {ldap_groupattr, | ||
+ | {ldap_groupdesc, | ||
+ | {ldap_memberattr, | ||
+ | {ldap_useruid, | ||
+ | {ldap_userdesc, | ||
+ | ]}, | ||
+ | </ | ||
+ | |||
+ | Si on veut limiter à un nombre précis de groupe, il suffit de l' | ||
+ | < | ||
+ | {mod_shared_roster_ldap, | ||
+ | {ldap_base, " | ||
+ | {ldap_rfilter, | ||
+ | {ldap_gfilter, | ||
+ | {ldap_groupattr, | ||
+ | {ldap_groupdesc, | ||
+ | {ldap_memberattr, | ||
+ | {ldap_useruid, | ||
+ | {ldap_userdesc, | ||
+ | ]}, | ||
+ | </ | ||
+ | |||
+ | Seuls les groupes **techniciens**, | ||
+ | |||
+ | ===== Configurer mod_archive ===== | ||
+ | On va utiliser pour ceci le module mod_archive_odbc (voir http:// | ||
+ | Pour cela, on va devoir installer des modules supplémentaires pour ejabberd: | ||
+ | |||
+ | <code bash> | ||
+ | yum --enablerepo=fws install ejabberd-modules | ||
+ | </ | ||
+ | |||
+ | Puis, il faut créer une base de donnée mysql et y ajouter le schéma nécessaire. Il faut également modifier mysql pour qu'il écoute sur un socket réseau, et activer InnoDB | ||
+ | <code bash> | ||
+ | db configuration setprop mysqld LocalNetworkingOnly no InnoDB enabled | ||
+ | expand-template /etc/my.cnf | ||
+ | sv t / | ||
+ | openssl rand -base64 40 > ejabberd.pw | ||
+ | chmod 600 ejabberd.pw | ||
+ | PW=$(cat ./ | ||
+ | db configuration setprop ejabberd DbName ejabberd DbUser ejabberd DbPassword $PW | ||
+ | mysql -e " | ||
+ | mysql -e "grant all privileges on ejabberd.* to ' | ||
+ | mysql -e "flush privileges" | ||
+ | mysql ejabberd < / | ||
+ | </ | ||
+ | |||
+ | Puis, on rajoute la configuration nécessaire dans le fichier ejabberd.cfg: | ||
+ | |||
+ | * Dans la section modules | ||
+ | < | ||
+ | {mod_archive_odbc, | ||
+ | {default_auto_save, | ||
+ | {enforce_default_auto_save, | ||
+ | {default_expire, | ||
+ | {enforce_min_expire, | ||
+ | {enforce_max_expire, | ||
+ | {replication_expire, | ||
+ | {session_duration, | ||
+ | {wipeout_interval, | ||
+ | </ | ||
+ | |||
+ | * Au niveau global (format templates SME) | ||
+ | < | ||
+ | cat <<EOF > / | ||
+ | |||
+ | % mysql database access | ||
+ | \{odbc_server, | ||
+ | |||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | ===== Utiliser MySQL comme backend (à la place de mnesia) ===== | ||
+ | La base de donnée par défaut utilisée par ejabberd est mnesia. MySQL a quelques avantages, en terme de performances, | ||
+ | |||
+ | ==== Créer la base de donnée ==== | ||
+ | Si ce n'est pas déjà fait, il faut créer la base de donnée (voir section mod_archive) | ||
+ | |||
+ | ==== Import du schéma dans la base ==== | ||
+ | On va maintenant insérer le schéma mysql dans la base: | ||
+ | <code bash> | ||
+ | mysql ejabberd < / | ||
+ | </ | ||
+ | |||
+ | ==== Migrer les données depuis la base mnesia ==== | ||
+ | Si le serveur ejabberd a déjà utilisé (pas une nouvelle installation), | ||
+ | |||
+ | <code bash> | ||
+ | mkdir /tmp/mnesia | ||
+ | chown root: | ||
+ | chmod 770 /tmp/mnesia | ||
+ | ejabberdctl export2odbc $(db configuration get DomainName) /tmp/mnesia | ||
+ | for FILE in / | ||
+ | mysql ejabberd < $FILE | ||
+ | done | ||
+ | </ | ||
+ | ==== Configurer ejabberd ==== | ||
+ | |||
+ | Il ne reste qu'à remplacer les modules suivants par leur équivalent, | ||
+ | |||
+ | * mod_archive_odbc | ||
+ | * mod_last_odbc | ||
+ | * mod_offline_odbc | ||
+ | * mod_privacy_odbc | ||
+ | * mod_private_odbc | ||
+ | * mod_pubsub_odbc (semble avoir des problème pour l' | ||
+ | * mod_roster_odbc | ||
+ | * mod_vcard_odbc | ||
+ | |||
+ | |||
+ |