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 [12/11/2010 18:18] dani [Authentification pam] |
tuto:ipasserelle:divers:ejabberd_advanced [12/07/2012 22:53] dani [Options avancées pour Ejabberd] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Options " | ====== Options " | ||
+ | <note warning> | ||
===== HTTP bind et HTTP poll ===== | ===== HTTP bind et HTTP poll ===== | ||
Ligne 59: | 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 172: | Ligne 175: | ||
===== Authentification LDAP ===== | ===== Authentification LDAP ===== | ||
Sur SME8, on peut activer l' | Sur SME8, on peut activer l' | ||
- | <code bash> | + | |
- | mkdir -p / | + | |
- | cat <<' | + | |
- | ===== Authentification pam ===== | + | |
- | Ejabberd supporte l' | + | |
<code bash> | <code bash> | ||
mkdir -p / | mkdir -p / | ||
Ligne 197: | Ligne 196: | ||
HERE | HERE | ||
} | } | ||
+ | EOF | ||
</ | </ | ||
Ligne 204: | Ligne 204: | ||
signal-event ejabberd-update | 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 | ||
+ | |||
+ | |||
+ |