Usiamo unattended-upgrades
dal 2015 al 2020 senza problemi. Abbiamo una piccola configurazione (su DigitalOcean) con:
nginx
mysql-server
php5-fpm
php5-curl
php5-mysql
Basato su buone prestazioni passate, fare gli aggiornamenti in questo modo sembra più sicuro che non farlo. Ma questa non è necessariamente una garanzia per il futuro!
Potrebbe non essere una buona idea apache
, in base ai rapporti di altri utenti e alla mia esperienza passata di apache
aggiornamenti. [Vedi sopra, e qui ]
Con unattended-upgrades
, l'intervento manuale sarà ancora richiesto quando il rilascio si avvicina a EOL .
(A parte la domanda: nella mia esperienza con TWiki, WordPress e Jenkins, mantenere queste app aggiornate è in realtà una preoccupazione maggiore rispetto al sistema operativo stesso, anche se ovviamente dovremmo davvero fare entrambe le cose. Per la tranquillità, è possibile eseguire il sandboxing di app rivolte a Internet come processi non root in esecuzione all'interno di un contenitore Docker.)
Ma poiché hai chiesto informazioni sulle migliori pratiche , l'approccio principale raccomandato nella documentazione di AWS è:
Crea e avvia nuove istanze per sostituire le tue attuali istanze online. Quindi eliminare le istanze correnti.
Le nuove istanze avranno installato l'ultimo set di patch di sicurezza durante l'installazione.
(Febbraio 2020)
Questo può essere fatto come parte di una strategia di distribuzione blu-verde . Il vantaggio qui è che puoi eseguire test sul tuo nuovo server prima di passare il traffico. Se i test sono accurati, in teoria i tuoi aggiornamenti possono essere completamente automatizzati, verificati prima di essere pubblicati e senza tempi di inattività.
Altri vantaggi:
I test possono darti un avviso avanzato se è necessaria l'attenzione umana (al contrario unattended-upgrades
, quando gli avvisi arrivano dai tuoi utenti solo quando il problema è vivo!)
Se il tuo sistema viene compromesso o decidi di cambiare provider, questo approccio dovrebbe semplificare l'implementazione di una nuova distribuzione. La tua strategia di distribuzione è basata su script, piuttosto che memoria antica.
Naturalmente, per questo approccio sono necessarie più impostazioni rispetto alla semplice installazione unattended-upgrades
e una maggiore complessità, quindi c'è ancora spazio per gli errori.
AWS menziona anche l'esecuzione del "comando stack Dipendenze aggiornamento", che sembra essere il loro modo ufficiale di fare qualcosa di simile unattended-upgrades
. Sembra che possa essere attivato dall'interfaccia delle loro istanze, ma non sono sicuro che possa essere automatizzato.