Bonjour à tous,

Aujourd’hui on va voir comment garder un kernel très récent sous Debian en utilisant les backports. On verra aussi l’automatisation du processus avec Ansible.

 

Piocher dans les backports de sa distribution permet d’obtenir des versions logicielles bien plus récentes, mais non maintenues par l’équipe de sécurité Debian.

Le kernel présent par défaut dans Debian Jessie est vieux (3.16) alors que celui présent dans les backports de Jessie est bien plus récent (4.6).

 

Attention, cette manipulation ne marche que sur des serveurs physiques ou des machines virtuelles. Ça ne marchera pas avec de la virtualisation par conteneur (LXC, OpenVZ …).

 

Installation standard :

Dans un premier temps, assurez-vous de la présence des backports de Jessie dans votre fichier /etc/apt/sources.list :

deb http://httpredir.debian.org/debian jessie-backports main contrib non-free
deb-src http://httpredir.debian.org/debian jessie-backports main contrib non-free

 

Si vous suivez mes articles vous devriez déjà avoir cette entrée, sinon ajoutez-la et lancez la commande suivante :

apt-get update

 

Pour finir, installez la dernière version du kernel avec la commande suivante :

apt-get install -t jessie-backports linux-image-amd64

 

Redémarrez le serveur avec la commande suivante :

reboot

 

Une fois le serveur redémarrer, lancez la commande uname -a et vous devriez voir votre nouveau kernel :

Linux serveur 4.6.0-0.bpo.1-amd64 #1 SMP Debian 4.6.1-1~bpo8+1 (2016-06-14) x86_64 GNU/Linux

 

Installation avec Ansible :

Si vous avez suivi mon dernier article sur Ansible, vous avez déjà le bon fichier sources.list sur tous vos serveurs Debian. Si ce n’est pas le cas lisez-le 🙂

On va se créer un playbook pour installer / mettre à jour le kernel sur tous nos serveurs et le redémarrer automatiquement si nécessaire.

cd /etc/ansible/playbooks/
nano kernel-backports.yml

 

Remplissez-le avec ceci :

- hosts: backport-kernel
  become: yes
  become_method: sudo
  tasks:
   - name: updates servers
     apt: update_cache=yes cache_valid_time=3600

   - name: install kernel
     apt: name=linux-image-amd64 state=latest default_release=jessie-backports

   - name: Check if a reboot is required
     register: file
     stat: path=/var/run/reboot-required get_md5=no

   - name: Reboot the server
     command: /sbin/reboot
     when: file.stat.exists == true

 

  • Version simple

On lance un apt-get update et on installe / mets à jour le paquet linux-image-amd64 depuis la source jessie-backports.

Ensuite on vérifie la présence du fichier /var/run/reboot/required qui indique qu’un redémarrage est en attente sur le serveur.

Si ce fichier existe alors, on redémarre le serveur.

 

  • Version compliquée

Simplifie-toi la vie 😀

 

Configurer les hôtes qui recevront le kernel dans votre fichier /etc/ansible/hosts et lancez le playbook avec la commande suivante :

ansible-playbook kernel-backports.yml

 

Et voilà, c’est aussi simple que ça 🙂