Serveur Jabber sur Eolebase
Jabber, également connu sous le nom de XMPP, est un ensemble de protocoles standards ouverts de l'IETF de messagerie instantanée et de présence, et plus généralement une architecture décentralisée d'échange de données.
Jabber est également un système de collaboration en quasi-temps-réel et d'échange multimédia via Jingle, dont la VoIP (téléphonie sur Internet), la visioconférence et l'échange de fichiers sont des exemples d'applications.
Dans la procédure suivante l'installation se fait sur un serveur Eolebase déjà instancié. Le choix est fait de se connecter à un annuaire LDAP distant (celui d'un serveur Scribe).
Installation du service Jabber
Le service ejabberd n'est pas pré-installé sur Eolebase mais il est pré-packagé en tant que paquet additionnel.
Il faut donc installer le paquet manuellement avec la commande apt-eole install eole-ejabberd
.
Exemple
root@eolebase:~# apt-eole install eole-ejabberd
[...]
Les NOUVEAUX paquets suivants seront installés : auth-client-config eole-client-annuaire eole-client-annuaire-pkg eole-ejabberd eole-nsswitch ldap-auth-client ldap-auth-config ldap-utils libnss-ldap libpam-ldap
0 mis à jour, 10 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 447 ko dans les archives.
Après cette opération, 1 501 ko d'espace disque supplémentaires seront utilisés.
[...]
Annuaire LDAP distant
Par défaut, le client LDAP a été installé par le paquet eole-ejabberd
. Celui-ci permet de se connecter un annuaire LDAP distant.
Annuaire LDAP local
Pour pouvoir gérer les utilisateurs dans un annuaire local il faut installer le paquet eole-annuaire
avec la commande apt-eole install eole-annuaire
.
Exemple
root@eolebase:~# apt-eole install eole-annuaire
[…]
Les NOUVEAUX paquets suivants seront installés : eole-annuaire
0 mis à jour, 1 nouvellement installés, 0 à enlever et 0 non mis à jour
Il est nécessaire de prendre 19,4 ko dans les archives.
Après cette opération, 159 ko d'espace disque supplémentaires seront utilisés.
[…]
Attention
Par défaut il n'y a aucun outil d'administration pour l'annuaire local et donc aucune facilité pour ajouter des utilisateurs.
Reconfiguration du serveur
L'installation du paquet eole-ejabberd
a installé de nouveaux dictionnaires et de nouveaux templates.
Il faut donc exécuter l'interface de configuration du module avec la commande gen_config
et configurer les nouveaux onglets et services.
Dans l'onglet Services
il faut choisir si l'annuaire utilisé sera distant ou local.
Puis il faut configurer l'annuaire dans l'onglet Annuaire
.
#fixme
Enfin il faut se rendre dans l'onglet Ejabberd
et configurer le service ejabberd.
Il faut vérifier le Nom de domaine de la messagerie instantanée de l'établissement
qui doit être de la forme monetab.ac-aca.fr
, il doit également être correctement déclaré dans le DNS de l'infrastructure.
Après avoir enregistré les modifications il faut quitter l'interface de configuration du module et reconfigurer le serveur à l'aide de la commande reconfigure
.
Connecter un utilisateur
Le compte utilisateur à utiliser sera de type prenom.elev424@ejabber.ac-test.fr
.
Diagnostic sur le serveur
Lire les journaux systèmes :
root@ejabber:~# tail -f /var/log/ejabberd/ejabberd.log
=INFO REPORT==== 2015-06-17 15:07:01 ===I(<0.353.0>:ejabberd_listener:281) : (#Port<0.10102>) Accepted connection {{192,168,0,102},40726} -> {{192,168,0,24},5223}
root@ejabber:~#
Vous pouvez vérifier que vous êtes effectivement connecté en lançant la commande suivante sur le serveur :
root@ejabber:~# ejabberdctl connected-users
prenom.elev424@ejabber.ac-test.fr/Gajim
root@ejabber:~#
La commande getent passwd
permet de savoir si les utilisateurs LDAP ont été ajouté aux utilisateurs locaux :
root@ejabber:~# getent passwd prenom.prof26
prenom.prof26:x:10437:10000:Prenom PROF26:/home/p/prenom.prof26:/bin/false
root@ejabber:~#
En cas de changement de nom de machine ou de nom de domaine de la messagerie il se peut que ejabberd refuse de démarrer et que la commande ejabberdctl connected-users
renvoie un message du type :
root@ejabber:~# ejabberdctl connected-users The node ejabberd@ejabber is started with status: startedejabberd is not running in that nodeCheck for error messages: ejabberd.logor other files in that directory.Error in ejabberd ctl process: 'error' badargroot@ejabber:~#
Une partie des journaux indique un message du type Error reading Mnesia database
.
Il faut stopper ejabberd
root@ejabber:~# service ejabberd stop
Il faut supprimer les fichiers présents dans /var/lib/ejabberd/
root@ejabber:~# rm -rf /var/lib/ejabberd/*
Il faut redémarrer ejabberd
root@ejabber:~# service ejabberd stop
Si ejabberd ne s'exécute toujours pas et que la commande ejabberdctl connected-users
renvoie Failed RPC connection to the node
et que un message du type ERROR ** mnesia_event got unexpected event
est présent dans les journaux alors il faut relancer ejabberd :
root@ejabber:~# service ejabberd stop
Stopping jabber server: ejabberd already stopped.
root@ejabber:~# service ejabberd start
Starting jabber server: ejabberd.
root@ejabber:~#
Plus d'informations sur les pages suivantes :
http://superuser.com/questions/544078/ejabberd-runs-on-command-but-not-via-service-ejabberdctl
Truc & astuce
D'autres commandes ejabberdctl
sont disponibles et documentées avec l'option help
:
root@ejabber:~# ejabberdctl help