GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è la migliore pratica per mantenere aggiornato un server Linux Ubuntu (build packages, dist-upgrade, alt repos...)

Soluzione 1:

Mantenere la propria distribuzione richiede molto lavoro. Anche se mantieni i backport, sarai presto sopraffatto dai problemi di sicurezza da risolvere e dovrai estrarre librerie di basso livello per continuare ad aggiornare il tuo software, il che potrebbe rompere altre cose (mantengo server che eseguono distribuzioni vecchie di 6 anni, è non divertente).

L'aggiornamento è generalmente una buona soluzione. do-release-upgrade è ben fatto e dovresti essere in grado di aggiornarlo senza problemi (soprattutto se hai usato solo pacchetti ufficiali).

La mia soluzione preferita potrebbe essere il percorso di reinstallazione. Più specificamente, i tuoi server dovrebbero essere gestiti utilizzando un sistema di gestione della configurazione come Puppet, Cfengine o Chef. Se tutte le tue esigenze di configurazione/pacchetto vengono specificate utilizzando uno strumento di questo tipo e i tuoi dati sono al sicuro su una partizione separata, è molto più semplice reinstallarli rapidamente. Basta installare una nuova distribuzione senza cancellare le partizioni di dati, quindi eseguire lo strumento di gestione della configurazione per reimpostare i pacchetti/configurazioni. Credo che questo sia il modo più pulito per farlo, soprattutto se hai diversi server da gestire.

Se stai utilizzando pacchetti non ufficiali, potresti volerli identificare prima di aggiornare/reinstallare. maintenance-check può aiutarti a identificare i pacchetti che non sono mantenuti ufficialmente da Ubuntu:

$ bzr branch lp:ubuntu-maintenance-check
$ cd ubuntu-maintenance-check
$ ./maintenance-check -f n

Se vuoi reinstallare, puoi anche esportare l'elenco dei pacchetti installati:

$ dpkg --get-selections > myinstall.txt

e il tuo database debconf:

$ debconf-get-selections > debconf.txt # from the debconf-utils package

Come nota, dal momento che stai attualmente utilizzando Karmic, potrebbe non essere troppo violento eseguire l'aggiornamento a Lucid, che è una versione LTS, ancora supportata fino al 2015 per i pacchetti server principali. Questo dovrebbe lasciarti abbastanza tempo per configurare un'installazione automatizzata fattibile per il futuro.

Quando chiedi informazioni sui pacchetti Launchpad, suppongo che tu intenda i PPA. Ci sono tonnellate di diversi PPA. Alcuni sono sperimentali, altri stabili. Alcuni sono mantenuti da sviluppatori ufficiali di Ubuntu, altri sono mantenuti da persone che difficilmente sanno come creare correttamente un pacchetto. È difficile dire in generale se i pacchetti che trovi sui PPA sono buoni, non esiste una regola generale. Il miglior suggerimento in questo caso potrebbe essere guardare troppo il proprietario dei PPA per avere un'idea della possibile qualità dei loro pacchetti.

Soluzione 2:

Se il server non è esposto al mondo e ti fidi assolutamente dei tuoi utenti (in genere non è una buona idea), allora se funziona, puoi semplicemente lasciarlo stare.

Se è in qualche modo esposto al mondo esterno e/o hai l'idea che un utente legittimo ci giochi in modo illegittimo, allora hai assolutamente bisogno di correzioni e patch per il tuo software installato.

In questo caso, hai due opzioni:

  1. Eseguire una distribuzione supportata e ottenere gli aggiornamenti del software oppure

  2. Effettua il backport di tutte le correzioni alla tua distribuzione non supportata, il che, francamente, non sembra fattibile.

Non sono un utente Ubuntu, quindi non posso commentare la completezza delle patch che otterresti con l'opzione 3, ma se hai qualche dubbio, presumo che non avrai una copertura completa.

La soluzione migliore è passare a una versione LTS di Ubuntu, che fornirà supporto per le versioni dei pacchetti fornite per un po' di tempo a venire. Col tempo, alcuni dei pacchetti saranno obsoleti, ma il tuo ambiente avrà patch di sicurezza e sarà stabile (nessun aumento della versione del pacchetto). Dalla mia esperienza, la stabilità di un ambiente di lavoro noto di solito è più preziosa delle nuove funzionalità.

Sembra che la tua posizione attuale non sia mantenibile e devi muoverti. L'unico modo sicuro è ottenere una seconda macchina (o una macchina virtuale) e testare le migrazioni finché non si dispone di una procedura di successo ripetibile, quindi applicarla alla macchina di produzione. Se utilizzi i tuoi backup per eseguire migrazioni di prova, avrai una buona opportunità per testare anche le tue procedure di backup.

Soluzione 3:

L'unico vero modo per andare avanti è un aggiornamento della distribuzione. Posso capire che tu sia nervoso per questo, dato che a questo punto salterai diverse versioni in avanti (l'11.04 è appena stato rilasciato).

Consiglierei di creare un clone delle unità in questa macchina e quindi utilizzare un computer separato per eseguire i cloni e utilizzarlo per eseguire una serie di aggiornamenti di prova. Prendi nota di tutti i problemi riscontrati e ripeti finché non avrai una procedura chiara per tutti loro. Quindi applicalo al tuo server live.

Se non puoi permetterti tempi di inattività, la migrazione è l'unica via d'uscita. Dimentica i pinning e i backport, che ti manterranno in vita solo per un periodo di tempo limitato. E l'opzione "roll your own" non vale nemmeno la pena di essere presa in considerazione. Vale solo i miei 2 penny.


Linux
  1. Qual è la migliore distribuzione Linux per principianti?

  2. Ubuntu Server vs Desktop:qual è la differenza?

  3. La migliore distribuzione Linux per il tuo prossimo server cloud

  4. Imposta la data, l'ora e il fuso orario su un server Linux

  5. Qual è l'equivalente di Active Directory su Linux

Le 10 migliori cache Web Linux per prestazioni migliori

Graylog Monitoring Server su Ubuntu Linux per Monitoring Server/Services

Linux Mint vs Ubuntu:15 fatti da sapere prima di scegliere quello migliore

Linux Mint vs Ubuntu:qual è il migliore per te?

Come determinare cosa sta utilizzando più spazio su disco su un server Linux?

I 15 migliori software per forum per Linux per creare una community online