Modifications entre les versions 1 et 65 (s'étendant sur 64 versions)
Version 1 à la date du 2011-10-06 01:17:14
Taille: 13937
Éditeur: MoussaNombre
Commentaire: go, on approche de la fin
Version 65 à la date du 2012-12-06 15:00:36
Taille: 25458
Éditeur: MoussaNombre
Commentaire: port officiel du sieve
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
#acl GroupeAUF:read,write #acl GroupeAUF:read,write All:read
Ligne 9: Ligne 9:
=== Les prérequis ===
 * Un serveur virtuel avec : 
=== Les prérequis serveur ===
 * Un serveur virtuel avec :
Ligne 14: Ligne 14:
 * serveur imap et smtp
 * un script de synchro des comptes utilisateurs (prenom.nom@auf.org + mot de passe associé).
   Vous pouvez commencer avec [[http://git.auf.org/?p=codes-mnombre.git;a=blob;f=synchros-sogo-users.py;h=41da438b2d83bcd2a7567c712168f652e2141cf6;hb=18925295796131310d5ed2144c8652efd9041b58|celui]] fait par MoussaNombre.
   Contactez MoussaNombre et/ou ProgFou pour les accès à la base de données centrale
 * un serveur imap
 * un serveur smtp
Ligne 20: Ligne 18:
 * créez et configurez un serveur virtuel de base à votre sauce. Ensuite, installez les prérequis de SOGo et SOGo lui-même :
 * mise en place d'Apache
 * créez et configurez un serveur virtuel de base à votre sauce
 * exemple de partitionnement recommandé :
  * 2 Go pour / (obligatoire)
  * 1 Go pour /var (optionnel)
  * 1 Go pour /var/log (recommandé)
  * 1 Go pour /var/lib/mysql (obligatoire)
  * 3 Go pour /opt (dans le cas d'une installation de Funambol)
 * une idée des haricots (beancounters) sur le SOGo de Montréal : [[Projet/SOGo/BeanCounterServeurDeMontreal]]

 * reconfigurer les locales :
  {{{
# les locales
# sélectionner fr_FR.UTF-8 + la langue locale
# et choisir celle qu'on veut par défaut, à condition que ce soit en .UTF-8

dpkg-reconfigure locales

. /etc/environment
. /etc/default/locale
export LANG
  }}}

 * reconfigurer le fuseau horaire :
  {{{
dpkg-reconfigure tzdata
  }}}


==== mise en place d'Apache ====
Ligne 24: Ligne 49:
aptitude install apache2 aptitude install apache2 apache2-mpm-prefork

# supprimer PHP5 si vous l'aviez insallé
aptitude purge php5 libapache2-mod-php5

sed -i '/^#AddDefaultCharset/c AddDefaultCharset UTF-8' /etc/apache2/conf.d/charset
Ligne 27: Ligne 57:
sed -i '/^#AddDefaultCharset/c AddDefaultCharset UTF-8' /etc/apache2/conf.d/charset

# Configuration Apache2 en mode ssl
# cf http://wiki.auf.org/wikiteki/PKI/CréationCertificatServeurSSL pour la création du certif dans IGC (http://igc.auf.org)

# Configuration Apache2 en mode ssl :
# - pour la création du certif dans IGC (http://igc.auf.org),
# voir http://wiki.auf.org/wikiteki/PKI/CréationCertificatServeurSSL
# - installer la racine AUF sur tous les postes clients (dans thunderbird et dans firefox),
# voir http://wiki.auf.org/wikiteki/PKI#Pr.2BAOk-liminaire_:_installation_de_l.27AC_racine_dans_Firefox_et_Thunderbird
Ligne 39: Ligne 71:
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        ErrorLog \${APACHE_LOG_DIR}/sogo.xx.auf.org-error.log
        CustomLog \${APACHE_LOG_DIR}/sogo.xx.auf.org-access.log combined
Ligne 50: Ligne 82:
        DocumentRoot /var/www         Alias /plugins /srv/sogo-plugins/
        <Directory /srv/sogo-plugins/>
                Options +ExecCGI
                AddHandler cgi-script .py
        </Directory>
Ligne 52: Ligne 88:
        ErrorLog ${APACHE_LOG_DIR}/sogo.xx.auf.org-error.log
        CustomLog ${APACHE_LOG_DIR}/sogo.xx.auf.org-ssl_access.log combined
        # pour l'auto-détection par les iPhone
        RedirectMatch ^/principals/users/(.*)$ https://sogo.xx.auf.org/SOGo/dav/$1
        RedirectMatch ^/principals/$ https://sogo.xx.auf.org/SOGo/dav/
        RedirectMatch ^/.well-known/(caldav|carddav)$ https://sogo.xx.auf.org/SOGo/dav/
        ErrorLog \${APACHE_LOG_DIR}/sogo.xx.auf.org-ssl-error.log
        CustomLog \${APACHE_LOG_DIR}/sogo.xx.auf.org-ssl-access.log combined
Ligne 56: Ligne 96:
        SSLCertificateFile /etc/ssl/auf/sogo.xx.auf.org.pem
        SSLCertificateKeyFile /etc/ssl/auf/sogo.xx.auf.org.key
        SSLCACertificateFile /etc/ssl/auf/CAs-AUF.crt
        SSLCertificateFile /etc/ssl/certs/sogo.xx.auf.org-cert.pem
        SSLCertificateKeyFile /etc/ssl/private/sogo.xx.auf.org-key.pem
        SSLCACertificateFile /etc/ssl/certs/AC-AUF-RACINE+BA.pem # changer la région
Ligne 64: Ligne 104:
# installer les sites
Ligne 66: Ligne 107:
Ligne 69: Ligne 109:
# Activer les modules proxy requis par SOGo
a2enmod proxy
# activer les modules requis par SOGo
Ligne 74: Ligne 113:
 }}}

 * création du certificat dans la PKI AUF :
  * [[PKI/CréationCertificatServeurSSL]].
  * Le ficher PKCS#12 devra être décomposé et mis dans le dossier `/etc/ssl/auf`
  * redémarrer apache

 * mise en place de mysql

# relancer Apache
service apache2 restart
}}}

==== mise en place de mysql ====
Ligne 84: Ligne 121:
aptitude install mysql-server-5.1 aptitude install mysql-server
Ligne 90: Ligne 127:
chmod 0600 /root/.my.cnf
Ligne 92: Ligne 130:
[client]
# l'option suivante semble gêner quelques outils, comme mysqlbinlog
#default-character-set = utf8
Ligne 123: Ligne 157:
/etc/init.d/mysql restart service mysql restart
Ligne 126: Ligne 160:
 * installation de SOGo ==== installation de SOGo ====
Ligne 128: Ligne 162:
# installation et configuration de sogo (cf http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureInstallationSOGo et http://wiki.auf.org/wikiteki/ZA/Montr%C3%A9al/SOGo/ProcedureInstallationVersionDebian)
Ligne 131: Ligne 164:
echo "deb http://inverse.ca/debian squeeze squeeze" >> /etc/apt/sources.list
# ajouter la clé inverse.ca
apt-key adv --keyserver subkeys.pgp.net --recv 19CDA6A9810273C4
echo "deb http://apt.auf.org/ squeeze auf sogo" >> /etc/apt/sources.list
Ligne 136: Ligne 168:
aptitude install sogo

# On met le nom du serveur SOGo dans apache en gardant le HTTPS 
aptitude install --without-recommends sogo memcached

# corriger memcached pour sogo
sed -i -e "s/127.0.0.1/localhost/" /etc/memcached.conf

service memcached restart


# On met le nom du serveur SOGo dans apache en gardant le HTTPS
Ligne 142: Ligne 179:
sed -i -e "s/^SHOWWARNING/#SHOWWARNING=true/g" /etc/tmpreaper.conf  sed -i -e "s/^SHOWWARNING/#SHOWWARNING=true/g" /etc/tmpreaper.conf
Ligne 145: Ligne 183:
cat > /tmp/sogo-bdd.sql << __EOF__ cat > /root/sogo-bdd.sql << __EOF__
Ligne 147: Ligne 185:
GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'localhost' IDENTIFIED BY 'xxxxxxxxxxxxxxxx';
GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'sogo.xx.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxx';
GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'localhost' IDENTIFIED BY 'xxxxxxxxxxxxxxxx'; -- pour les tests
GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'sogo.xx.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxx'; -- attention à bien changer le 'xx' ici
GRANT SELECT,INSERT,UPDATE,DELETE ON sogo.* TO 'sogo'@'sogo.%.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxx'; -- autoriser les autres SOGo à accéder à notre sogo

# mettre un enregistrement reverse dans son dns pour son sogo.xx.auf.org
Ligne 172: Ligne 213:
mysql < /tmp/sogo-bdd.sql mysql < /root/sogo-bdd.sql
Ligne 176: Ligne 217:
/etc/init.d/sogo restart

cat > /tmp/config_sogo.sh << __EOF__
defaults -u sogo write sogod SOGoMailDomain xx.auf.org

s
ervice sogo stop ; sleep 10 ; service sogo start

cat > /root/sogo-config.sh << __EOF__
defaults -u sogo write sogod SOGoMailDomain auf.org
Ligne 183: Ligne 225:
defaults -u sogo write sogod SOGoTimeZone America/Montreal defaults -u sogo write sogod SOGoTimeZone xxxxxxxxxxxxx/xxxxxxxxxxxxx # America/Montreal
Ligne 185: Ligne 227:
defaults -u sogo write sogod OCSSessionsFolderURL mysql://sogo:xxxxxxxxxxxx@sogo.ca.auf.org:3306/sogo/sogo_sessions_folder
defaults -u sogo write sogod OCSFolderInfoURL mysql://sogo:xxxxxxxxxxxx@sogo.ca.auf.org:3306/sogo/sogo_folder_info
defaults -u sogo write sogod SOGoProfileURL mysql://sogo:xxxxxxxxxxxx@sogo.ca.auf.org:3306/sogo/sogo_user_profile
defaults -u sogo write sogod OCSEMailAlarmsFolderURL mysql://sogo:xxxxxxxxxxxxx@sogo.ca.auf.org:3306/sogo/sogo_alarms_folder
defaults -u sogo write sogod SOGoIMAPServer imap.xx.auf.org
defaults -u sogo write sogod OCSSessionsFolderURL mysql://sogo:xxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/sogo_sessions_folder
defaults -u sogo write sogod OCSFolderInfoURL mysql://sogo:xxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/sogo_folder_info
defaults -u sogo write sogod SOGoProfileURL mysql://sogo:xxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/sogo_user_profile
defaults -u sogo write sogod OCSEMailAlarmsFolderURL mysql://sogo:xxxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/sogo_alarms_folder
defaults -u sogo write sogod SOGoIMAPServer imaps://imap.xx.auf.org:993
# pour un serveur en imap
# defaults -u sogo write sogod SOGoIMAPServer imap.xx.auf.org
Ligne 194: Ligne 238:
defaults -u sogo write sogod SOGoBusyOffHours YES
defaults -u sogo write sogod SOGoDefaultCalendar personal
Ligne 201: Ligne 247:
defaults -u sogo write sogod SOGoSieveServer sieve://imap.XX.auf.org:4190/?tls=YES
defaults -u sogo write sogod SOGoSieveScriptsEnabled YES
Ligne 203: Ligne 251:
    {     {
        id = public;
        displayName = ANNUAIRE-AUF;
        type = sql;
Ligne 205: Ligne 256:
        displayName = ANNUAIRE-AUF;
        id = users;
Ligne 208: Ligne 257:
        type = sql;
        userPasswordAlgorithm = md5;
        viewURL = "mysql://sogo:xxxxxxxxxxxxxxx@sogo.ca.auf.org:3306/sogo/auf_users";
        LoginFieldNames = (c_uid, mail_pays);
        userPasswordAlgorithm = crypt;
        viewURL = "mysql://sogo:xxxxxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/auf_users";
Ligne 212: Ligne 261:
        authenticationFilter = "(mail_pays like '\''%@xx.auf.org'\'' or mail_pays like '\''%@yy.auf.org'\'')";         authenticationFilter = "source='\''LOCAL'\''";
Ligne 222: Ligne 271:
# - l'ensemble des pays couverts par ce sogo, au besoin ajouter des " or mail_pays like '\''%@zz.auf.org'\''"
Ligne 225: Ligne 273:

sh /tmp/config_sogo.sh

/etc/init.d/sogo restart
service sogo stop

sh /root/sogo-config.sh

# augmenter le nombre d'instances de sogo
sed -i '/^# PREFORK/c PREFORK=5' /etc/default/sogo


# corriger l'ordre de démarrage pour que SOGo soit lancé après mysql et non avant
if ! grep -q 'Required-Start:.* mysql' /etc/init.d/sogo ; then
  sed -i -e '/^# Required-Start:/s/$/ mysql/' /etc/init.d/sogo
fi

insserv sogo

service sogo start

# Relancer Apache
service apache2 restart
Ligne 230: Ligne 293:
   * lancer la synchro des comptes pour remplir la table `auf_users`
Ligne 234: Ligne 296:
  * ouvrir un navigateur et aller à `https:sogo.xx.auf.org`
  * accepter le certificat
  * et zou on y est, saisir son prenom.nom (sans le @auf.org), et son mot de passe

 * synchronisation inter-implantation
  * http://wiki.auf.org/wikiteki/Projet/SOGo/SynchroMultiSites#Mise_en_place_.28v0.29
  Contacter MoussaNombre et/ou ProgFou pour avoir une clé pour son serveur

 * gestion des extensions SOGo (extensions pour le client Thunderbird + script de mise à jour)
  * ouvrir un navigateur et aller à `https://sogo.xx.auf.org/`
  * on ne peut pas se connecter, car les comptes utilisateurs ne sont pas encore créés.

==== synchronisations ====
 Inter-implantation et synchronisation des comptes utilisateurs (prenom.nom@auf.org + mot de passe associé)

 * installation paquet debian développé par ProgFou : `sogocentral-clients`

  {{{
echo "deb http://apt.auf.org squeeze auf" >> /etc/apt/sources.list
aptitude install auf-keyring
aptitude update
aptitude install sogocentral-clients

# reprendre le modèle de configuration MySQL
cp /usr/share/doc/sogocentral-clients/mysql.sql /root/
edit /root/mysql.sql # bien lire et adapter ce qu'il faut
mysql sogo < /root/mysql.sql

# lancer une première synchro (un cron tourne à chaque heure pour le reste)
sogocentral-sync -v
  }}}

 NB : (fichier de config /etc/sogocentral/config.py)
  {{{
  
Progfou : j'ai aussi désactivé par défaut l'utilisation du login local venant de la gestion des alias,
          puisqu'on sait que cela pose des problèmes avec SOGo
            => par défaut ça mettra le prenom.nom dans mail_pays maintenant,
               sauf si on fixe USE_LOCAL_LOGIN = True dans /etc/sogocentral/config.py
  }}}

 * génération des entrées dns pour /etc/hosts (régler les problèmes de DNS inverse pas toujours disponibles)

  {{{
sogocentral-gen-hosts >> /etc/hosts
edit /etc/hosts # vérifier et supprimer le doublon sur votre serveur local
  }}}

 * génération des régles pour le parefeu (faciliter l'ouverture des filtrages pour les serveurs SOGo)
  {{{
sogocentral-gen-iptables >> /etc/network/firewall-sogo
# ajouter ce fichier dans votre fichier principal de règles iptables, quelque part au début
# insérer la dernière régle générée (et en commentaire) dans votre fichier principal de règles iptables après le fichier.
# relancer les règles iptables
  }}}

 * vérifier s'il manque des tables sogo dans mysql : `sogocentral-check`

 * fichiers de log : `/var/log/sogocentral/*.log`

==== personnalisation de la page d'accueil ====
## [[attachment:SOGoRootPage.wox|fichier template]] et [[attachment:SOGoRootPage.css|fichier css]]
  {{{
mkdir -p /home/sogo/GNUstep/Library/SOGo/Templates/MainUI

  # télécharger ces deux fichiers (template modifié et styles)
wget --user-agent="Client-sogo-config" -O /home/sogo/GNUstep/Library/SOGo/Templates/MainUI/SOGoRootPage.wox "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=SOGoRootPage.wox"
wget --user-agent="Client-sogo-config" -O /home/sogo/GNUstep/Library/SOGo/Templates/MainUI/SOGoRootPage.css "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=SOGoRootPage.css"
  # remplacer "Amériques et Caraïbes" par votre région dans le fichier SOGoRootPage.wox

  # télécharger les logos
wget --user-agent="Client-sogo-config" -O /usr/lib/GNUstep/SOGo/WebServerResources/logo_auf.png "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=logo_auf.png"
wget --user-agent="Client-sogo-config" -O /usr/lib/GNUstep/SOGo/WebServerResources/sogo-logo-petit.png "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=sogo-logo-petit.png"
  }}}

==== création de comptes génériques pour les agendas publics ====

 * création du compte (remplacer les variables ci-dessous par les bonnes valeurs)
  {{{
INSERT INTO auf_users VALUES ('agenda.[ville_bureau]','agenda.[ville_bureau]',ENCRYPT('[mot_de_passe]'),'Agendas public [nom_bureau]','agenda.[ville_bureau]@xx.auf.org','agenda.[ville_bureau]@xx.auf.org','Agendas public','[nom_bureau]','AUF','[nom_bureau]','[num_tel]','LOCAL');
  }}}
 * contacter la personne qui a été désigné par l'administration pour gérer les agendas publics et lui donner les codes d'accès :
  * elle doit se connecter avec ces codes via sogo web (agenda.[ville_bureau] et son [mot_de_passe])
  * créer les agendas publics nécessaires en veillant à bien '''commencer par le nom de la ville''' : [ville_bureau]-Absences-Missions et [ville_bureau]-Evenements (exemples : Paris-Evenements et Paris-Absences-Missions).
   NB : Commencer par ceux du bureau régional, les autres seront ajoutés au besoin
  * elle va ensuite dans l'option partage pour chacun de ces agendas et s'accorde les droits (tous les droits) à elle-même ou à une autre personne déléguée pour tel ou tel autre agenda ; cela pour pouvoir accéder aux agendas publics depuis son compte personnel sans être obligé de se connecter avec le compte générique.
   NB : on peut très bien choisir/préférer utiliser directement le compte générique plutôt que de devoir s'abonner aux agendas publics.
  * règles importantes dans la création des évènements : préfixer les évènements par leur intitulé explicite. Exemple :
   * Mission - Moussa Nombré (Bucarest) # on indique le lieu de la mission entre parenthèses
   * Férié - (BAO) - Fête du travail
   * Absence - Christine Legris


==== gestion des extensions SOGo ====
 (extensions pour le client Thunderbird + script de mise à jour)
Ligne 244: Ligne 384:
# module apache-php pour le script
aptitude install libapache2-mod-php5

mkdir /var/www/plugins
cd /var/www/plugins
mkdir /srv/sogo-plugins
cd /srv/sogo-plugins
Ligne 250: Ligne 388:
wget --user-agent="Client-sogo-config" -O updates.php "http://wiki.auf.org/wikiteki/Projet/SOGo/MiseAJourDesExtensions?action=AttachFile&do=get&target=updates.php"
# adaptation du script
sed -i -e "s/inverse.ca\/downloads\/extensions/sogo.xx.auf.org\/plugins/" updates.php
sed -i -e "s/102/105/" updates.php
wget --user-agent="Client-sogo-config" -O updates.py "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=updates.py"
# le rendre exécutable
chmod a+x /srv/sogo-plugins/updates.py
# et modifier la ligne 'BASE_URL = "https://sogo.vn.auf.org/plugins"' en remplaçant le 'vn' par le bon code pays
Ligne 256: Ligne 394:
wget --user-agent="Client-sogo-config" -O sogo-connector-3.105.xpi http://www.sogo.nu/files/downloads/extensions/sogo-connector-3.105.xpi
wget --user-agent="Client-sogo-config" -O lightning-1.0b2.105i.xpi http://www.sogo.nu/files/downloads/extensions/lightning-1.0b2.105i_linux-i686.xpi
wget --user-agent="Client-sogo-config" -O sogo-connector-3.106.xpi http://www.sogo.nu/files/downloads/extensions/sogo-connector-3.106.xpi
wget --user-agent="Client-sogo-config" -O lightning-1.0b2.106i.xpi http://www.sogo.nu/files/downloads/extensions/lightning-1.0b2.106i_linux-i686.xpi

# installation d'un utilitaire pour manipuler les .xpi
aptitude install fastjar
Ligne 260: Ligne 401:
# utilitaire pour manipuler les .xpi
aptitude install fastjar
cd /tmp
wget --user-agent="Client-sogo-config" -O sogo-integrator-3.105.xpi http://www.sogo.nu/files/downloads/extensions/sogo-integrator-3.105-sogo-demo.xpi
mkdir SOGo
cd SOGo

jar xf /tmp/sogo-integrator-3.105.xpi
wget --user-agent="Client-sogo-config" -O sogo-integrator-3.106.xpi http://www.sogo.nu/files/downloads/extensions/sogo-integrator-3.106-sogo-demo.xpi
mkdir tmp
cd tmp

jar xf ../sogo-integrator-3.106.xpi

# configuration des valeurs par défaut pour Lightning
edit defaults/preferences/site.js
# retirer la ligne suivante :
# pref("calendar.timezone.local", "/mozilla.org/20070129_1/America/Montreal");

# configuration de la gestion des extensions
Ligne 276: Ligne 421:
    isi:updateURL="http://sogo.xx.auf.org/plugins/updates.php?plugin=%ITEM_ID%&amp;version=%ITEM_VERSION%&amp;platform=%PLATFORM%">     isi:updateURL="https://sogo.xx.auf.org/plugins/updates.py?plugin=%ITEM_ID%&amp;version=%ITEM_VERSION%&amp;platform=%PLATFORM%">
Ligne 295: Ligne 440:

jar cf sogo-integrator-3.105.xpi *
cp sogo-integrator-3.105.xpi /var/www/plugins
aptitude purge fastjar
# ATTENTION à bien adapter le `sogo.xx.auf.org` ci-dessus

jar cf ../sogo-integrator-3.106.xpi *
cd ..
rm -rf /srv/sogo-plugins/tmp

# Vérification :
# Il faut s'assurer que l'extension sogo-integrator a été bien configurée
# 1. aller sur https://sogo.xx.auf.org/plugins, télécharger sogo-integrator (bouton droit - enregistrer sous) et
# désarchiver et vérifier que le fichier chrome/content/extensions.rdf pointe bien sur votre serveur
# 2. voir la ligne : "isi:updateURL="https://sogo.xx.auf.org/plugins/updates.py?
# plugin=%ITEM_ID%&amp;version=%ITEM_VERSION%&amp;platform=%PLATFORM%">"
# AVEZ-VOUS REMPLACE LE xx (sogo.xx.auf.org) PAR VOTRE CODE PAYS ???????????
# si oui tout est bon, sinon recommencer les étapes ci-dessus
Ligne 301: Ligne 456:
 * pour ceux qui ont des clients BlackBerry : cf [[http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureInstallationFunambol|Procédure d'installation de Funambol]]

 * pour ceux qui ont des clients Iphone : cf [[http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureInstallationSOGo#CARDDAV_pour_les_Iphones|Procédure de configuration du CARDDAV pour les Iphones]]
Ligne 306: Ligne 457:
 /!\ '''RAPPEL :'''
 1. il faut installer la racine AUF sur tous les postes clients (dans thunderbird et dans firefox), voir http://wiki.auf.org/wikiteki/PKI#Pr.2BAOk-liminaire_:_installation_de_l.27AC_racine_dans_Firefox_et_Thunderbird
 1. Il faut absolument désactiver l'OCSP dans Firefox et Thunderbird : Edition -- préférences -- avancé -- [chiffrements / certificats] -- bouton "validation" et là TOUT désactiver (suffit de décocher la première case tout en haut à gauche)


 /!\ '''ATTENTION :''' faire une sauvegarde des carnets d'adresses locaux de Thunderbird _avant_ d'installer les extensions SOGo ! Il faut également supprimer les éventuels agendas réseau existants (sinon blocage au démarrage).
Ligne 313: Ligne 471:
 * via thunderbird : pour ce faire il faut installer des extensions dans thunderbird. Mais, avec le script de mise à jour (update.php), il suffit d'installer un seul (le `sogo-integrator`) qui se chargera de mettre les deux autres (`sogo-connector` et `lightning`) :
  * Télécharger `sogo-integrator` depuis http://sogo.xx.auf.org/plugins
 * via thunderbird : pour ce faire il faut installer des extensions dans thunderbird. Mais, avec le script de mise à jour (`updates.py`), il suffit d'installer un seul (le `sogo-integrator`) qui se chargera de mettre les deux autres (`sogo-connector` et `lightning`) :
  * Télécharger `sogo-integrator` depuis `https://sogo.xx.auf.org/plugins/`
Ligne 316: Ligne 474:
  * par défaut SOGo crée un agenda personnel pour chaque utilisateur. Renommer cet agenda en prenom.nom (clique droit-propriétés sur l'agenda personnel).
  * '''TRES IMPORTANT''' : faire un inventaire avec l'utilisateur pour savoir s'il a ou non des carnets d'adresses (surtout avec des alias) et/ou agendas locaux déjà existants (avant la mise en place de SOGo).
    Si tel est le cas, après la mise en place des extensions, il faut migrer ces objets sur le serveur SOGo ; cela se fait à coups d'export/import via des fichiers .ics pour l'agenda et .ldiff pour le carnet.

NB : la mise à jour des extensions étant centralisée et automatique, il vous faut, vous l'admin, suivre les évolutions, et mettre les nouvelles versions dans le dossier /var/www/plugins du serveur et modifier le script update.php (cf plus haut `gestion des extensions SOGo`)

 * ajouter un lien vers le site des agendas publics : http://agendas.auf.org

== Téléphones intelligents ==
 * IPHONE (réglages "Mail, Contacts, Calendriers", Autres)
   * agenda : ajouter un compte CalDAV
   * carnet d'adresses : ajouter un compte CardDAV (en passant par l'url carddav.sogo.xx.auf.org créer plus haut)
 * BLACKBERRY : passer par [[Projet/SOGo/ProcédureInstallationFunambol#Installation_du_client_funambol_sur_un_BlackBerry|le client FUNAMBOL pour BB]]
 * ANDROID : passer par [[Projet/SOGo/ProcédureInstallationFunambol#Installation_du_client_funambol_sur_un_BlackBerry|le client FUNAMBOL pour Androïd]]
  * vérifier dans les préférences de TB, onglet Lightning, le fuseau horaire, le premier jour de la semaine et les horaires de travail
  * vérifier dans les préférences de TB, onglet Rédaction > Adressage, le carnet d'adresse à utiliser pour la complétion automatique des adéls

 * par défaut SOGo crée un agenda et un carnet d'adresses personnels pour chaque utilisateur. Renommer cet agenda et ce carnet en prenom.nom (clique droit-propriétés sur l'objet).
  . ''Ne semble pas fonctionner via TB... À faire via l'interface web ? -- ProgFou''
 * '''TRES IMPORTANT''' : faire un inventaire avec l'utilisateur pour savoir s'il a ou non des carnets d'adresses (surtout avec des alias) et/ou agendas locaux déjà existants (avant la mise en place de SOGo).
  * convenir avec l’intéressé de quoi en faire :
   * migrer ces données dans l'agenda/carnet personnel SOGo ?
   * les archiver dans des objets distincts de l'agenda/carnet personnel SOGo (deuxième agenda/carnet) ?
   * les laisser en local (non accessible dans SOGo) ?
   * les virer ?
  * les migrations vers SOGo se font à coups d'export/import via des fichiers `.ics` pour l'agenda et `.ldiff` pour le carnet.

NB : la mise à jour des extensions étant centralisée et automatique, il vous faut, vous l'admin, suivre les évolutions, et mettre les nouvelles versions dans le dossier `/srv/sogo-plugins` du serveur et modifier le script `updates.py` (cf plus haut `gestion des extensions SOGo`)

 * ajouter un lien vers le site des agendas publics : http://agendas.auf.org/

== Configuration des téléphones intelligents ==

=== IPHONE ===

/!\ '''ATTENTION :''' iOS 4.0.1 et supérieurs, 3.x non supporté

==== ajout des agendas SOGo ====
 * aller dans ''Réglages > Mail, Contacts, Calendrier > Ajouter un compte > Autre > Ajouter un compte CalDAV'', puis :
  * Serveur : sogo.xx.auf.org ''(en ajustant le xx)''
  * Nom d'utilisateur : prenom.nom
  * Mot de passe : lavieestbelle!situn'ycomprendsrien
  * Description AuF - SOGo
 * vérifier dans les ''Réglages avancés'' que vous trouvez bien ces valeurs :
  * Utiliser SSL : activé
  * Port : 443 ''(et non pas 8443)''
  * URL du compte : `https://sogo.xx.auf.org:443/principals/users/prenom.nom`
 * /!\ attention à bien choisir de synchroniser __tous__ les évènements dans ''Mail, Contacts, Calendrier'' (tout en bas)
 * aller ensuite dans l'application ''Calendrier'' pour vérifier (onglet ''Calendriers'')

==== ajout des carnets d'adresses SOGo ====
 * aller dans ''Réglages > Mail, Contacts, Calendrier > Ajouter un compte > Autre > Ajouter un compte CardDAV'', puis :
  * Serveur : sogo.xx.auf.org ''(en ajustant le xx)''
  * Nom d'utilisateur : prenom.nom
  * Mot de passe : lavieestbelle!situn'ycomprendsrien
  * Description AuF - SOGo
 * vérifier dans les ''Réglages avancés'' que vous trouvez bien ces valeurs :
  * Utiliser SSL : activé
  * Port : 443 ''(et non pas 8443)''
 * aller ensuite dans l'application ''Contacts'' pour vérifier (onglet ''Groupes'')

=== BLACKBERRY ===

cf [[http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureInstallationFunambol|Procédure d'installation de Funambol]]

Passer par [[Projet/SOGo/ProcédureInstallationFunambol#Installation_du_client_funambol_sur_un_BlackBerry|le client FUNAMBOL pour BB]]

=== ANDROID ===

Utiliser les clients caldav et carddav pour Androïd (Note ([[MoussaNombre|NM]]@03/02/2012 : solution recommandée par Inverse -http://www.sogo.nu/english/downloads/frontends.html-, mais non encore testée) :
 * [[http://dmfs.org/caldav/|CalDAV-Sync]]
 * [[http://dmfs.org/carddav/|CardDAV-Sync]]

== Liste de vérifications ==
Remplir le tableau suivant : http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureDéploiement/ListeDeVérification

== Mise à jour des serveurs SOGo ==

=== Côté central : suivi de l'évolution de SOGo ===
 Afin de mieux suivre l'évolution de SOGo et de s'assurer de la stabilité des nouvelles versions (améliorations et absence de régression) avant leur mise en production chez nous, nous avons mis en place un miroir du dépôt SOGo.

Procédure pour le suivi des versions :
 * dans un CT de test, utiliser la source directe de Inverse.ca
 * valider dans ce CT les améliorations et l'absence de régression
 * lancer la mise à jour du dépôt APT avec "sudo debmirror-sogo.sh"
 * avertir les RTR qu'une mise à jour leur sera proposée par aptitude
 * suivre le déploiement de la mise à jour sur tous les sites

=== Côté serveur SOGo (par chaque responsable de serveur SOGo) ===
Pour mettre à jour tout serveur SOGo, à l'AUF :

 Dès réception de l'annonce de la disponibilité d'une nouvelle version :

 * s'assurer que la source utilisée dans le fichier `/etc/apt/sources.list` est bien celle de l'AUF :
  {{{
deb http://apt.auf.org/ squeeze auf sogo
  }}}
  et que celle de Inverse a été supprimée ("deb http://inverse.ca/debian squeeze squeeze")

  __NB__ : évidemment, ceci, est à faire une seule fois ; pas besoin de le reprendre chaque fois. Outre le fait de vérifier qu'on a la bonne source, tout le reste se fait comme d'habitude, comme pour tout autre serveur Debian.

 * `aptitude update`

 * `aptitude safe-upgrade`

Procédure de déploiement du système SOGo

Côté serveur

Les prérequis serveur

  • Un serveur virtuel avec :
    • Intel, AMD or PowerPC CPU 3 GHz (côté HN)
    • minimum 2048 MB of RAM
    • minimum 3 GB d'espace disque
  • un serveur imap
  • un serveur smtp

Installation et configuration du serveur

  • créez et configurez un serveur virtuel de base à votre sauce
  • exemple de partitionnement recommandé :
    • 2 Go pour / (obligatoire)
    • 1 Go pour /var (optionnel)
    • 1 Go pour /var/log (recommandé)
    • 1 Go pour /var/lib/mysql (obligatoire)
    • 3 Go pour /opt (dans le cas d'une installation de Funambol)
  • une idée des haricots (beancounters) sur le SOGo de Montréal : Projet/SOGo/BeanCounterServeurDeMontreal

  • reconfigurer les locales :
    • # les locales
      # sélectionner fr_FR.UTF-8 + la langue locale
      # et choisir celle qu'on veut par défaut, à condition que ce soit en .UTF-8
      
      dpkg-reconfigure locales
      
      . /etc/environment
      . /etc/default/locale
      export LANG
  • reconfigurer le fuseau horaire :
    • dpkg-reconfigure tzdata

mise en place d'Apache

  • # installer apache2 + config Unicode + SSL + activation modules
    aptitude install apache2 apache2-mpm-prefork
    
    # supprimer PHP5 si vous l'aviez insallé
    aptitude purge php5 libapache2-mod-php5
    
    sed -i '/^#AddDefaultCharset/c AddDefaultCharset UTF-8' /etc/apache2/conf.d/charset
    
    a2enmod mime
    
    # Configuration Apache2 en mode ssl :
    # - pour la création du certif dans IGC (http://igc.auf.org),
    #   voir http://wiki.auf.org/wikiteki/PKI/CréationCertificatServeurSSL
    # - installer la racine AUF sur tous les postes clients (dans thunderbird et dans firefox),
    #   voir http://wiki.auf.org/wikiteki/PKI#Pr.2BAOk-liminaire_:_installation_de_l.27AC_racine_dans_Firefox_et_Thunderbird
    
    a2enmod ssl
    
    cat > /etc/apache2/sites-available/sogo.xx.auf.org << __EOF__
    <VirtualHost *:80>
            ServerName sogo.xx.auf.org
            ServerAdmin rtr+sogo@xx.auf.org
            DocumentRoot /var/www
            ErrorLog \${APACHE_LOG_DIR}/sogo.xx.auf.org-error.log
            CustomLog \${APACHE_LOG_DIR}/sogo.xx.auf.org-access.log combined
            RedirectMatch ^/$ https://sogo.xx.auf.org/SOGo
    </VirtualHost>
    __EOF__
    
    cat > /etc/apache2/sites-available/sogo.xx.auf.org-ssl << __EOF__
    <IfModule mod_ssl.c>
    <VirtualHost _default_:443>
            ServerName sogo.xx.auf.org
            ServerAdmin rtr+sogo@xx.auf.org
            Alias /plugins /srv/sogo-plugins/
            <Directory /srv/sogo-plugins/>
                    Options +ExecCGI
                    AddHandler cgi-script .py
            </Directory>
            RedirectMatch ^/$ https://sogo.xx.auf.org/SOGo
            # pour l'auto-détection par les iPhone
            RedirectMatch ^/principals/users/(.*)$ https://sogo.xx.auf.org/SOGo/dav/$1
            RedirectMatch ^/principals/$ https://sogo.xx.auf.org/SOGo/dav/
            RedirectMatch ^/.well-known/(caldav|carddav)$ https://sogo.xx.auf.org/SOGo/dav/
            ErrorLog \${APACHE_LOG_DIR}/sogo.xx.auf.org-ssl-error.log
            CustomLog \${APACHE_LOG_DIR}/sogo.xx.auf.org-ssl-access.log combined
    
            SSLEngine on
            SSLCertificateFile    /etc/ssl/certs/sogo.xx.auf.org-cert.pem
            SSLCertificateKeyFile /etc/ssl/private/sogo.xx.auf.org-key.pem
            SSLCACertificateFile  /etc/ssl/certs/AC-AUF-RACINE+BA.pem       # changer la région
            SSLVerifyClient None
    </VirtualHost>
    </IfModule>
    __EOF__
    
    # installer les sites
    a2ensite sogo.xx.auf.org
    a2ensite sogo.xx.auf.org-ssl
    a2dissite default
    
    # activer les modules requis par SOGo
    a2enmod headers
    a2enmod rewrite
    a2enmod proxy_http
    
    # relancer Apache
    service apache2 restart

mise en place de mysql

  • # installer MySQL + config Unicode
    aptitude install mysql-server
    
    cat > /root/.my.cnf  << __EOF__
    [client]
    password = "mot-de-passe-super-complique"   #idem que celui tapé lors de l'installation du paquet mysql-server-5.1 précédemment
    __EOF__
    chmod 0600 /root/.my.cnf
    
    cat > /etc/mysql/conf.d/local.cnf << __EOF__
    [mysqld]
    # par défaut du côté serveur
    default-character-set = utf8
    #character-set-server = utf8
    
    # à exécuter pour tous les clients (indispensable pour PHP 4, au moins)
    init-connect = 'SET NAMES utf8'
    
    language = /usr/share/mysql/french
    
    bind-address = 0.0.0.0
    
    # log_slow_queries = /var/log/mysql/mysql-slow.log
    # log_bin = /var/log/mysql/mysql-bin.log
    log        = /var/log/mysql/mysql.log
    
    # max_connections = 500
    
    [mysqldump]
    default-character-set = utf8
    
    [mysql]
    # par défaut du côté client (pour root, qui ne subit pas le init-connect)
    default-character-set = utf8
    __EOF__
    
    # relancer mysql
    service mysql restart

installation de SOGo

  • # ajout du dépôt inverse
    echo "deb http://apt.auf.org/ squeeze auf sogo" >> /etc/apt/sources.list
    
    aptitude update
    
    aptitude install --without-recommends sogo memcached
    
    # corriger memcached pour sogo
    sed -i -e "s/127.0.0.1/localhost/" /etc/memcached.conf
    
    service memcached restart
    
    # On met le nom du serveur SOGo dans apache en gardant le HTTPS
    sed -i -e "s/yourhostname/sogo.ca.auf.org/g" /etc/apache2/conf.d/SOGo.conf
    
    # au passage, suite à l'alerte lors de l'installation
    sed -i -e "s/^SHOWWARNING/#SHOWWARNING=true/g" /etc/tmpreaper.conf
    
    
    # base de données
    cat > /root/sogo-bdd.sql << __EOF__
    CREATE DATABASE sogo DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
    GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'localhost' IDENTIFIED BY 'xxxxxxxxxxxxxxxx'; -- pour les tests
    GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'sogo.xx.auf.org'  IDENTIFIED BY 'xxxxxxxxxxxxxxx'; -- attention à bien changer le 'xx' ici
    GRANT SELECT,INSERT,UPDATE,DELETE ON sogo.* TO 'sogo'@'sogo.%.auf.org'  IDENTIFIED BY 'xxxxxxxxxxxxxxx'; -- autoriser les autres SOGo à accéder à notre sogo
    
    # mettre un enregistrement reverse dans son dns pour son sogo.xx.auf.org
    
    USE sogo;
    
    CREATE TABLE auf_users (
      c_uid varchar(255) NOT NULL,
      c_name varchar(255) DEFAULT NULL,
      c_password varchar(255) DEFAULT NULL,
      c_cn varchar(255) DEFAULT NULL,
      mail varchar(255) DEFAULT NULL,
      mail_pays varchar(255) DEFAULT NULL,
      givenname varchar(64) DEFAULT NULL,
      sn varchar(64) DEFAULT NULL,
      department varchar(255) DEFAULT NULL,
      title varchar(255) DEFAULT NULL,
      telephonenumber varchar(16) DEFAULT NULL,
      source varchar(64) DEFAULT 'LOCAL',
      PRIMARY KEY (c_uid)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
    
    __EOF__
    
    # le reste des tables sera créé par SOGo lui-même.
    
    mysql < /root/sogo-bdd.sql
    
    # configuration SOGo
    # Il faut lancer le service sogo avant la configuration, sinon au lancement, après configuration, il créera un fichier "vide" en écrasant nos config
    
    service sogo stop ; sleep 10 ; service sogo start
    
    cat > /root/sogo-config.sh << __EOF__
    defaults -u sogo write sogod SOGoMailDomain auf.org
    defaults -u sogo write sogod SOGoMailingMechanism smtp
    defaults -u sogo write sogod SOGoSMTPServer smtp.xx.auf.org
    defaults -u sogo write sogod SOGoLanguage French
    defaults -u sogo write sogod SOGoTimeZone xxxxxxxxxxxxx/xxxxxxxxxxxxx # America/Montreal
    defaults -u sogo write sogod SOGoEnableEMailAlarms YES
    defaults -u sogo write sogod OCSSessionsFolderURL mysql://sogo:xxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/sogo_sessions_folder
    defaults -u sogo write sogod OCSFolderInfoURL mysql://sogo:xxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/sogo_folder_info
    defaults -u sogo write sogod SOGoProfileURL mysql://sogo:xxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/sogo_user_profile
    defaults -u sogo write sogod OCSEMailAlarmsFolderURL mysql://sogo:xxxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/sogo_alarms_folder
    defaults -u sogo write sogod SOGoIMAPServer imaps://imap.xx.auf.org:993
    # pour un serveur en imap
    # defaults -u sogo write sogod SOGoIMAPServer imap.xx.auf.org
    defaults -u sogo write sogod SOGoCalendarDefaultRoles '("PublicViewer","ConfidentialDAndTViewer")'
    defaults -u sogo write sogod SOGoDayStartTime 9
    defaults -u sogo write sogod SOGoDayEndTime 17
    defaults -u sogo write sogod SOGoFirstDayOfWeek 1
    defaults -u sogo write sogod SOGoBusyOffHours YES
    defaults -u sogo write sogod SOGoDefaultCalendar personal
    defaults -u sogo write sogod SOGoMailAuxiliaryUserAccountsEnabled YES
    defaults -u sogo write sogod SOGoPageTitle 'SOGo - AUF xxxxxNOM_BUREAUxxxxxx'
    defaults -u sogo write sogod SOGoEnablePublicAccess YES
    defaults -u sogo write sogod SOGoForceIMAPLoginWithEmail YES
    defaults -u sogo write sogod SOGoFaviconRelativeURL http://www.auf.org/favicon.ico
    defaults -u sogo write sogod SOGoSuperUsernames '('username_de_l_admin')'
    defaults -u sogo write sogod SOGoAppointmentSendEMailNotifications YES
    defaults -u sogo write sogod SOGoSieveServer sieve://imap.XX.auf.org:4190/?tls=YES
    defaults -u sogo write sogod SOGoSieveScriptsEnabled YES
    
    defaults -u sogo write sogod SOGoUserSources '(
        {
            id = public;
            displayName = ANNUAIRE-AUF;
            type = sql;
            canAuthenticate = YES;
            isAddressBook = YES;
            LoginFieldNames = (c_uid, mail_pays);
            userPasswordAlgorithm = crypt;
            viewURL = "mysql://sogo:xxxxxxxxxxxxxxx@sogo.xx.auf.org:3306/sogo/auf_users";
            IMAPLoginFieldName = mail_pays;
            authenticationFilter = "source='\''LOCAL'\''";
        }
    )'
    __EOF__
    
    # NB : adpater les champs suivants :
    #  - code pays (deux caractères, ex. ca)
    #  - serveur smtp
    #  - serveur imap
    #  - mot de passe du compte d'accès à la base de données sogo
    #  - le mot de passe mysql de sogo est celui définit lors de la configuration de la base de données sogo, plus haut
    
    service sogo stop
    
    sh /root/sogo-config.sh
    
    # augmenter le nombre d'instances de sogo
    sed -i '/^# PREFORK/c PREFORK=5' /etc/default/sogo
    
    
    # corriger l'ordre de démarrage pour que SOGo soit lancé après mysql et non avant
    if ! grep -q 'Required-Start:.* mysql' /etc/init.d/sogo ; then
      sed -i -e '/^# Required-Start:/s/$/ mysql/' /etc/init.d/sogo
    fi
    
    insserv sogo
    
    service sogo start
    
    # Relancer Apache
    service apache2 restart
  • A ce stade, SOGo est prêt et fonctionnel. Pour tester :
    • ouvrir un navigateur et aller à https://sogo.xx.auf.org/

    • on ne peut pas se connecter, car les comptes utilisateurs ne sont pas encore créés.

synchronisations

  • Inter-implantation et synchronisation des comptes utilisateurs (prenom.nom@auf.org + mot de passe associé)

  • installation paquet debian développé par ProgFou : sogocentral-clients

    • echo "deb http://apt.auf.org squeeze auf" >> /etc/apt/sources.list
      aptitude install auf-keyring
      aptitude update
      aptitude install sogocentral-clients
      
      # reprendre le modèle de configuration MySQL
      cp /usr/share/doc/sogocentral-clients/mysql.sql /root/
      edit /root/mysql.sql # bien lire et adapter ce qu'il faut
      mysql sogo < /root/mysql.sql
      
      # lancer une première synchro (un cron tourne à chaque heure pour le reste)
      sogocentral-sync -v
    NB : (fichier de config /etc/sogocentral/config.py)
    • Progfou : j'ai aussi désactivé par défaut l'utilisation du login local venant de la gestion des alias, 
                puisqu'on sait que cela pose des problèmes avec SOGo
                  => par  défaut ça mettra le prenom.nom dans mail_pays maintenant, 
                     sauf si on fixe USE_LOCAL_LOGIN = True dans /etc/sogocentral/config.py
  • génération des entrées dns pour /etc/hosts (régler les problèmes de DNS inverse pas toujours disponibles)
    • sogocentral-gen-hosts >> /etc/hosts
      edit /etc/hosts # vérifier et supprimer le doublon sur votre serveur local
  • génération des régles pour le parefeu (faciliter l'ouverture des filtrages pour les serveurs SOGo)
    • sogocentral-gen-iptables >> /etc/network/firewall-sogo
      # ajouter ce fichier dans votre fichier principal de règles iptables, quelque part au début
      # insérer la dernière régle générée (et en commentaire) dans votre fichier principal de règles iptables après le fichier.
      # relancer les règles iptables
  • vérifier s'il manque des tables sogo dans mysql : sogocentral-check

  • fichiers de log : /var/log/sogocentral/*.log

personnalisation de la page d'accueil

  • mkdir -p /home/sogo/GNUstep/Library/SOGo/Templates/MainUI
    
      # télécharger ces deux fichiers (template modifié et styles)
    wget --user-agent="Client-sogo-config" -O /home/sogo/GNUstep/Library/SOGo/Templates/MainUI/SOGoRootPage.wox "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=SOGoRootPage.wox"
    wget --user-agent="Client-sogo-config" -O /home/sogo/GNUstep/Library/SOGo/Templates/MainUI/SOGoRootPage.css "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=SOGoRootPage.css"
      # remplacer "Amériques et Caraïbes" par votre région dans le fichier SOGoRootPage.wox
    
      # télécharger les logos
    wget --user-agent="Client-sogo-config" -O /usr/lib/GNUstep/SOGo/WebServerResources/logo_auf.png "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=logo_auf.png"
    wget --user-agent="Client-sogo-config" -O /usr/lib/GNUstep/SOGo/WebServerResources/sogo-logo-petit.png "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=sogo-logo-petit.png"

création de comptes génériques pour les agendas publics

  • création du compte (remplacer les variables ci-dessous par les bonnes valeurs)
    • INSERT INTO auf_users VALUES ('agenda.[ville_bureau]','agenda.[ville_bureau]',ENCRYPT('[mot_de_passe]'),'Agendas public [nom_bureau]','agenda.[ville_bureau]@xx.auf.org','agenda.[ville_bureau]@xx.auf.org','Agendas public','[nom_bureau]','AUF','[nom_bureau]','[num_tel]','LOCAL');
  • contacter la personne qui a été désigné par l'administration pour gérer les agendas publics et lui donner les codes d'accès :
    • elle doit se connecter avec ces codes via sogo web (agenda.[ville_bureau] et son [mot_de_passe])
    • créer les agendas publics nécessaires en veillant à bien commencer par le nom de la ville : [ville_bureau]-Absences-Missions et [ville_bureau]-Evenements (exemples : Paris-Evenements et Paris-Absences-Missions).

      • NB : Commencer par ceux du bureau régional, les autres seront ajoutés au besoin
    • elle va ensuite dans l'option partage pour chacun de ces agendas et s'accorde les droits (tous les droits) à elle-même ou à une autre personne déléguée pour tel ou tel autre agenda ; cela pour pouvoir accéder aux agendas publics depuis son compte personnel sans être obligé de se connecter avec le compte générique.
      • NB : on peut très bien choisir/préférer utiliser directement le compte générique plutôt que de devoir s'abonner aux agendas publics.
    • règles importantes dans la création des évènements : préfixer les évènements par leur intitulé explicite. Exemple :
      • Mission - Moussa Nombré (Bucarest) # on indique le lieu de la mission entre parenthèses
      • Férié - (BAO) - Fête du travail
      • Absence - Christine Legris

gestion des extensions SOGo

  • (extensions pour le client Thunderbird + script de mise à jour)
    mkdir /srv/sogo-plugins
    cd /srv/sogo-plugins
    
    # récupération du script de mise à jour
    wget --user-agent="Client-sogo-config" -O updates.py "http://wiki.auf.org/wikiteki/Projet/SOGo/Proc%C3%A9dureD%C3%A9ploiement?action=AttachFile&do=get&target=updates.py"
    # le rendre exécutable
    chmod a+x /srv/sogo-plugins/updates.py
    # et modifier la ligne 'BASE_URL = "https://sogo.vn.auf.org/plugins"' en remplaçant le 'vn'  par le bon code pays
    
    # récupération des extensions
    wget --user-agent="Client-sogo-config" -O sogo-connector-3.106.xpi http://www.sogo.nu/files/downloads/extensions/sogo-connector-3.106.xpi
    wget --user-agent="Client-sogo-config" -O lightning-1.0b2.106i.xpi http://www.sogo.nu/files/downloads/extensions/lightning-1.0b2.106i_linux-i686.xpi
    
    # installation d'un utilitaire pour manipuler les .xpi
    aptitude install fastjar
    
    # adpatation du sogo-integrator
    wget --user-agent="Client-sogo-config" -O sogo-integrator-3.106.xpi http://www.sogo.nu/files/downloads/extensions/sogo-integrator-3.106-sogo-demo.xpi
    mkdir tmp
    cd tmp
    jar xf ../sogo-integrator-3.106.xpi
    
    # configuration des valeurs par défaut pour Lightning
    edit defaults/preferences/site.js
    # retirer la ligne suivante :
    #   pref("calendar.timezone.local", "/mozilla.org/20070129_1/America/Montreal");
    
    # configuration de la gestion des extensions
    rm chrome/content/extensions.rdf
    cat > chrome/content/extensions.rdf << __EOF__
    <?xml version="1.0"?>
    <!DOCTYPE RDF>
    <RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xmlns:isi="http://inverse.ca/sogo-integrator/"
      xmlns:em="http://www.mozilla.org/2004/em-rdf#"
      xmlns:NC="http://home.netscape.com/NC-rdf#">
      <Seq about="http://inverse.ca/sogo-integrator/extensions"
        isi:updateURL="https://sogo.xx.auf.org/plugins/updates.py?plugin=%ITEM_ID%&amp;version=%ITEM_VERSION%&amp;platform=%PLATFORM%">
        <li>
          <Description
            em:id="sogo-integrator@inverse.ca"
            em:name="SOGo Integrator"/>
        </li>
        <li>
          <Description
            em:id="sogo-connector@inverse.ca"
            em:name="SOGo Connector"/>
        </li>
        <li>
          <Description
            em:id="{e2fda1a4-762b-4020-b5ad-a41df1933103}"
            em:name="Lightning"/>
        </li>
      </Seq>
    </RDF>
    __EOF__
    # ATTENTION à bien adapter le `sogo.xx.auf.org` ci-dessus
    
    jar cf ../sogo-integrator-3.106.xpi *
    cd ..
    rm -rf /srv/sogo-plugins/tmp
    
    # Vérification :
    # Il faut s'assurer que l'extension sogo-integrator a été bien configurée
    # 1. aller sur https://sogo.xx.auf.org/plugins, télécharger sogo-integrator (bouton droit - enregistrer sous) et
    #    désarchiver et vérifier que le fichier chrome/content/extensions.rdf pointe bien sur votre serveur
    # 2. voir la ligne : "isi:updateURL="https://sogo.xx.auf.org/plugins/updates.py?
    #    plugin=%ITEM_ID%&amp;version=%ITEM_VERSION%&amp;platform=%PLATFORM%">"
    # AVEZ-VOUS REMPLACE LE xx (sogo.xx.auf.org) PAR VOTRE CODE PAYS ???????????
    # si oui tout est bon, sinon recommencer les étapes ci-dessus

Côté poste de travail

  • /!\ RAPPEL :

  • il faut installer la racine AUF sur tous les postes clients (dans thunderbird et dans firefox), voir http://wiki.auf.org/wikiteki/PKI#Pr.2BAOk-liminaire_:_installation_de_l.27AC_racine_dans_Firefox_et_Thunderbird

  • Il faut absolument désactiver l'OCSP dans Firefox et Thunderbird : Edition -- préférences -- avancé -- [chiffrements / certificats] -- bouton "validation" et là TOUT désactiver (suffit de décocher la première case tout en haut à gauche)

    /!\ ATTENTION : faire une sauvegarde des carnets d'adresses locaux de Thunderbird _avant_ d'installer les extensions SOGo ! Il faut également supprimer les éventuels agendas réseau existants (sinon blocage au démarrage). Nous avons deux modes d'accès à SOGo :

  • via le web : https://sogo.xx.auf.org. Il faut sur chaque poste :

    • ajouter un raccourci firefox vers ce lien
    • ajouter ce lien dans les favoris
    • ajouter ce lien dans le menu AUF de la région
  • via thunderbird : pour ce faire il faut installer des extensions dans thunderbird. Mais, avec le script de mise à jour (updates.py), il suffit d'installer un seul (le sogo-integrator) qui se chargera de mettre les deux autres (sogo-connector et lightning) :

    • Télécharger sogo-integrator depuis https://sogo.xx.auf.org/plugins/

    • aller dans TB et installer cette extension. TB va redémarrer une fois tout seul ; après quoi toutes les 3 extensions sont installées et fonctionnelles.
    • vérifier dans les préférences de TB, onglet Lightning, le fuseau horaire, le premier jour de la semaine et les horaires de travail
    • vérifier dans les préférences de TB, onglet Rédaction > Adressage, le carnet d'adresse à utiliser pour la complétion automatique des adéls

  • par défaut SOGo crée un agenda et un carnet d'adresses personnels pour chaque utilisateur. Renommer cet agenda et ce carnet en prenom.nom (clique droit-propriétés sur l'objet).
    • Ne semble pas fonctionner via TB... À faire via l'interface web ? -- ProgFou

  • TRES IMPORTANT : faire un inventaire avec l'utilisateur pour savoir s'il a ou non des carnets d'adresses (surtout avec des alias) et/ou agendas locaux déjà existants (avant la mise en place de SOGo).

    • convenir avec l’intéressé de quoi en faire :
      • migrer ces données dans l'agenda/carnet personnel SOGo ?
      • les archiver dans des objets distincts de l'agenda/carnet personnel SOGo (deuxième agenda/carnet) ?
      • les laisser en local (non accessible dans SOGo) ?
      • les virer ?
    • les migrations vers SOGo se font à coups d'export/import via des fichiers .ics pour l'agenda et .ldiff pour le carnet.

NB : la mise à jour des extensions étant centralisée et automatique, il vous faut, vous l'admin, suivre les évolutions, et mettre les nouvelles versions dans le dossier /srv/sogo-plugins du serveur et modifier le script updates.py (cf plus haut gestion des extensions SOGo)

Configuration des téléphones intelligents

IPHONE

/!\ ATTENTION : iOS 4.0.1 et supérieurs, 3.x non supporté

ajout des agendas SOGo

  • aller dans Réglages > Mail, Contacts, Calendrier > Ajouter un compte > Autre > Ajouter un compte CalDAV, puis :

    • Serveur : sogo.xx.auf.org (en ajustant le xx)

    • Nom d'utilisateur : prenom.nom
    • Mot de passe : lavieestbelle!situn'ycomprendsrien
    • Description AuF - SOGo
  • vérifier dans les Réglages avancés que vous trouvez bien ces valeurs :

    • Utiliser SSL : activé
    • Port : 443 (et non pas 8443)

    • URL du compte : https://sogo.xx.auf.org:443/principals/users/prenom.nom

  • /!\ attention à bien choisir de synchroniser tous les évènements dans Mail, Contacts, Calendrier (tout en bas)

  • aller ensuite dans l'application Calendrier pour vérifier (onglet Calendriers)

ajout des carnets d'adresses SOGo

  • aller dans Réglages > Mail, Contacts, Calendrier > Ajouter un compte > Autre > Ajouter un compte CardDAV, puis :

    • Serveur : sogo.xx.auf.org (en ajustant le xx)

    • Nom d'utilisateur : prenom.nom
    • Mot de passe : lavieestbelle!situn'ycomprendsrien
    • Description AuF - SOGo
  • vérifier dans les Réglages avancés que vous trouvez bien ces valeurs :

    • Utiliser SSL : activé
    • Port : 443 (et non pas 8443)

  • aller ensuite dans l'application Contacts pour vérifier (onglet Groupes)

BLACKBERRY

cf Procédure d'installation de Funambol

Passer par le client FUNAMBOL pour BB

ANDROID

Utiliser les clients caldav et carddav pour Androïd (Note (NM@03/02/2012 : solution recommandée par Inverse -http://www.sogo.nu/english/downloads/frontends.html-, mais non encore testée) :

Liste de vérifications

Remplir le tableau suivant : http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureDéploiement/ListeDeVérification

Mise à jour des serveurs SOGo

Côté central : suivi de l'évolution de SOGo

  • Afin de mieux suivre l'évolution de SOGo et de s'assurer de la stabilité des nouvelles versions (améliorations et absence de régression) avant leur mise en production chez nous, nous avons mis en place un miroir du dépôt SOGo.

Procédure pour le suivi des versions :

  • dans un CT de test, utiliser la source directe de Inverse.ca
  • valider dans ce CT les améliorations et l'absence de régression
  • lancer la mise à jour du dépôt APT avec "sudo debmirror-sogo.sh"
  • avertir les RTR qu'une mise à jour leur sera proposée par aptitude
  • suivre le déploiement de la mise à jour sur tous les sites

Côté serveur SOGo (par chaque responsable de serveur SOGo)

Pour mettre à jour tout serveur SOGo, à l'AUF :

  • Dès réception de l'annonce de la disponibilité d'une nouvelle version :
  • s'assurer que la source utilisée dans le fichier /etc/apt/sources.list est bien celle de l'AUF :

    • deb http://apt.auf.org/ squeeze auf sogo

      et que celle de Inverse a été supprimée ("deb http://inverse.ca/debian squeeze squeeze")

      NB : évidemment, ceci, est à faire une seule fois ; pas besoin de le reprendre chaque fois. Outre le fait de vérifier qu'on a la bonne source, tout le reste se fait comme d'habitude, comme pour tout autre serveur Debian.

  • aptitude update

  • aptitude safe-upgrade


Projet/SOGo/ProcédureDéploiement (dernière édition le 2015-03-24 09:21:17 par WillyManga)