{"id":453,"date":"2009-08-07T15:07:08","date_gmt":"2009-08-07T14:07:08","guid":{"rendered":"http:\/\/blog.guiguiabloc.fr\/?p=453"},"modified":"2009-08-07T18:08:43","modified_gmt":"2009-08-07T17:08:43","slug":"mise-en-oeuvre-dun-cluster-zimbra-avec-synchronisation-multi-plateformes","status":"publish","type":"post","link":"http:\/\/blog.guiguiabloc.fr\/index.php\/2009\/08\/07\/mise-en-oeuvre-dun-cluster-zimbra-avec-synchronisation-multi-plateformes\/","title":{"rendered":"Mise en oeuvre d&rsquo;un cluster Zimbra  avec synchronisation multi-plateformes"},"content":{"rendered":"<p>Pour un projet, j&rsquo;ai eu \u00e0 r\u00e9fl\u00e9chir \u00e0 une solution d&rsquo;agendas partag\u00e9s, synchronisable sur blackberry.<\/p>\n<p>C&rsquo;est donc un dimanche matin, avant <span style=\"text-decoration: line-through;\">de me vautrer comme une loutre sur le canap\u00e9<\/span> la messe, que j&rsquo;ai mis en place tout cela et j&rsquo;en suis plut\u00f4t content.<\/p>\n<p>En mati\u00e8re d&rsquo;outil de collaboration, il existe plusieurs produits, achev\u00e9s ou non, int\u00e9ressants ou pas.<\/p>\n<p>J&rsquo;avais d&rsquo;abord commenc\u00e9 par lorgner du c\u00f4t\u00e9 de <a title=\"Kolab\" href=\"http:\/\/www.kolab.org\/\" target=\"_blank\">Kolab<\/a> mais j&rsquo;ai pr\u00e9f\u00e9r\u00e9 choisir un outil que je connais bien et qui a fait largement ses preuves : <a title=\"Zimbra\" href=\"http:\/\/www.zimbra.com\/\" target=\"_blank\">ZIMBRA<\/a>.<\/p>\n<p>Inutile de vous pr\u00e9senter cette suite d&rsquo;outils, leur r\u00e9putation n&rsquo;est plus a faire.<\/p>\n<p>Maintenant, il me fallait rendre Zimbra hautement disponible et surtout, permettre de synchroniser les agendas et carnet d&rsquo;adresses avec une multitude d&rsquo;\u00e9quipements (t\u00e9l\u00e9phone Blackberry, Symbian, Iphone etc&#8230;) mais aussi sur les PC sous Thunderbird\/Lightning, Evolution voir m\u00eame (pour les GENS sales), Micro$oft Windaube avec Proutlook (la version compl\u00e8te, pas caca express qui ne dispose pas de calendrier).<\/p>\n<p>Donc du Zimbra a ma sauce, voila donc la mise en oeuvre d&rsquo;un ZImbrabloc (guiguiabloc + zimbra &#8230; ok , je &#8211;&gt; [] )<\/p>\n<p>Pour la partie synchronisation, il me fallait quelque chose de solide, d&rsquo;Open (forc\u00e9ment), utilisable avec Zimbra et une immense majorit\u00e9 de plateformes comme \u00e9nonc\u00e9 plus haut.<\/p>\n<p>Ce service magique, je l&rsquo;ai trouv\u00e9 chez <a title=\"Funambol\" href=\"http:\/\/www.funambol.com\/\" target=\"_blank\">Funambol<\/a>.<\/p>\n<p>Comme toujours <a title=\"mission impossible\" href=\"http:\/\/www.youtube.com\/watch?v=k55NuWQCh78\" target=\"_blank\"><span style=\"text-decoration: line-through;\">si vous ou l&rsquo;un de vos collaborateurs<\/span> <\/a>un dessin valant mieux qu&rsquo;un long discours, voici ce que je vous propose mettre en place :<\/p>\n<div id=\"attachment_456\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/blog.guiguiabloc.fr\/wp-content\/2009\/08\/zimbrabloc.png\"><img aria-describedby=\"caption-attachment-456\" loading=\"lazy\" class=\"size-medium wp-image-456\" title=\"zimbrabloc\" src=\"http:\/\/blog.guiguiabloc.fr\/wp-content\/2009\/08\/zimbrabloc-300x172.png\" alt=\"Architecture ZimbraBloc\" width=\"300\" height=\"172\" \/><\/a><p id=\"caption-attachment-456\" class=\"wp-caption-text\">Architecture ZimbraBloc<\/p><\/div>\n<ul>\n<li><strong>Pr\u00e9paration de l&rsquo;ip Failover, des DNS et des Serveurs<br \/>\n<\/strong><\/li>\n<\/ul>\n<p>Si vous \u00eates chez OVH, c&rsquo;est le moment d&rsquo;activer votre IP Failover pour qu&rsquo;elle pointe sur vos deux serveurs.<\/p>\n<p>(Sinon, a vous de pr\u00e9parer votre VIP CARP ou UCARP si vous utilisez un autre syst\u00e8me d&rsquo;ip failover).<\/p>\n<p>Relire mes pr\u00e9c\u00e9dents billet :<\/p>\n<p><a title=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/10\/17\/cluster-haute-disponibilite-chez-ovh-avec-ipfailover-heartbeat-et-drbd-via-ipsec\/\" href=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/10\/17\/cluster-haute-disponibilite-chez-ovh-avec-ipfailover-heartbeat-et-drbd-via-ipsec\/\" target=\"_blank\">ICI <\/a>, <a title=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/10\/28\/vmware-server-20-sur-dedies-ovh-et-mise-en-oeuvre-dune-solution-de-haute-disponibilite-avec-datastore-en-drbd\/\" href=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/10\/28\/vmware-server-20-sur-dedies-ovh-et-mise-en-oeuvre-dune-solution-de-haute-disponibilite-avec-datastore-en-drbd\/\" target=\"_blank\">ICI<\/a> et <a title=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/12\/05\/ovh-ip-failover-dans-une-machine-virtuelle-vmware\/\" href=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/12\/05\/ovh-ip-failover-dans-une-machine-virtuelle-vmware\/\" target=\"_blank\">LA<\/a> .<\/p>\n<p>L&rsquo;installation de Zimbra est triviale si l&rsquo;on pr\u00e9pare en amont ses DNS. En effet, le serveur sur lequel vous installerez Zimbra doit \u00eatre MX du domaine (l&rsquo;installeur le v\u00e9rifie).<\/p>\n<pre lang=\"text\">collab.guiguiabloc.fr IN A 10.0.0.1\r\n\r\ncollab.guiguiabloc.fr MX 10 collab.guiguiabloc.fr\r\n\r\nzimbrabloc-1 IN A 10.10.10.1\r\n\r\nzimbrabloc-2 IN A 10.10.10.2\r\n\r\nzimbrabloc-1 MX 10 zimbrabloc-1\r\n\r\nzimbrabloc-2 MX 10 zimbrabloc-2<\/pre>\n<p>C\u00f4t\u00e9 serveurs, pr\u00e9voir :<\/p>\n<p>Vos partitions\u00a0 \/ \/home \/tmp bref, comme vous avez l&rsquo;habitude de faire<\/p>\n<p>1 partition pour DRBD (tailler large&#8230;)<\/p>\n<p>1 partition de quelques gigas juste pour l&rsquo;installation de Zimbra, que l&rsquo;on montera en \/opt<\/p>\n<ul>\n<li><strong>Installation de Zimbra, DRBD et Heartbeat<br \/>\n<\/strong><\/li>\n<\/ul>\n<p>Je me suis bas\u00e9 sur l&rsquo;excellent article de Mig5 :<\/p>\n<p><a title=\"http:\/\/www.mig5.net\/content\/howto-highly-available-zimbra-cluster-using-heartbeat-and-drbd\" href=\"http:\/\/www.mig5.net\/content\/howto-highly-available-zimbra-cluster-using-heartbeat-and-drbd\" target=\"_blank\">http:\/\/www.mig5.net\/content\/howto-highly-available-zimbra-cluster-using-heartbeat-and-drbd<\/a><\/p>\n<p>L&rsquo;installation ce Zimbra sous DRBD demande une manipulation un peu tordue car Zimbra v\u00e9rifie que la machine sur laquelle il s&rsquo;installe est bien MX du domaine (en gros il interroge le DNS du domaine et check son \/etc\/hostname <strong>mais <\/strong>drbd v\u00e9rifie que le \/etc\/hosts et le \/etc\/hostname de la machine sont bien identiques sinon il crie au loup.<\/p>\n<p>Pour simplifier la manipulation, la technique est la suivante :<\/p>\n<ul>\n<li>installation de zimbra dans \/opt (on monte notre petite partition en \/opt)<\/li>\n<\/ul>\n<p>Sur zimbrabloc-1 on change le \/etc\/hostname par collab.guiguiabloc.fr<\/p>\n<p>On reboot, on installe Zimbra (<a title=\"Zimbra Download\" href=\"http:\/\/www.zimbra.com\/community\/downloads.html\" target=\"_blank\">t\u00e9l\u00e9chargeable ICI <\/a>) (si vous avez une erreur comme quoi le MX ne pointe pas sur la bonne ip (normal puisque l&rsquo;on pointe sur une ip failover, passez outre et r\u00e9pondre Non au changement de domaine)<\/p>\n<p>Je ne m&rsquo;\u00e9tend pas sur l&rsquo;installation, tr\u00e8s simple, et il existe multitude de tutos sur le nain ternet.<\/p>\n<ul>\n<li>on stoppe Zimbra, on remet le hostname comme il \u00e9tait (zimbrabloc-1)<\/li>\n<\/ul>\n<ul>\n<li>on supprime les entr\u00e9es dans \/etc\/rc* (c&rsquo;est Heartbeat qui g\u00e8rera l&rsquo;arr\u00eat\/relance de Zimbra)<\/li>\n<\/ul>\n<ul>\n<li>on \u00e9dite le \/etc\/hosts que l&rsquo;on modifie ainsi :<\/li>\n<\/ul>\n<p><span style=\"text-decoration: underline;\">Pour Zimbrabloc-1<\/span><\/p>\n<pre lang=\"text\">127.0.0.1 collab.guiguiabloc.fr localhost\r\n\r\n10.10.10.1 zimbrabloc-1 collab.guiguiabloc.fr\r\n\r\n10.10.10.2 zimbrabloc-2<\/pre>\n<p><span style=\"text-decoration: underline;\">Pour Zimbrabloc-2<\/span><\/p>\n<pre lang=\"text\">127.0.0.1 collab.guiguiabloc.fr localhost\r\n\r\n10.10.10.1 zimbrabloc-1\r\n\r\n10.10.10.2 zimbrabloc-2 collab.guiguiabloc.fr<\/pre>\n<p>On d\u00e9monte \/opt pour le monter en \/mnt\/trucmuche temporairement.<\/p>\n<p>C\u00f4t\u00e9 serveurs, on se monte une \u00ab\u00a0petite\u00a0\u00bb partition en DRBD comme d&rsquo;habitude, d\u00e9j\u00e0 expliqu\u00e9 <a title=\"drbd\" href=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2008\/10\/17\/cluster-haute-disponibilite-chez-ovh-avec-ipfailover-heartbeat-et-drbd-via-ipsec\/\" target=\"_blank\">dans ce billet<\/a>.<\/p>\n<p>Je vous passe la synchro et tout le bouzin de drbd, bref, vous devriez vous retrouver avec un \/dev\/drbd0 que l&rsquo;on montera en \/opt.<\/p>\n<p>Ne reste qu&rsquo;a copier l&rsquo;integralit\u00e9 de votre \/mnt\/trucmuche dans votre nouveau \/opt fraichement synchronis\u00e9.<\/p>\n<p>(n&rsquo;oubliez pas de virer l&rsquo;entr\u00e9e \/etc\/fstab&#8230;)<\/p>\n<p>Vous installez heartbeat et vous renseignez vos \/etc\/ha.d\/haresources pour basculer votre noeud :<\/p>\n<pre lang=\"text\">zimbrabloc-1 IPaddrFO::10.0.0.1\/32\/eth0 drbddisk::r0 Filesystem::\/dev\/drbd0::\/opt::ext3 zimbra MailTo::guiguibloc@guiguiabloc.fr::Bascule_Zimbra<\/pre>\n<p><strong>NB<\/strong>: le script IPaddrFO est une modification du IPaddr dans lequel, outre la bascule de l&rsquo;ipfailover d&rsquo;une machine a une autre, je \u00ab\u00a0pousse\u00a0\u00bb via un script python, la mise \u00e0 jour de l&rsquo;ipfailover dans le manager d&rsquo;OVH :<\/p>\n<p>Le code a modifier :<\/p>\n<pre lang=\"text\">case $2 in\r\nstart)        \/home\/system\/zimbrabloc1-failoverupdate.py\r\nip_start $1;;<\/pre>\n<p>Le script Python :<\/p>\n<pre lang=\"text\">#!\/usr\/bin\/python\r\nfrom SOAPpy import WSDL\r\nsoap = WSDL.Proxy('https:\/\/www.ovh.com\/soapi\/ovh.wsdl')\r\nnic = 'guiguiabloc-ovh'\r\npassword = 'weshgroscestmoi'\r\ntry:\r\nsession = soap.login( nic, password )\r\nprint \"login successfull\"\r\nexcept:\r\nprint \"Error login\"\r\ntry:\r\nresult = soap.dedicatedFailoverUpdate( session, 'ns12345.ovh.net', '10.0.0.1', '10.10.10.1' );\r\nprint \"dedicatedFailoverUpdate successfull\";\r\nexcept:\r\nprint \"Error dedicatedFailoverUpdate\"\r\ntry:\r\nresult = soap.logout( session )\r\nprint \"logout successfull\"\r\nexcept:\r\nprint \"Error logout\"<\/pre>\n<p>Je vous laisse rebooter, couper le zimbrabloc-1 et v\u00e9rifier la bascule sur le zimbrabloc-2.<\/p>\n<ul>\n<li><strong>Serveur de synchronisation Funambol<\/strong><\/li>\n<\/ul>\n<p>Funambol est une entreprise am\u00e9ricaine qui propose deux types de licences, Commercial et OpenSource.<\/p>\n<p>Sa force est d&rsquo;offrir des clients de synchronisation pour quasiment tout ce qui est amen\u00e9 \u00e0 se synchroniser \u00e0 quelque chose un jour.<\/p>\n<p>On attendait depuis longtemps le connecteur Funambol pour Zimbra, c&rsquo;est chose faite :<\/p>\n<p><a title=\"http:\/\/sourceforge.net\/projects\/zimbrafunambol\/\" href=\"http:\/\/sourceforge.net\/projects\/zimbrafunambol\/\" target=\"_blank\">http:\/\/sourceforge.net\/projects\/zimbrafunambol\/<\/a><\/p>\n<p>L&rsquo;installation du serveur Funambol est d&rsquo;une simplicit\u00e9 d\u00e9concertante (on l&rsquo;installera dans \/opt, a cot\u00e9 de notre ZImbra).<\/p>\n<p>Par d\u00e9faut, il \u00e9coute sur le port 8080, ce qui n&rsquo;entrera pas en conflit avec l&rsquo;interface web de Zimbra<\/p>\n<p>(Bien \u00e9videmment, on passera tout cela en https avant d&rsquo;ouvrir au public).<\/p>\n<p>L&rsquo;url de synchro sera donc :<\/p>\n<p>http:\/\/collab.guiguiabloc.fr:8080\/funambol\/ds<\/p>\n<p>(Vous pouvez v\u00e9rifier que le serveur Funambol fonctionne parfaitement en pointant votre navigateur sur cette adresse)<\/p>\n<pre>Funambol Data Synchronization Server v.7.1.0\r\n\r\nMan=Funambol\r\nMod=DS Server\r\nSwV=7.1.0\r\nHwV=-\r\nFwV=-\r\nOEM=-\r\nDevID=funambol\r\nDevTyp=server\r\nVerDTD=1.2\r\nUTC=true\r\nSupportLargeObjs=true\r\nSupportNumberOfChanges=true\r\nExt=X-funambol-smartslow<\/pre>\n<p>L&rsquo;installation et le param\u00e9trage du connecteur Zimbra sont parfaitement document\u00e9s :<\/p>\n<p><a title=\"http:\/\/wiki.zimbra.com\/index.php?title=Open_Source_Mobile_Calendar_and_Contact_Synchronization\" href=\"http:\/\/wiki.zimbra.com\/index.php?title=Open_Source_Mobile_Calendar_and_Contact_Synchronization\" target=\"_blank\">http:\/\/wiki.zimbra.com\/index.php?title=Open_Source_Mobile_Calendar_and_Contact_Synchronization<\/a><\/p>\n<p>Un excellent tutorial en fran\u00e7ais (chapeau a son auteur, Jean-Fran\u00e7ois VIAL, et surtout merci \ud83d\ude00 )<\/p>\n<p><a title=\"http:\/\/www.modulaweb.fr\/blog\/2009\/02\/installation-de-funambol-couple-a-zimbra-sur-un-serveur-gnu-linux\/\" href=\"http:\/\/www.modulaweb.fr\/blog\/2009\/02\/installation-de-funambol-couple-a-zimbra-sur-un-serveur-gnu-linux\/\" target=\"_blank\">http:\/\/www.modulaweb.fr\/blog\/2009\/02\/installation-de-funambol-couple-a-zimbra-sur-un-serveur-gnu-linux\/<\/a><\/p>\n<ul>\n<li><strong>Installation et test du client de synchro<\/strong><\/li>\n<\/ul>\n<p>Les t\u00e9l\u00e9chargements disponibles pour les diverses plateformes se trouvent ici :<\/p>\n<p><a title=\"https:\/\/www.forge.funambol.org\/download\/\" href=\"https:\/\/www.forge.funambol.org\/download\/\" target=\"_blank\">https:\/\/www.forge.funambol.org\/download\/<\/a><\/p>\n<p>Mon nokia e65, tournant sous Symbian fait bien sur partie des plateformes disponibles (Symbian )<\/p>\n<p><a href=\"http:\/\/blog.guiguiabloc.fr\/wp-content\/2009\/08\/screenshot0030.jpg\"><img loading=\"lazy\" class=\"aligncenter size-medium wp-image-458\" title=\"screenshot0030\" src=\"http:\/\/blog.guiguiabloc.fr\/wp-content\/2009\/08\/screenshot0030-225x300.jpg\" alt=\"\" width=\"225\" height=\"300\" \/><\/a><\/p>\n<p><a href=\"http:\/\/blog.guiguiabloc.fr\/wp-content\/2009\/08\/screenshot0031.jpg\"><img loading=\"lazy\" class=\"aligncenter size-medium wp-image-459\" title=\"screenshot0031\" src=\"http:\/\/blog.guiguiabloc.fr\/wp-content\/2009\/08\/screenshot0031-225x300.jpg\" alt=\"\" width=\"225\" height=\"300\" \/><\/a><\/p>\n<p>Ici le couple Username\/Password correspond au compte de l&rsquo;utilisateur dans Zimbra.<\/p>\n<p>Le serveur location sera : http:\/\/collab.guiguiabloc.fr:8080\/funambol\/ds<\/p>\n<p><a href=\"http:\/\/blog.guiguiabloc.fr\/wp-content\/2009\/08\/screenshot0032.jpg\"><img loading=\"lazy\" class=\"aligncenter size-medium wp-image-460\" title=\"screenshot0032\" src=\"http:\/\/blog.guiguiabloc.fr\/wp-content\/2009\/08\/screenshot0032-225x300.jpg\" alt=\"\" width=\"225\" height=\"300\" \/><\/a><\/p>\n<p>Un petit clic sur \u00ab\u00a0Sync All\u00a0\u00bb et le calendrier se synchronise. Magique \ud83d\ude42<\/p>\n<p>Les param\u00e9trages de synchro sont modifiables (dans 1 sens ou dans les 2 sens, d\u00e9sactivation de la synchro des contacts etc&#8230;)<\/p>\n<p>Au final, nous avons mis en place un syst\u00e8me collaboratif en haute disponibilit\u00e9, accessible en Web synchronisable  par Client lourd, par t\u00e9l\u00e9phone portable etc&#8230;<\/p>\n<p>L&rsquo;agenda partag\u00e9 est un outil devenu indispensable dans les entreprises.<\/p>\n<p>Offrir ce type de service, qui permet de tenir son calendrier a jour, de le consulter ou que l&rsquo;on soit, par plusieurs moyens diff\u00e9rents, tout en \u00e9tant certain de la disponibilit\u00e9 du service, c&rsquo;est quand m\u00eame pas mal, non ?<\/p>\n<p>A vous de vendre cela a votre DG\/PDG\/DRH qui vous regardera les yeux humides d&rsquo;\u00e9motion de r\u00e9pondre \u00e0 l&rsquo;une de ses probl\u00e9matiques (et accessoirement vous gratifiera d&rsquo;une tape sur l&rsquo;\u00e9paule avec un \u00ab\u00a0beau travail\u00a0\u00bb en oubliant de vous offrir une augmentation&#8230;)<\/p>\n<p>Amusez vous bien \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pour un projet, j&rsquo;ai eu \u00e0 r\u00e9fl\u00e9chir \u00e0 une solution d&rsquo;agendas partag\u00e9s, synchronisable sur blackberry. C&rsquo;est donc un dimanche matin, avant de me vautrer comme une loutre sur le canap\u00e9 la messe, que j&rsquo;ai mis en place tout cela et &hellip; <a href=\"http:\/\/blog.guiguiabloc.fr\/index.php\/2009\/08\/07\/mise-en-oeuvre-dun-cluster-zimbra-avec-synchronisation-multi-plateformes\/\">Read More <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[13,7],"tags":[120,119],"_links":{"self":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts\/453"}],"collection":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/comments?post=453"}],"version-history":[{"count":10,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts\/453\/revisions"}],"predecessor-version":[{"id":467,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/posts\/453\/revisions\/467"}],"wp:attachment":[{"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/media?parent=453"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/categories?post=453"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.guiguiabloc.fr\/index.php\/wp-json\/wp\/v2\/tags?post=453"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}