Installation de opush3 pour obm 3.0

19 septembre 2014 | Posted in Mail, OBM | By

Obm 3 utilise opush 3 pour le service activesync. Depuis cette version on doit installer cassandra nous même.

La raison est simple : du faite du multi node de cassandra, vous pouvez avoir cassandra sur un serveur différent que l’opush . Je vais donc vous décrire la procédure pour installer cassandra et opush sur un même serveur.

Pré-requis :

Une vm ou un serveur avec au minimum 2Go de RAM. Nous en mettrons donc 4Go.
Une Debian 7 64bit
La machine est en lan et son ip défini : son ip sera donc 192.168.4.125

Installation :

On commence par modifier notre source.list pour avoir les paquets pour cassandra et obm

# Stable repository with current version 3.0.X:
deb http://deb.obm.org/30/stable obm obm
deb http://deb.obm.org/30/contrib wheezy obm

deb http://deb.obm.org/opush/stable opush opush

deb http://ftp.fr.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ wheezy main contrib non-free

deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free

# wheezy-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ wheezy-updates main contrib non-free

# Cassandra 2.0
deb http://debian.datastax.com/community stable main

On récupère les clés

Si vous êtes from scratch, n’oubliez pas d’installer le paquet curl pour la suite.

wget -q http://deb.obm.org/obmgpg.pub -O - | apt-key add -
curl -L http://debian.datastax.com/debian/repo_key | apt-key add -

On met à jour notre liste de dépôts

apt-get update

Installation d’Oracle JRE

il faut au minium un JRE 1.7.0_25.  A l’heure ou j’écris ce tutorial la version est en 1.8

Allez sur la page :
http://www.oracle.com/technetwork/java/javase/downloads/index.html
et rendez vous sur JRE
Téléchargez la dernière version du JRE et installez la (attention modifiez le lien du Wget, mon AuthParam ne sera pas toujours valable, l’archive fait dans les 60Mo)

Lors de update-alternative, modifiez bien vos chemins en fonction de votre version.


cd /root
wget http://download.oracle.com/otn-pub/java/jdk/8u20-b26/jre-8u20-linux-x64.tar.gz?AuthParam=1410429997_ff1b83c9124dc16140191719bafa747c
mv jre-8u20-linux-x64.tar.gz?AuthParam=1410429997_ff1b83c9124dc16140191719bafa747c jre-8u20-linux-x64.tar.gz
mkdir -p /usr/lib/jvm
tar xvfz jre-8u20-linux-x64.tar.gz -C /usr/lib/jvm
update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jre1.8.0_20/bin/java" 1
update-alternatives --set java /usr/lib/jvm/jre1.8.0_20/bin/java

Il nous reste plus qu’à définir la variable JAVA_HOME

export JAVA_HOME=/usr/lib/jvm/jre1.8.0_20

puis vérifier le tout

java -version

résultat :


java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

Afin de le rendre permanent modifier le fichier /etc/profile et coller le export vu au-dessus

Installation de JNA

on installe le paquet

apt-get install libjna-java

Installation de cassandra 2.0

apt-get install dsc20

Configuration de cassandra

Il faut commencer avant tout par supprimer la configuration de base installée avec le paquet debian.

/etc/init.d/cassandra stop
rm -rf /var/lib/cassandra/data/system/*

On peut configurer cassandra en single node ou en multi-node.
Dans ce tutorial, je traiterai que le cas du single node.
Éditez le fichier /etc/cassandra/cassandra.yaml et modifiez les valeurs dans le fichier comme ci-dessous

...
cluster_name: 'MyOpushCluster'
...
seed_provider:
    - class_name: org.apache.cassandra.locator.SimpleSeedProvider
      parameters:
          - seeds: "127.0.0.1"
...
rpc_address: 192.168.4.125
....
authenticator: PasswordAuthenticator

redémarrer cassandra

/etc/init.d/cassandra start

On se connecte maintenant à cassandra.

cqlsh -u cassandra -p cassandra 192.168.4.125

et on créé le keyspace et l’utilisateur  ayant accès pour opush.

CREATE KEYSPACE opush WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 1}; USE opush; CREATE USER opush_user WITH PASSWORD 'opush_password' SUPERUSER;

Installation de Opush

Notez que pour répondre aux questions de l’installeur :
Pour les seed étant en single node: votre ip
Pour le keyspace : opush comme créé si dessus
Utilisateur opush : opush_user
Mot de passe de l’utilisateur : opush_password

apt-get install opush obm-munin-node

Configuration de Opush

C’est là que j’ai eu ma grosse surprise… Je ne peux l’expliquer, mais les fichiers de conf de opush étaient tout simplement incomplets ou inexistants. Donc nous allons vérifier chaque fichier et leur contenu.

Voilà les fichiers et les explications pour les remplir.
/etc/opush/opush.ini


#
# Locator & Database URL
#
host= **** ip du serveur ou se situe la base de donnée *****

#
# Database section
#

# DB type MYSQL, PGSQL
dbtype= *** Quel type de base de donnée utilisé MYSQL ou PGSQL *****

# Database name
db= **** nom de la base de donnée ****

# DB user
user= **** utilisateur de la base de donnée ****

# DB user password
password= *** mot de passe de l utilisateur ****

# OBM external URL
external-url= *** url d acces a votre interface d administration Obm *****

#
# Transaction timeout section
#

# Transaction timeout
transaction-timeout=1

# Transaction timeout unit (milliseconds, seconds, minutes, hours)
transaction-timeout-unit=minutes

/etc/opush/ldap_conf.ini


search.ldap.filter=(&(objectClass=inetOrgPerson) (|(mail=%q*)(sn=%q*)(givenName=%q*)))
search.ldap.url=*** ip du serveur ldap exemple : search.ldap.url=ldap://127.0.0.1 ****
search.ldap.basedn=dc=%d,dc=local

/etc/opush/cassandra.ini


cassandra.seeds=*** ip de votre serveur opush ****
cassandra.keyspace=opush
cassandra.user=*** utilisateur creer pour cassandra pour le keyspace opush
cassandra.password=*** mot de pase de l utilisateur cassandra***

Initialisation du schéma de cassandra

Si vous regardez le fichier de log de opush /var/log/opush/opush.log vous verrez ce message d’erreur :

[ERROR] {CONTAINER} [t/c/r/] Cassandra schema not installed, starting administration services only

Pour faire cela on doit utiliser CRaSH

Présentation de CRaSH

CRaSH est un shell permettant d’administrer le serveur Opush.

Configuration de CRaSH

La configuration de CRaSH se fait dans le fichier /etc/opush/remote_console.ini


# Default parameters
# uncomment lines and modify values to change default settings
#
console.enable = true
console.ssh.port = 5665
console.authentication.domain = global.virt

console.ssh.port permet de définir le port de connexion en ssh pour accéder à la console
console.authentication.domain permet de définir le domaine dans opush dont l’administrateur aura le droit de se connecter à CRaSH

Configuration de l’utilisateur ayant le droit d’administration de CRaSH dans OBM

Connectez vous sur votre interface Obm sur le global.virt avec l’utilisateur admin0.
Rendez vous dans Administration>Profil utilisateur
Recherchez admin et modifiez le profil

Dans Réglages Spécifiques cochez Administration et validez les modifications.

Connexion a CRaSH

Sur le serveur opush connectez vous comme suit à crash :

ssh -p 5665 admin0@127.0.0.1

Le mot de passe étant celui de votre utilisateur admin0 dans Obm

Installation du schema

Dans la console CRaSH :

schema install

Voila c est fait!

Autres commandes :

schema status # pour l etat
schema update # pour la mise a jour
dashbord # un equivalent de htop

il ne reste plus qu’à redémarrer opush

/etc/init.d/opush restart

Read More...

Installation de OBM 2.5.6 sous debian wheezy 7.4 64Bits

11 mars 2014 | Posted in Mail, OBM | By

Préambule

Tout d abord il faut bien comprendre qu’à l’heure où j écris ce tutorial, Linagora ne supporte pas debian wheezy !!! Obm n’est disponible que pour les versions squeeze et lenny… Ce qui en terme de mise à jour, commence à devenir problématique puisque lenny n’est plus suivi depuis février 2012 et que squeeze est old version.

Pas grand chose ne change par rapport au tutorial que j avais déjà écrit :  Installation Obm 2.5.5 sur une debian squeeze 64Bits.  Le principal problème étant le paquet obm-jdk qui dépend du paquet sun-java6-jdk non disponible sous wheezy. Voyons comment résoudre tout ca.

La machine

L installation et la procédure décrite ici ce font sur :
Un vm ayant 2 coeur, 4Go de Ram et 50Go de Disque dur.
Installation faite depuis une installation netinstall 7.4.0
http://cdimage.debian.org/cdimage/release/7.4.0/amd64/iso-cd/debian-7.4.0-amd64-netinst.iso

Configurer vos dns

Creez un sous-domaine de type A qui pointe sur l ip de votre serveur

par exemple : mail.nomdedomaine.com
Puis modifiez le mx pour qu il aille sur ce sous domaine.

Installation de la debian

Lancez l installation.
Il faut que le nom de la machine soit mail (comme le sous domaine) et que vous mettiez votre nom de domaine dans domaine.

Au niveau des paquets a installer, ne prenez que le paquet serveur ssh et utilitaire standard du système.

Installation d’obm

on commence par mettre a jour ou cas ou.

apt-get update

On supprime des paquets qui génére des problemes

apt-get remove exim4 exim4-config

On edite le fichier sources.liste

vi /etc/apt/sources.list

on efface tout et vous collez ca

# depot pour le sun-java6-jdk
deb http://ftp.fr.debian.org/debian/ squeeze main contrib non-free

# Stable repository with current version 2.5.X:
deb http://deb.obm.org/25/stable obm obm
deb http://deb.obm.org/25/contrib squeeze obm

deb http://ftp.fr.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ wheezy main contrib non-free

deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free

# wheezy-updates, previously known as 'volatile'
deb http://ftp.fr.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.fr.debian.org/debian/ wheezy-updates main contrib non-free
deb http://deb.obm.org/25/contrib squeeze obm

Puis il faut protéger votre système en mettant le dépôt squeeze avec une priorité basse pour ne pas être pris en compte

vim /etc/apt/preferences.d/00squeeze

et copiez ceci dedans

Package: *
Pin: release n=squeeze
Pin-Priority: 100

ceci fait on peut commencer a installer ce qu’il nous faut.

aptitude install perl

et on installe le serveur mysql

apt-get install mysql-server

On ajoute la clé obm

wget -q  http://deb.obm.org/obmgpg.pub -O - | apt-key  add -

on met a jour

apt-get update

on installe le paquet php5-mysql

apt-get install php5-mysql

puis on lance l installation d obm
Première étape installé le obm-jdk via le depot de squeeze

apt-get install -t squeeze obm-jdk

puis on lance l installation complète

apt-get install obm-full

Répondre aux questions

ATTENTION : Beaucoup de mot de passe sont en clair, n utilisez pas le meme mot de passe que le compte root de la machine

Dans l ordre

  1. external url => mail.mondomain.com
  2. ip adress ldap faite direct ok on laisse tout sur le meme serveur
  3. Type de database => MYSQL
  4. ip de la database pareil que pour 2, ok direct
  5. nom de la base on fait ok direct
  6. utilisateur de la base ok sans rien changer
  7. definissez un mot de passe
  8. munin, ok sans rien changer
  9. definisser le mot de passe ldap
  10. configuration de cyrus-common => oui
  11. postfix configuration => Site internet
  12. nom du serveur de courrier => mail.mondomain.com
  13. Ok direct sauf si vous avez un proxy
  14. utiliser les regle de spamassin => oui
  15. obm prend la main sur apache => oui
  16. ip du tomcat direct ok on est en local
  17. pareil pour ip opush ok
  18. accepter la licence pour java
  19. configuration obm-storage => oui
  20. entrez le mot de passe root mysql

On verifie deux choses.

Éditez le fichier /etc/default/jetty
et vérifier que vous avez bien : NO_START=0

éditez le fichier /etc/default/saslauthd
et vérifier que vous avez bien : START=yes

Débugger munin

L installation de munin a quelque souci nous allons les regler
on edite le fichier de configuration d apache de munin.

vi /etc/apache2/conf.d/munin

Modifier le : Allow from localhost 127.0.0.0/8 ::1
Par : Allow from all

puis rajoutez la ligne : DirectoryIndex index.html

Alors a la base le munin est accessible via l adresse http://mail.mondomaine.com/stats
Dans la configuration obm, mais cela est mal fait, en effet le dossier qu il pointe dans le /var/www n existe pas.
Munin est ailleurs on va donc faire un lien symbolique pour retablir tout ca

cd /var/www && ln -s /var/cache/munin/www munin

Il est maintenant accessible a l ‘adresse : http://mail.mondomaine.com/munin

Installation du webmail

Il existe un lien dans l interface d obm pour un webmail, mais ce dernier est pas installé.
Nous allons le faire avec un roundcube

On commence par installer une dependance.

apt-get install php5 php5-mcrypt php5-curl php5-dev php5-cli php5-ldap php5-intl
apt-get install phpmyadmin

Connectez vous sur le phpmyadmin, afin de creer facilement une base de donnée pour roundcube avec un utilisateur et un mot de passe. Le phmyadmin c est pas du superflu ca vous aidera si vous devez par la suite checker le sql d obm.

Puis

cd /var/www
wget http://downloads.sourceforge.net/project/roundcubemail/roundcubemail/0.9.5/roundcubemail-0.9.5.tar.gz
tar xvfz roundcubemail-0.9.5.tar.gz
rm roundcubemail-0.9.5.tar.gz
ln -s roundcubemail-0.9.5 webmail
cd webmail
chmod 777 temp
chmod 777 logs
cd plugins
wget http://www.obm.org/roundcube-addressbook-plugin/stable/obm_addressbook-1.0.0.tgz
tar xvfz obm_addressbook-1.0.0.tgz
rm obm_addressbook-1.0.0.tgz
cd obm_addressbook
mv config.inc.php.dist config.inc.php
cd /var/www
chown -R www-data:www-data webmail

on modifie maintenant la configuration de php.ini et d apache.

vi /etc/php5/apache2/php.ini

remplacez

;date.timezone =

par

date.timezone = Europe/Paris

On edite le fichier apache de configuration de obm

vi /etc/apache2/sites-available/obm.conf

on rajoute en dessous de

Alias /stats /var/www/munin

Alias /webmail /var/www/webmail
<Directory /var/www/webmail>
Options +Indexes Includes FollowSymlinks
Order Allow,Deny
Allow from All
#        PerlHeaderParserHandler My::Package->unprotect
DirectoryIndex index.pl index.php
</Directory>

On redemarrer apache

/etc/init.d/apache2 restart

On fini l installation du webmail en suivant les indications de l installer en se rendant a l adresse :
http://mail.mondomaine.com/webmail/installer/

Enfin editez le fichier config de roundcube pour activer le plugins

vi /var/www/webmail/config/main.inc.php

et rajoutez dans la section plugins

$rcmail_config['plugins'] = array('obm_addressbook');

Voila vous avez une installation faite. On peut bien sur l ameliorer mais cela sera dans les prochains tutos.

Pour finir j ai rebooté le serveur.

 

Comment debbuger

Comme on est jamais a l abri d une erreur, voici quelque info pour debbuger

Obm embarque avec lui un outils de check

https://mail.mondomaine.com/healthcheck/

le fichier error log de obm pour apache ce trouve la :

vi /var/log/apache2/obm-error.log

Verifier vos mx

nslookup
set q=mx
mondomaine.com

Envoyez un mail en telnet

telnet mail.mondomaine.com 25
ehlo domainetest.com
mail from: test@domainetest.com
rcpt to: email@mondomaine.com
data
tape ton texte du mail
.

pour sortir de l écriture du texte de mail faite entrée puis . puis entrée

verifier vos log mails

vi /var/log/mail.info

Conclusion

Regardons le paquet postfix sur une installation squeeze et une installation wheezy

squeeze :

postfix:
Installé : 2.7.1-1+squeeze1
Candidat : 2.7.1-1+squeeze1
Table de version :
*** 2.7.1-1+squeeze1 0
500 http://ftp.fr.debian.org/debian/ squeeze/main amd64 Packages
500 http://security.debian.org/ squeeze/updates/main amd64 Packages
100 /var/lib/dpkg/status

wheezy:

postfix:
Installé : 2.9.6-2
Candidat : 2.9.6-2
Table de version :
*** 2.9.6-2 0
500 http://ftp.fr.debian.org/debian/ wheezy/main amd64 Packages
100 /var/lib/dpkg/status
2.7.1-1+squeeze1 0
100 http://ftp.fr.debian.org/debian/ squeeze/main amd64 Packages

On voit bien que l’installation a bien pris en compte les dépôts de wheezy

 

 

Read More...