Mettre à jour un kernel OVH

kernel 20 janv. 2016

Il peut parfois s’avéré utile de MàJ le kernel de son serveur. Par exemple pour pouvoir utiliser Docker, mais pas que. Pour connaître votre version faites un uname -r.

3 exemples :

┬─[ayx@Aerya:~]─[13:29:52]                                                      
╰─>$ uname -r
4.3.3-2-ARCH

┬─[tv@tv:~]─[13:30:23]                                                      
╰─>$ uname -r
3.16.0-38-generic

┬─[test@TestOnline:~]─[13:31:17]                                                      
╰─>$ uname -r
3.2.0-4-amd64

 

A la main

Voici la manipulation pour installer une autre version (OVH) du noyau sur Debian. Commencez par aller la choisir ici. Le mieux, pour une machine de prod, étant de rester sur un kernel stable (et en plus il faut rebooter pour activer le nouveau noyau). Pour une seedbox ou serveur de jeu ou que sais-je vous pouvez jouer avec une unstable, après avoir fait un backup de vos données par sécurité.

Pour connaître la liste des kernels Linux et leurs différences vous pouvez vous rendre sur ces 2 sites : kernel.org & kernelnewbies.org.

Si je vous parle ici de noyau “OVH” c’est parce que comme la plupart des loueurs de serveurs ils apportent des modifications aux noyaux de leurs distributions, les rendant pleinement compatibles avec leur matériel. Ce qui évite ainsi tout risque de plantage et permet en outre d’avoir un support prompt et complet en cas de pépin. Vous n’allez pas chez Apple avec votre iPhone jailbreaké, pareil ici. Quoique le SAV (pro/payant) est à même d’aider pour tout type de config.

Le principe est très simple :

  • On place le nouveau kernel dans le dossier /boot,
  • On met à jour grub (servant à démarrer la machine) qui par défaut prend le kernel le plus récent présent dans /boot,
  • On reboot.

Connectez-vous à votre machine et placez-vous dans le dossier /boot puis téléchargez la version du noyau qui vous intéresse. Dans cet exemple je prends la 4.2.7 grs en IPv6 tant qu’à faire.

wget ftp://ftp.ovh.net/made-in-ovh/bzImage/4.2.7/System.map-4.2.7-xxxx-grs-ipv6-64
wget ftp://ftp.ovh.net/made-in-ovh/bzImage/4.2.7/bzImage-4.2.7-xxxx-grs-ipv6-64

Mettez à jour grub et rebootez

update-grub
reboot

Et au retour vous verrez votre nouveau kernel avec uname -r.

 

De manière automatique

Szepeviktor nous simplifie le boulot avec un script à lancer en cron :)

#!/bin/bash
#
# Automatic update for made-in-ovh OVH kernels.
#
# VERSION       :0.2
# DATE          :2015-02-10
# AUTHOR        :Viktor Szépe <[email protected]>
# LICENSE       :The MIT License (MIT)
# URL           :https://github.com/szepeviktor/debian-server-tools
# BASH-VERSION  :4.2+
# DOCUMENTATION :http://help.ovh.co.uk/KernelInstall
# RSS-FEED      :http://www.ftp2rss.com/rss?v=1&ftp=ftp%3A%2F%2Fftp.ovh.net%2Fmade-in-ovh%2FbzImage&port=21&files=20
# DEPENDS       :apt-get install lftp heirloom-mailx

OVH_KERNELS="ftp://ftp.ovh.net/made-in-ovh/bzImage/latest-production/"
# grsecurity + IPv6 + amd64 VPS
CURRENT="$(ls /boot/*-xxxx-grs-ipv6-64-vps)"

lftp -e "lcd /boot/; mirror -i '.*-xxxx-grs-ipv6-64-vps$'; bye" "$OVH_KERNELS"
NEW="$(ls /boot/*-xxxx-grs-ipv6-64-vps)"

if ! [ "$CURRENT" == "$NEW" ]; then
    echo -e "update-grub && reboot\nnewest two:\n$(ls -1tr /boot/bzImage-*|tail -n2)" \
        | mailx -s "[$(hostname -s)] new kernel from OVH" root
fi

Copiez-le dans votre /home, par exemple sous le nom OVHkernelautoupdate.sh. Rendez-le exécutable (chmod +x  OVHkernelautoupdate.sh) et configurez ensuite votre cron pour qu’il le lance tous les X mois. Ou à la fréquence que vous voulez.

# Ouvrir cron
crontab -e

# Puis ajoutez ceci à la fin pour une exécution tous les jours à minuit
0 0 1 * * /home/$USER/OVHkernelautoupdate.sh

Ici ce sera le 1er de chaque mois.

Attention cependant, même si OVH teste les kernels qu’il met à dispo pour ses distri il n’est vraiment pas du tout recommandé de faire ça sur un serveur de prod.

 

Mots clés