14420
Commentaire: facilite l'accès aux différentes sections
|
21637
Mise à jour
|
Texte supprimé. | Texte ajouté. |
Ligne 1: | Ligne 1: |
#acl GroupeAUF:read,write | #acl GroupeAUF:read,write All:read |
Ligne 10: | Ligne 10: |
* Un serveur virtuel avec : | ==== Serveurs ==== * Un serveur virtuel avec : |
Ligne 14: | Ligne 15: |
* 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 ==== Synchronisation des comptes utilisateurs (prenom.nom@auf.org + mot de passe associé) ==== __NB__ : avant tout, contactez MoussaNombre et/ou ProgFou pour les accès à la base de données centrale (vous devriez leur donner l'adresse IP du serveur qui roulera la synchro : une IP de votre RPV) {{{ # récupérer le script wget -O /usr/local/sbin/synchro-auf-refer-sogo-users.py "http://git.auf.org/?p=codes-mnombre.git;a=blob_plain;f=synchro-auf-refer-sogo-users.py;hb=8872fb6011ebc691cc41bad449e5db3bc2009151" # adapter le script : codes d'accès à votre base de données SOGo, la liste des pays de votre Bureau # ajouter à ses sources : echo "deb http://apt.auf.org/ lenny auf" >> /etc/apt/sources.list # gardez bien le "lenny" même sous squeeze car le paquet n'est pas encore publié dans Squeeze). # Ensuite, installer auf_refer aptitude update aptitude install auf-refer # pour avoir toutes les données (notamment les mots de passe),il faut avoir fourni son IP à MoussaNombre ou Progfou # s'abonner à la source de données d'authentification sudo auf-refer -a annuaire.json # vérifier que l'on a bien des champs 'mdp' et 'login' bien remplis sudo auf-refer -c annuaire.json # pour forcer une mise à jour de la copie locale (sinon c'est fait à 7h et 13h chaque jour) sudo auf-refer -u annuaire.json # vu que la base de données sogo ne sera créée que plus tard, on ne peut pas tester pour le moment. cf plus bas pour la suite # créer une tâche planifié cat > /etc/cron.d/synchro-auf-refer-sogo-users << __EOF__ MAILTO=root+sogo@xx.auf.org 0 * * * * root python /usr/local/sbin/synchro-auf-refer-sogo-users.py __EOF__ }}} |
Ligne 21: | Ligne 55: |
* exemple de partitionnement recommandé : * 1 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]] |
|
Ligne 22: | Ligne 64: |
dans un objectif SSL et PHP5 (installe le mpm-prefork au lieu du mpm-worker par défaut) |
|
Ligne 24: | Ligne 68: |
aptitude install apache2 |
aptitude install apache2 libapache2-mod-php5 sed -i '/^#AddDefaultCharset/c AddDefaultCharset UTF-8' /etc/apache2/conf.d/charset |
Ligne 27: | Ligne 72: |
sed -i '/^#AddDefaultCharset/c AddDefaultCharset UTF-8' /etc/apache2/conf.d/charset | |
Ligne 39: | Ligne 83: |
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 56: | Ligne 100: |
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 70: | Ligne 114: |
a2enmod proxy | #a2enmod proxy A VERIFIER |
Ligne 76: | Ligne 121: |
* création du certificat dans la PKI AUF : | * création du certificat dans la PKI AUF : |
Ligne 79: | Ligne 124: |
* redémarrer apache | * redémarrer apache : `service apache2 restart` |
Ligne 84: | Ligne 129: |
aptitude install mysql-server-5.1 | aptitude install mysql-server |
Ligne 90: | Ligne 135: |
chmod 0600 /root/.my.cnf | |
Ligne 92: | Ligne 138: |
[client] # l'option suivante semble gêner quelques outils, comme mysqlbinlog #default-character-set = utf8 |
|
Ligne 110: | Ligne 152: |
log = /var/log/mysql/mysql.log | general_log = /var/log/mysql/mysql.log |
Ligne 136: | Ligne 178: |
aptitude install sogo memcached | aptitude install --without-recommends sogo memcached |
Ligne 141: | Ligne 183: |
# On met le nom du serveur SOGo dans apache en gardant le HTTPS | service memcached restart # On met le nom du serveur SOGo dans apache en gardant le HTTPS |
Ligne 145: | Ligne 189: |
sed -i -e "s/^SHOWWARNING/#SHOWWARNING=true/g" /etc/tmpreaper.conf | sed -i -e "s/^SHOWWARNING/#SHOWWARNING=true/g" /etc/tmpreaper.conf |
Ligne 148: | Ligne 193: |
cat > /tmp/sogo-bdd.sql << __EOF__ | cat > /root/sogo-bdd.sql << __EOF__ |
Ligne 152: | Ligne 197: |
GRANT select ON sogo.* TO 'sogo'@'sogo.%.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxx'; # autoriser les autres SOGo à se connecter sur notre sogo # mettre un enregistrement reverse dans son dns pour son sogo.xx.auf.org |
|
Ligne 175: | Ligne 223: |
mysql < /tmp/sogo-bdd.sql | mysql < /root/sogo-bdd.sql |
Ligne 179: | Ligne 227: |
/etc/init.d/sogo restart cat > /tmp/config_sogo.sh << __EOF__ |
service sogod start ; sleep 10 ; service sogod stop cat > /root/config_sogo.sh << __EOF__ |
Ligne 208: | Ligne 256: |
{ | { |
Ligne 214: | Ligne 262: |
userPasswordAlgorithm = md5; | userPasswordAlgorithm = crypt; |
Ligne 217: | Ligne 265: |
authenticationFilter = "(mail_pays like '\''%@xx.auf.org'\'' or mail_pays like '\''%@yy.auf.org'\'')"; | authenticationFilter = "source='\''LOCAL'\''"; |
Ligne 227: | Ligne 275: |
# - l'ensemble des pays couverts par ce sogo, au besoin ajouter des " or mail_pays like '\''%@zz.auf.org'\''" | |
Ligne 230: | Ligne 277: |
sh /tmp/config_sogo.sh /etc/init.d/sogo restart |
service sogo stop sh /root/config_sogo.sh # 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 |
Ligne 235: | Ligne 290: |
* lancer la synchro des comptes pour remplir la table `auf_users` |
* lancer la synchro des comptes pour remplir la table `auf_users` `python /usr/local/sbin/synchro-auf-refer-sogo-users.py` |
Ligne 240: | Ligne 295: |
* accepter le certificat | * accepter le certificat |
Ligne 243: | Ligne 298: |
* au reboot du serveur, sogo est démarré avant mysql (S01sogo et S03mysql). . Ce n'est pas gênant, vu qu'à la première connexion/requête la connexion sera établie avec la BdD. * 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 |
==== synchronisation inter-implantation ==== * la synchronisation On utilise le paquet 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 # au besoin, faire "Y" pour accepter le nouveau fichier de config # après l'installation du paquet rm /usr/local/sbin/sogocentral /etc/cron.d/sogocentral # créer les comptes mysql echo "GRANT SELECT,INSERT,DELETE,UPDATE ON sogo.* TO 'sogocentral'@'localhost' IDENTIFIED BY 'xxxxxxxxxxxxxxxx';" | mysql echo "GRANT SELECT ON sogo.* TO 'sogo-remote-ro'@'sogo.%.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxxx';" | mysql # Modifier le fichier /etc/sogocentral/config.py # mettre à jour les lignes : # SITE_NAME = 'sogo.xx.auf.org' # SITE_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # SOGO_PASS = 'xxxxxxxxxxxxxxxx' # SOGO_REMOTE_PASS = 'xxxxxxxxxxxxxxxx' # lancer une première synchro (un cron tourne à chaque heure pour le reste) sogocentral-sync }}} * 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 # vérifier et supprimer au besoin 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 }}} ==== personnalisation de la page d'accueil ==== ## [[attachment:SOGoRootPage.wox|fichier template]] et [[attachment:SOGoRootPage.css|fichier css]] {{{ # télécharger ces deux fichiers 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 |
Ligne 329: | Ligne 450: |
* '''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. |
* '''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. |
Ligne 336: | Ligne 462: |
== Téléphones intelligents == | == Configuration des téléphones intelligents == |
Ligne 340: | Ligne 466: |
__NB__ {{{ iOS entre 4.1 et 4.3 pas de 3.x pas de 5.x non gèré 4.x est nécessaire pour CalDAV, CardDAV, GroupDAV 5.x marche pas }}} |
|
Ligne 343: | Ligne 476: |
== Vérifications == Remplir le tableau suivant : http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureDéploiement/ListeDeVérification |
Sommaire
-
Procédure de déploiement du système SOGo
-
Côté serveur
- Les prérequis
-
Installation et configuration du serveur
- mise en place d'Apache
- mise en place de mysql
- installation de SOGo
- synchronisation inter-implantation
- personnalisation de la page d'accueil
- création de comptes génériques pour les agendas publics
- gestion des extensions SOGo
- pour ceux qui ont des clients BlackBerry et/ou Androïd
- pour ceux qui ont des clients Iphone
- Côté poste de travail
- Configuration des téléphones intelligents
- Vérifications
-
Côté serveur
Procédure de déploiement du système SOGo
Côté serveur
Les prérequis
Serveurs
- 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
Synchronisation des comptes utilisateurs (prenom.nom@auf.org + mot de passe associé)
NB : avant tout, contactez MoussaNombre et/ou ProgFou pour les accès à la base de données centrale (vous devriez leur donner l'adresse IP du serveur qui roulera la synchro : une IP de votre RPV)
# récupérer le script wget -O /usr/local/sbin/synchro-auf-refer-sogo-users.py "http://git.auf.org/?p=codes-mnombre.git;a=blob_plain;f=synchro-auf-refer-sogo-users.py;hb=8872fb6011ebc691cc41bad449e5db3bc2009151" # adapter le script : codes d'accès à votre base de données SOGo, la liste des pays de votre Bureau # ajouter à ses sources : echo "deb http://apt.auf.org/ lenny auf" >> /etc/apt/sources.list # gardez bien le "lenny" même sous squeeze car le paquet n'est pas encore publié dans Squeeze). # Ensuite, installer auf_refer aptitude update aptitude install auf-refer # pour avoir toutes les données (notamment les mots de passe),il faut avoir fourni son IP à MoussaNombre ou Progfou # s'abonner à la source de données d'authentification sudo auf-refer -a annuaire.json # vérifier que l'on a bien des champs 'mdp' et 'login' bien remplis sudo auf-refer -c annuaire.json # pour forcer une mise à jour de la copie locale (sinon c'est fait à 7h et 13h chaque jour) sudo auf-refer -u annuaire.json # vu que la base de données sogo ne sera créée que plus tard, on ne peut pas tester pour le moment. cf plus bas pour la suite # créer une tâche planifié cat > /etc/cron.d/synchro-auf-refer-sogo-users << __EOF__ MAILTO=root+sogo@xx.auf.org 0 * * * * root python /usr/local/sbin/synchro-auf-refer-sogo-users.py __EOF__
Installation et configuration du serveur
- créez et configurez un serveur virtuel de base à votre sauce. Ensuite, installez les prérequis de SOGo et SOGo lui-même :
- exemple de partitionnement recommandé :
- 1 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
mise en place d'Apache
dans un objectif SSL et PHP5 (installe le mpm-prefork au lieu du mpm-worker par défaut)
# installer apache2 + config Unicode + SSL + activation modules aptitude install apache2 libapache2-mod-php5 sed -i '/^#AddDefaultCharset/c AddDefaultCharset UTF-8' /etc/apache2/conf.d/charset a2enmod mime # 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) 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 DocumentRoot /var/www RedirectMatch ^/$ https://sogo.xx.auf.org/SOGo 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__ a2ensite sogo.xx.auf.org a2ensite sogo.xx.auf.org-ssl a2dissite default # Activer les modules proxy requis par SOGo #a2enmod proxy A VERIFIER a2enmod headers a2enmod rewrite a2enmod proxy_http
- création du certificat dans la PKI AUF :
Le ficher PKCS#12 devra être décomposé et mis dans le dossier /etc/ssl/auf
redémarrer 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 general_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 /etc/init.d/mysql restart
installation de SOGo
# 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) # ajout du dépôt inverse 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 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'; GRANT ALL PRIVILEGES ON sogo.* TO 'sogo'@'sogo.xx.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxx'; GRANT select ON sogo.* TO 'sogo'@'sogo.%.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxx'; # autoriser les autres SOGo à se connecter sur 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 sogod start ; sleep 10 ; service sogod stop cat > /root/config_sogo.sh << __EOF__ defaults -u sogo write sogod SOGoMailDomain xx.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 America/Montreal defaults -u sogo write sogod SOGoEnableEMailAlarms YES 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 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 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 SOGoUserSources '( { canAuthenticate = YES; displayName = ANNUAIRE-AUF; id = users; isAddressBook = YES; type = sql; userPasswordAlgorithm = crypt; viewURL = "mysql://sogo:xxxxxxxxxxxxxxx@sogo.ca.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/config_sogo.sh # 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
lancer la synchro des comptes pour remplir la table auf_users python /usr/local/sbin/synchro-auf-refer-sogo-users.py
- A ce stade, SOGo est prêt et fonctionnel. Pour tester :
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
- la synchronisation
On utilise le paquet 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 # au besoin, faire "Y" pour accepter le nouveau fichier de config # après l'installation du paquet rm /usr/local/sbin/sogocentral /etc/cron.d/sogocentral # créer les comptes mysql echo "GRANT SELECT,INSERT,DELETE,UPDATE ON sogo.* TO 'sogocentral'@'localhost' IDENTIFIED BY 'xxxxxxxxxxxxxxxx';" | mysql echo "GRANT SELECT ON sogo.* TO 'sogo-remote-ro'@'sogo.%.auf.org' IDENTIFIED BY 'xxxxxxxxxxxxxxxx';" | mysql # Modifier le fichier /etc/sogocentral/config.py # mettre à jour les lignes : # SITE_NAME = 'sogo.xx.auf.org' # SITE_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' # SOGO_PASS = 'xxxxxxxxxxxxxxxx' # SOGO_REMOTE_PASS = 'xxxxxxxxxxxxxxxx' # lancer une première synchro (un cron tourne à chaque heure pour le reste) sogocentral-sync
- 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 # vérifier et supprimer au besoin 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
personnalisation de la page d'accueil
# télécharger ces deux fichiers 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)
# module apache-php pour le script aptitude install libapache2-mod-php5 mkdir /var/www/plugins cd /var/www/plugins # récupération du script de mise à jour 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 # récupération des extensions 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 # adpatation du sogo-integrator # 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 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="http://sogo.xx.auf.org/plugins/updates.php?plugin=%ITEM_ID%&version=%ITEM_VERSION%&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__ jar cf sogo-integrator-3.105.xpi * cp sogo-integrator-3.105.xpi /var/www/plugins aptitude purge fastjar
pour ceux qui ont des clients BlackBerry et/ou Androïd
cf Procédure d'installation de Funambol
pour ceux qui ont des clients Iphone
cf Procédure de configuration du CARDDAV pour les Iphones
Côté poste de travail
- 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 (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
- 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.
- 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).
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.
- convenir avec l’intéressé de quoi en faire :
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
Configuration des 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)
NB
iOS entre 4.1 et 4.3 pas de 3.x pas de 5.x non gèré 4.x est nécessaire pour CalDAV, CardDAV, GroupDAV 5.x marche pas
BLACKBERRY : passer par le client FUNAMBOL pour BB
ANDROID : passer par le client FUNAMBOL pour Androïd
Vérifications
Remplir le tableau suivant : http://wiki.auf.org/wikiteki/Projet/SOGo/ProcédureDéploiement/ListeDeVérification