{"id":2030,"date":"2020-09-27T14:53:05","date_gmt":"2020-09-27T12:53:05","guid":{"rendered":"https:\/\/blog.kodono.info\/wordpress\/?p=2030"},"modified":"2020-12-12T09:26:56","modified_gmt":"2020-12-12T08:26:56","slug":"mise-a-jour-dun-serveur-kimsufi-ovh-depuis-debian-9-stretch-vers-debian-10-buster","status":"publish","type":"post","link":"https:\/\/blog.kodono.info\/wordpress\/2020\/09\/27\/mise-a-jour-dun-serveur-kimsufi-ovh-depuis-debian-9-stretch-vers-debian-10-buster\/","title":{"rendered":"Mise \u00e0 jour d\u2019un serveur Kimsufi (OVH) depuis Debian 9 (Stretch) vers Debian 10 (Buster)"},"content":{"rendered":"<p>Il faut r\u00e9guli\u00e8rement penser \u00e0 mettre \u00e0 jour son serveur Kimsufi.<\/p>\n<p>Je vais essayer d\u2019expliquer bri\u00e8vement <a href=\"https:\/\/www.debian.org\/releases\/stable\/i386\/release-notes\/ch-upgrading.fr.html\">les \u00e9tapes \u00e0 suivre<\/a> pour cela.<\/p>\n<ol>\n<li>On va effectuer une mise \u00e0 jour des paquets avec <code>apt-get update &#038;& apt-get upgrade<\/code><\/li>\n<li>Il peut \u00eatre int\u00e9ressant de v\u00e9rifier la version de son kernel afin d&#8217;avoir la derni\u00e8re recommand\u00e9e. On va v\u00e9rifier la version actuelle avec <code>uname -r<\/code> qu&#8217;on peut comparer sur <a href=\"https:\/\/tracker.debian.org\/pkg\/linux\">https:\/\/tracker.debian.org\/pkg\/linux<\/a>. Si on a un noyau OVH, il est recommand\u00e9 de passer sur une version classique (<a href=\"https:\/\/community.ovh.com\/t\/mise-a-jour-du-kernel-sur-serveur-debian-kimsufi\/30921\/12\">voir cette discussion<\/a>). Ensuite, on fait:\n<pre class=\"brush:bash\">apt-get install linux-image-amd64\r\nupdate-grub\r\nreboot\r\n<\/pre>\n<p>Apr\u00e8s le red\u00e9marrage, on peut v\u00e9rifier la version du kernel avec <code>uname -r<\/code><\/li>\n<li>Si vous avez une version personnalis\u00e9e de MariaDB, vous pouvez v\u00e9rifier que vous avez <a href=\"https:\/\/downloads.mariadb.org\/mariadb\/repositories\/#distro=Debian&#038;distro_release=stretch--stretch&#038;mirror=coreix&#038;version=10.5\">la derni\u00e8re mise \u00e0 jour<\/a> pour Stretch<\/li>\n<li>On va sauvegarder les donn\u00e9es :\n<pre class=\"brush:powershell\">mkdir \/root\/svg_special; cp -R \/var\/lib\/dpkg \/root\/svg_special\/; cp \/var\/lib\/apt\/extended_states \/root\/svg_special\/; dpkg --get-selections \"*\" > \/root\/svg_special\/dpkg_get_selection; cp -R \/etc \/root\/svg_special\/etc<\/pre>\n<\/li>\n<li>Ensuite il est conseill\u00e9 d&#8217;utiliser <code>screen<\/code> pour pouvoir se reconnecter (avec <code>screen -r<\/code>) \u00e0 en cas de d\u00e9connexion :\n<pre class=\"brush:powershell\">screen<\/pre>\n<\/li>\n<\/li>\n<li>Le processus de mise \u00e0 niveau d\u00e9crit <a href=\"https:\/\/www.debian.org\/releases\/stable\/i386\/release-notes\/ch-upgrading.fr.html\">sur le site de Debian<\/a> a \u00e9t\u00e9 con\u00e7u pour des mises \u00e0 niveau des syst\u00e8mes \u00ab purs \u00bb sans paquet provenant d&#8217;autres sources. Pour une meilleure fiabilit\u00e9 du processus de mise \u00e0 niveau, vous pouvez supprimer ces paquets du syst\u00e8me avant de commencer la mise \u00e0 niveau :\n<pre class=\"brush:bash\">aptitude search '~i(!~ODebian)'<\/pre>\n<\/li>\n<li>On peut \u00e9ventuellement purger les vieux paquets obsol\u00e8tes. Pour cela on va d&#8217;abord les lister, puis on peut les purger si tout semble bon:\n<pre class=\"brush:bash\">aptitude search '~o'\r\naptitude purge '~o'<\/pre>\n<\/li>\n<li>On peut lancer la commande <code>dpkg --audit<\/code> pour s&#8217;assurer que tout est bon avant la migration. On peut \u00e9galement taper <code>dpkg --get-selections \"*\" | more<\/code> et v\u00e9rifier qu&#8217;aucun paquet n&#8217;est en <em>on hold<\/em><\/li>\n<li>Maintenant il faut remplacer tous les &#8220;stretch&#8221; de <code>\/etc\/apt\/sources.list<\/code> par des &#8220;buster&#8221; (on pourra par exemple utiliser <code>sed -i 's\/stretch\/buster\/g' \/etc\/apt\/sources.list<\/code>), ce qui va donner chez moi :\n<pre class=\"brush:bash\">\r\ndeb http:\/\/ftp.fr.debian.org\/debian buster main non-free\r\n\r\ndeb http:\/\/debian.mirrors.ovh.net\/debian\/ buster main\r\ndeb-src http:\/\/debian.mirrors.ovh.net\/debian\/ buster main\r\n\r\ndeb http:\/\/security.debian.org\/ buster\/updates main\r\ndeb-src http:\/\/security.debian.org\/ buster\/updates main\r\n\r\ndeb http:\/\/ftp.debian.org\/debian buster-backports main\r\n\r\ndeb http:\/\/debian.mirrors.ovh.net\/debian buster-updates main\r\ndeb-src http:\/\/debian.mirrors.ovh.net\/debian buster-updates main\r\n<\/pre>\n<p>On v\u00e9rifiera aussi les autres fichiers qui peuvent se trouver dans <code>\/etc\/apt\/sources.list.d<\/code>, en modifiant par exemple <a href=\"https:\/\/downloads.mariadb.org\/mariadb\/repositories\/#distro=Debian&#038;distro_release=buster--buster&#038;mirror=coreix&#038;version=10.5\">la source pour MariaDB<\/a>.\n<\/li>\n<li>Il est recommand\u00e9 d&#8217;utiliser le programme <code>\/usr\/bin\/script<\/code> pour enregistrer une transcription de la session de mise \u00e0 niveau. Ainsi, quand un probl\u00e8me survient, on a un enregistrement de ce qui s&#8217;est pass\u00e9. Pour d\u00e9marrer un enregistrement, taper :\n<pre class=\"brush:powershell\">script -t 2>~\/upgrade-stretch.time -a ~\/upgrade-stretch.script<\/pre>\n<\/li>\n<li>On passe aux choses s\u00e9rieuses, en commen\u00e7ant par mettre \u00e0 jour les listes des paquets :\n<pre class=\"brush:powershell\">apt-get update<\/pre>\n<\/li>\n<li>On va v\u00e9rifier qu&#8217;on a la place suffisante (un message explicite apparait sinon) :\n<pre class=\"brush:powershell\">apt -o APT::Get::Trivial-Only=true full-upgrade<\/pre>\n<\/li>\n<li>On va maintenant faire une mise \u00e0 jour minimale :\n<pre class=\"brush:powershell\">apt-get upgrade<\/pre>\n<\/li>\n<li>Et \u00e0 partir de l\u00e0 le syst\u00e8me va vous questionner&#8230; en g\u00e9n\u00e9ral choisir l&#8217;option par d\u00e9faut si vous ne savez pas quoi r\u00e9pondre<\/li>\n<li>Puis on continue avec\n<pre class=\"brush:powershel\">apt full-upgrade<\/pre>\n<\/li>\n<\/ol>\n<p>Cette derni\u00e8re \u00e9tape va durer un certain temps. Une fois termin\u00e9, vous pouvez red\u00e9marrer le serveur pour s&#8217;assurer que tout va bien.<\/p>\n<p>Il est bien de v\u00e9rifier que la version actuelle de PHP est correctement utilis\u00e9e par Apache. Pour cela on v\u00e9rifie la version avec:<\/p>\n<pre class=\"brush:powershel\">php -v<\/pre>\n<p>Ensuite on regarde les versions de PHP disponibles dans les modules d&#8217;Apache :<\/p>\n<pre class=\"brush:powershel\">ls -l \/etc\/apache2\/mods-available\/php*<\/pre>\n<p>Et on regarde celle activ\u00e9e :<\/p>\n<pre class=\"brush:powershel\">ls -l \/etc\/apache2\/mods-enabled\/php*<\/pre>\n<p>Si la version ne correspond pas, alors on d\u00e9sactive la version actuellement g\u00e9r\u00e9e par Apache2 puis on active la derni\u00e8re. Par exemple de PHP 7.0 \u00e0 PHP 7.4 :<\/p>\n<pre class=\"brush:powershel\">a2dismod php7.0\r\na2enmod php7.4<\/pre>\n<p>Et on red\u00e9marre Apache : <\/p>\n<pre class=\"brush:powershel\">systemctl restart apache2<\/pre>\n<p>Il pourrait aussi \u00eatre n\u00e9cessaire d&#8217;installer <code>php7.4-mysql<\/code> :<\/p>\n<pre class=\"brush:powershel\">apt-get install php7.4-mysql<\/pre>\n<p>Dans mon cas j&#8217;ai un serveur qui utilise Tomcat8 avec une vieille version de Java (&#8220;1.8.0_265&#8221;) contre la 1.11 qui a \u00e9t\u00e9 install\u00e9 pendant la mise \u00e0 jour (on le voit avec <code>java -v<\/code>). La 1.8 n&#8217;est pas disponible pour Duster, donc j&#8217;ai suivi <a href=\"https:\/\/stackoverflow.com\/posts\/61902164\/revisions\">ces conseils<\/a> : <\/p>\n<pre class=\"brush:powershel\">apt-get update\r\napt-get install software-properties-common\r\n<\/pre>\n<p>Puis dans <code>\/etc\/apt\/sources.list.d\/jdk8.list<\/code> j&#8217;ai mis :<br \/>\n<code>deb http:\/\/security.debian.org\/debian-security stretch\/updates main<\/code><br \/>\nEt ensuite : <\/p>\n<pre class=\"brush:powershel\">apt-get update\r\napt-get install openjdk-8-jdk<\/pre>\n<p>Ensuite il faut modifier <code>$JAVA_HOME<\/code>\u2026 Pour cela on modifier d&#8217;abord <code>\/etc\/environment<\/code> en y mettant <code>JAVA_HOME=\/usr\/lib\/jvm\/java-8-openjdk-amd64\/<\/code> ainsi que <code>\/etc\/default\/tomcat8<\/code><\/p>\n<p>Des erreurs sur PHPMyAdmin peuvent survenir d\u00fb au passage \u00e0 PHP 7.4. Il est recommand\u00e9 de <a href=\"https:\/\/github.com\/phpmyadmin\/phpmyadmin\/issues\/15236#issuecomment-615954993\">mettre \u00e0 jour PHPMyAdmin<\/a>. On va d&#8217;abord v\u00e9rifier qu&#8217;on a une source <em>buster-backports<\/em> dans <code>\/etc\/apt\/sources.list<\/code>. Dans mon cas j&#8217;ai pu mettre \u00e0 jour comme cela :<\/p>\n<pre class=\"brush:powershel\">apt-get upgrade php-tcpdf php-twig\r\napt-get install -t buster-backports php-twig\r\napt-get install phpmyadmin\r\n<\/code>\r\n\r\nUne fois les erreurs corrig\u00e9es, on va nettoyer tous les paquets avec :\r\n<pre class=\"brush:powershell\">apt-get autoremove<\/pre>\n<p>On arr\u00eate <code>screen<\/code> en faisant <code>CTRL + A<\/code> puis <code>k<\/code>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Il faut r\u00e9guli\u00e8rement penser \u00e0 mettre \u00e0 jour son serveur Kimsufi. Je vais essayer d\u2019expliquer bri\u00e8vement les \u00e9tapes \u00e0 suivre pour cela. On va effectuer une mise \u00e0 jour des paquets avec apt-get update &#038;&#038; apt-get upgrade Il peut \u00eatre int\u00e9ressant de v\u00e9rifier la version de son kernel afin d&#8217;avoir la derni\u00e8re recommand\u00e9e. On va [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","hide_page_title":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-2030","post","type-post","status-publish","format-standard","hentry","category-divers"],"_links":{"self":[{"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/posts\/2030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/comments?post=2030"}],"version-history":[{"count":15,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/posts\/2030\/revisions"}],"predecessor-version":[{"id":2052,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/posts\/2030\/revisions\/2052"}],"wp:attachment":[{"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/media?parent=2030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/categories?post=2030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.kodono.info\/wordpress\/wp-json\/wp\/v2\/tags?post=2030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}