Site icon Tosolini.info

Canonical livepatch: kernel nuovo senza riavvio

Da qualche tempo è presente un particolare servizio offerto da Canonical che permette l’installazione di un Kernel Linux aggiornato senza riavviare. Il sogno di qualunque sysadmin!

Infatti ad ogni installazione di kernel occorrerebbe riavviare, e non si può sempre fare sul momento nella maggioranza dei casi. Per questo una opzione è quella di schedulare il riavvio in un momento opportuno. Una operazione che qualche rischio, seppure minimale, lo porta con se, come il blocco del server proprio in fase di avvio. Successivamente poi, a riavvio avvenuto con successo, conviene eliminare i penultimi kernel vecchi. Un Kernel si porta via circa 300 MB  di spazio, oltre alle relative istruzioni sul boot loader e sul sistema. Sotto questo punto di vista Ubuntu e Debian sono campioni procedurali, in più di 10 anni non ho mai riscontrato problemi in tal senso.

Ora Canonical permette di utilizzare un servizio remoto, che richiede una iscrizione al loro Canonical Livepatch Portal (si possono utilizzare le credenziali UbuntuOne per chi le aveva a suo tempo) e prevede due tipi di sottoscrizioni. La Canonical che richiede un contratto commerciale e la Ubuntu che permette di utilizzare gratuitamente il servizio fino a 3 macchine, siano esse server o desktop. Infatti il servizio è disponibile anche per i desktop, anche se francamente ritengo la cosa inutile. Attenzione che tale servizio è riservato alle versioni LTS, al momento infatti è disponibile per le versioni 14.04 e 16.04. Ovviamente lo sarà anche per la 18.04 appena questa sarà ufficialmente rilasciata.

Come fare per ottenere l’iscrizione?

Occorre registrarsi al Livepatch Portal, quindi scegliere il tipo di iscrizione.

A questo punto viene generato un token univoco che ci servirà per l’installazione del demone sul server.

Come si vede dall’immagine sopra sarà sufficiente dare da linea di comando l’installazione tramite pacchetto SNAP e quindi dare il comando di abilitazione con il token fornito.

Se SNAP non è installato:


sudo apt install snapd

Questi comandi li trovate già precompilati nella schermata di accesso, basterà quindi copiarli via console sul vostro server.

Chiaramente per disattivare il servizio, basterà dare l’ultimo comando con il disable al posto dell’enable, il token non è necessario.

Problemi Noti:

E’ probabile che il vostro server sia una VPS, in questo caso c’è un problema da risolvere. L’immagine di partenza della versione di Ubuntu Server sarà la medesima per moltissime macchine. Ogni macchina ha una machine-id univoca, il primo che associa questo ID al servizio Livepatch non avrà problemi, ma tutti quelli successivi si troveranno con un errore di questo tipo:


2018/04/12 13:33:02 error executing enable: This machine ID is already enabled with a different 
key or is non-unique. Either "sudo canonical-livepatch disable" on the other machine, or regenerate 
a unique /etc/machine-id on this machine with "sudo rm /etc/machine-id /var/lib/dbus/machine-id 
&& sudo systemd-machine-id-setup" : {"error": "Conflicting machine-id"}

Come si vede dal messaggio è necessario resettare il machine-id in uso su questa macchina, o disattivarlo su quella originale. Chiaramente la seconda opzione è fuori discussione, quindi procederemo come segue:

Per prima cosa andiamo ad effettuare un backup delle machine-id


cp /etc/machine-id /etc/machine-id.original
cp /var/lib/dbus/machine-id /var/lib/dbus/machine-id.original

A questo punto possiamo eliminare i file e chiedere la generazione di un nuovo id:


rm /etc/machine-id /var/lib/dbus/machine-id && systemd-machine-id-setup

A questo punto possiamo ritornare a dare il comando di enable che andrà a buon fine.

Exit mobile version