{"id":41,"date":"2007-12-29T03:11:23","date_gmt":"2007-12-29T01:11:23","guid":{"rendered":"http:\/\/gcolpart.evolix.net\/blog21\/autre-exemple-de-migration-sarge-etch-1\/"},"modified":"2009-01-19T00:14:19","modified_gmt":"2009-01-18T22:14:19","slug":"autre-exemple-de-migration-sarge-etch-1","status":"publish","type":"post","link":"https:\/\/gcolpart.evolix.net\/blog21\/autre-exemple-de-migration-sarge-etch-1\/","title":{"rendered":"Autre exemple de migration Sarge->Etch [1]"},"content":{"rendered":"<p>Je n&#8217;ai pas oubli\u00e9 mon id\u00e9e de <a href=\"http:\/\/gcolpart.evolix.net\/blog21\/un-exemple-de-migration-debian-sarge-etch-0\/\">bloguer sur des migrations Sarge-&gt;Etch qui le m\u00e9ritent<\/a>. Voici donc un deuxi\u00e8me volet avec un petit serveur d&#8217;entreprise comprenant les services suivants : OpenLDAP (annuaire, authentification), PostgreSQL, NFS, messagerie (Postfix, Courier-IMAP, Amavisd-new, ClamAV, Bogofilter, DCC, Razor, SpamAssassin, Whitelister, Postgrey, Sympa), Apache\/PHP (eGroupWare, webmail Horde, wwsympa, logiciels\/sites sur mesure) ainsi qu&#8217;un certain nombre de logiciels\/scripts sur mesure. J&#8217;ai donc profit\u00e9 des jours autour de No\u00ebl (p\u00e9riode id\u00e9ale pour les migrations de serveurs d&#8217;entreprise) pour m&#8217;attaquer \u00e0 cette t\u00e2che.<\/p>\n<p>Tout d&#8217;abord, je souligne que cette migration est particuli\u00e8re car j&#8217;en profite pour basculer sur du RAID (software) et il s&#8217;agit donc de r\u00e9installer un syst\u00e8me de base et de g\u00e9rer les migrations &#8220;\u00e0 la main&#8221; (tout en jetant un coup d&#8217;oeil sur certains maintainer scripts). Au passage, quelle horreur d&#8217;ajouter des disques suppl\u00e9mentaires dans un serveur D3LL format tour quand \u00e7a n&#8217;a pas vraiment \u00e9t\u00e9 pr\u00e9vu : une seule paire de glissi\u00e8res, uniquement deux emplacements 3&#8243;5, alors que techniquement on pourrait mettre une bonne douzaine de disques&#8230; Bref, une fois les soucis mat\u00e9riel g\u00e9r\u00e9s (ah oui, la nappe SCSI et la terminaison pr\u00e9vues \u00e9taient foireuses), la nuit est bien avanc\u00e9e et je peux couper les services et me lancer dans une r\u00e9installation de base puis re-brancher l&#8217;ancien disque et g\u00e9rer service par service la migration. Voici la liste des points critiques et probl\u00e8mes rencontr\u00e9s :<\/p>\n<p>&#8211; Au niveau du noyau, aucun probl\u00e8me en vue car je reste avec le m\u00eame (<a href=\"http:\/\/www.evolix.fr\/linux\/compilation.html\">un noyau personnalis\u00e9 avec notamment le patch grsecurity<\/a>). N\u00e9anmoins, un petit soucis avec la biblioth\u00e8que liblzo notamment utile \u00e0 lynx (&#8230;utile \u00e0 mutt pour voir les messages HTML et diverses pi\u00e8ces jointes) :<\/p>\n<pre>$ lynx\r\nlynx: error while loading shared libraries: liblzo.so.1:\r\ncannot enable executable stack as shared object requires: Permission denied<\/pre>\n<p>La solution est de &#8220;mettre un coup de pioche&#8221; dans la biblioth\u00e8que :<\/p>\n<pre>aptitude install prelink &amp;&amp; execstack -c \/usr\/lib\/liblzo.so.1.0.0<\/pre>\n<p>&#8211; OpenLDAP<br \/>\nIl faut bien g\u00e9rer le passage du service slapd qui n&#8217;est plus lanc\u00e9 par root mais par un utilisateur openldap. Lors de la migration, il faut donc bien ajuster tous les droits (sch\u00e9mas LDAP, r\u00e9-injection des donn\u00e9es avec <em>slapadd<\/em>, etc.) sinon slapd vous &#8220;segfault&#8221; dans la t\u00eate ; et ajuster le pidfile dans le slapd.conf (le mettre dans un r\u00e9pertoire \/var\/run\/slapd\/ o\u00f9 l&#8217;utilisateur openldap aura les droits pour cr\u00e9er le pidfile, et non plus simplement \/var\/run\/).<\/p>\n<p>&#8211; PostgreSQL<br \/>\nJ&#8217;ai utilis\u00e9 le paquet pour avoir une version 7.4 et minimiser les impacts potentiels lors de la migration car Sarge utilisait d\u00e9j\u00e0 une version 7.4. Un pg_dumpall dans le chroot de la machine arr\u00eat\u00e9e et un psql plus tard, aucun soucis \u00e0 relever. Il a ensuite suffi de migrer les fichiers de configuration pg_*.<\/p>\n<p>&#8211; Bind<br \/>\nRien \u00e0 sigaler de particulier, \u00e0 part installer le paquet bind9, lancer mon fameux script <a href=\"http:\/\/www.gcolpart.com\/hacks\/chroot-bind.sh\">chroot-bind.sh<\/a>, et transf\u00e9rer l&#8217;ancienne configuration (named.conf, rndc.conf, etc.).<\/p>\n<p>&#8211; Messagerie (Postfix, Courier-IMAP, Amavisd-new, ClamAV, SpamAssassin, Whitelister, Postgrey, Sympa)<br \/>\nUn gros morceau mais tout se passe bien dans l&#8217;ensemble pour ces logiciels extr\u00eamement utilis\u00e9s. Pas de soucis pour Postfix en reprenant l&#8217;ancien fichier main.cf. Pour info, j&#8217;utilise souvent <a href=\"http:\/\/volatile.debian.org\/\">debian-volatile<\/a> (donc SpamAssassin, ClamAV et Postgrey en sont issus) et un <a href=\"http:\/\/gcolpart.evolix.net\/debian\/whitelister\/\">Whitelister patch\u00e9 pour v\u00e9rifier aussi les reverse DNS<\/a>. \u00c0 noter que pour pas mal de logiciels, je suis reparti de la configuration de Etch et j&#8217;ai import\u00e9 mes modifications plut\u00f4t que de repartir de ma configuration pour Sarge (<a href=\"http:\/\/bugs.debian.org\/430028\">pour amavisd-new, il n&#8217;y a pas trop le choix de toute fa\u00e7on<\/a>).<\/p>\n<p>&#8211;  Sympa<br \/>\nL\u00e0, ce fut un gros morceau de la migration, parce qu&#8217;il y a beaucoup de changements de la version 4 \u00e0 la version 5. J&#8217;ai donc import\u00e9 les configurations des listes et Sympa s&#8217;est d\u00e9brouill\u00e9 pour avaler tout \u00e7a et injecter les admins des listes dans PostgreSQL. Pour les archives, il faut bien penser \u00e0 re-g\u00e9n\u00e9rer toutes les archives (par wwsympa) pour avoir le nouveau format car l&#8217;ancien s&#8217;affiche tr\u00e8s mal (plein de variables sens\u00e9es ne pas s&#8217;afficher apparaissent). Enfin, pour injecter les utilisateurs dans les tables user_table et subscriber_table (pour les listes qui n&#8217;utilisent pas LDAP ;), j&#8217;ai du ajouter la colonne robot_subscriber \u00e0 la main avant d&#8217;injecter le tout. Mais apr\u00e8s avoir bien ajust\u00e9 la configuration et red\u00e9marr\u00e9 plusieurs dizaines de fois Sympa, tout marche ! Il ne reste plus qu&#8217;\u00e0 activer fcgi, ajouter un <a href=\"http:\/\/bugs.debian.org\/408097\">petit patch trivial<\/a>, refaire les couleurs (car l&#8217;interface web change compl\u00e8tement et les *_color deviennent des color_n) et tout roule ! <a href=\"http:\/\/listes.evolix.net\/\">R\u00e9sultat ici<\/a>.<\/p>\n<p>&#8211; Apache\/PHP<br \/>\nAfin de minimiser les impacts, j&#8217;ai choisi de rester en PHP4 (la migration en PHP5 se fera par la suite, une chose \u00e0 la fois). Pour la migration des VirtualHosts (une bonne vingtaine), tout se passe plut\u00f4t bien \u00e0 part le changement des directives pour l&#8217;authentification via LDAP <a href=\"http:\/\/gcolpart.evolix.net\/blog21\/un-exemple-de-migration-debian-sarge-etch-0\/\">d\u00e9j\u00e0 indiqu\u00e9 pr\u00e9c\u00e9demment<\/a>. Passons aux webapps. Pour eGroupWare, c&#8217;est vite vu car c&#8217;est g\u00e9r\u00e9 ind\u00e9pendamment de Debian (il n&#8217;y a d&#8217;ailleurs pas de version d&#8217;eGroupWare pour Etch). De la m\u00eame fa\u00e7on, pour les sites\/logiciels d\u00e9velopp\u00e9s sur mesure, rien \u00e0 signaler. Reste le webmail Horde o\u00f9 les derni\u00e8res versions apportent un ergonomie bien confortable (options int\u00e9gr\u00e9es dans la sidebar, dossiers virtuels, etc.) et une am\u00e9lioration notable des performances IMHO. Je n&#8217;ai pas utilis\u00e9 la version d&#8217;Etch mais directement la version de sid qui corrige un <a href=\"http:\/\/bugs.debian.org\/421826\">bug d&#8217;affichage pour Opera et IE7<\/a>.<\/p>\n<p>Dans l&#8217;ensemble, ce fut long, mais au final pas d&#8217;accrochage majeur. Les premiers retours des utilisateurs semblent concluants : tout marche aussi bien (voire mieux puisqu&#8217;il y a de nouvelles fonctionnalit\u00e9s\/optimisations).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Je n&#8217;ai pas oubli\u00e9 mon id\u00e9e de bloguer sur des migrations Sarge-&gt;Etch qui le m\u00e9ritent. Voici donc un deuxi\u00e8me volet avec un petit serveur d&#8217;entreprise comprenant les services suivants : OpenLDAP (annuaire, authentification), PostgreSQL, NFS, messagerie (Postfix, Courier-IMAP, Amavisd-new, ClamAV, Bogofilter, DCC, Razor, SpamAssassin, Whitelister, Postgrey, Sympa), Apache\/PHP (eGroupWare, webmail Horde, wwsympa, logiciels\/sites sur mesure) [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,5,72],"tags":[],"class_list":["post-41","post","type-post","status-publish","format-standard","hentry","category-debian-fr","category-evolix","category-french"],"_links":{"self":[{"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/posts\/41","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/comments?post=41"}],"version-history":[{"count":1,"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/posts\/41\/revisions"}],"predecessor-version":[{"id":149,"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/posts\/41\/revisions\/149"}],"wp:attachment":[{"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/media?parent=41"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/categories?post=41"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gcolpart.evolix.net\/blog21\/wp-json\/wp\/v2\/tags?post=41"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}