Come mantenere più macchine aggiornate contemporaneamente

Nelle situazioni in cui gestisci più macchine, Apt può essere molto utile in quanto semplifica il processo di aggiornamento e applicazione delle patch di sicurezza per ogni macchina. Il problema è che, con il metodo tradizionale, una volta che esce un aggiornamento, devi scaricare una copia di tutti i nuovi pacchetti per ciascuna delle macchine, il che implica un consumo fenomenale della nostra banda e larghezza di banda. Fortunatamente esiste un metodo che ci permette di aggiornare una delle macchine e, da lì, aggiornare il resto delle macchine che compongono la nostra rete. Questo metodo, oltre a ridurre i costi e ottimizzare l'utilizzo della nostra banda, evita la duplicazione dei pacchetti sulle diverse macchine: tutte installano i pacchetti utilizzando il nostro "server cache".


Quando esegui la stessa distribuzione su macchine diverse (al lavoro, in laboratori informatici, su server "farm", in cluster o anche sulla tua piccola rete domestica) può essere utile creare un archivio cache sulla tua rete in modo che una volta che un pacchetto è stato scaricato da un repository ufficiale, tutte le altre macchine lo scaricano da quel repository cache che è memorizzato su una macchina della tua rete che chiameremo "server". In questo modo gli aggiornamenti scaricati da una macchina possono essere installati sugli altri senza doverli scaricare nuovamente dai repository ufficiali.

Diamo prima un'occhiata ad alcune soluzioni "non tradizionali" che NON consiglio, ma che sicuramente verranno in mente quando risolverò questa domanda.

Condividi / etc / apt

Quando installi un pacchetto su una distribuzione Debian (o suoi derivati), viene memorizzato localmente nella directory '/ etc / apt'. Quando è richiesto un pacchetto, Apt prima cerca in questa directory per vedere se c'è una copia locale (cioè una cache), evitando così scaricamenti non necessari. Di conseguenza, molti di voi avranno sicuramente pensato che un buon modo per risolvere il problema in questione potrebbe essere quello di scegliere un computer, che designeremmo come una sorta di server, che verrebbe aggiornato utilizzando i repository ufficiali, e che sarebbe condividi la tua directory "/ etc / apt" con il resto delle macchine sulla rete. Tuttavia, questo metodo potrebbe portare a problemi legati al blocco del file "sources.list". In generale, non è la soluzione più utilizzata o più conveniente.

Spostare i pacchetti

Invece di condividere una comune directory '/ etc / apt', un'altra alternativa potrebbe essere che ogni computer utilizzi la propria directory cache locale ma generi uno script che si occupi di copiare i pacchetti da una macchina all'altra in modo che rimangano tutti aggiornati . Uno strumento per svolgere questo compito può essere "apt-move", ma sinceramente non lo consiglio perché non è abbastanza trasparente per l'utente finale. Inoltre, può significare un uso completamente non necessario dello spazio su disco poiché tutti i pacchetti devono essere copiati su ciascuna delle macchine.

Sistemi di cache dedicati

La soluzione migliore per questo problema è utilizzare un sistema di cache dedicato. In breve, si tratta di creare una copia dei server ufficiali su una delle macchine sulla rete e quindi configurare il resto delle macchine in modo che, invece di cercare aggiornamenti dai server ufficiali, lo facciano usando questo cache locale (o copia).

Esistono diversi sistemi progettati per funzionare con Apt, inclusi apt-cacher, apt-proxy e apt-cached.

Qui ci occuperemo di apt-cacher, che è il più facile da usare.

apt-cacher

Apt-cacher è molto diverso dagli altri sistemi di memorizzazione nella cache del repository poiché non è un programma autonomo ma viene eseguito come script CGI in Apache. Questo ha diversi vantaggi, come renderlo uno strumento piccolo e semplice ma allo stesso tempo molto potente e, di conseguenza, più robusto perché non richiede un proprio codice per gestire i protocolli, ed è molto flessibile perché puoi usare gli Apache meccanismo di controllo degli accessi nel caso in cui si desideri limitare il numero di macchine abilitate ad accedere alla cache.

Apt-cacher deve essere installato solo su una macchina, quella che decidi dovrebbe funzionare come cache del repository locale. Quindi, il resto dei computer sulla rete deve essere configurato per richiedere aggiornamenti dalla cache e non dai server ufficiali.

Configurazione del server

Per installare solo

sudo apt-get install apt-cacher

Questo pacchetto ha dipendenze con apache, perl e wget, quindi le installerà se non l'hai già installato.

Una volta installato, si consiglia di riavviare Apache:

/etc/init.d/apache riavvio

Infine, tutto ciò che devi fare è regolare i parametri predefiniti dello script. Ho scritto in un terminale:

sudo gedit /etc/apt-cacher/apt-cacher.conf

In generale, tutti i valori predefiniti vanno bene, ma si consiglia di regolare i tre seguenti:

admin_email = mimail @ myserver generate_reports = 1 expire_hours = 24

Il secondo elemento è una variabile booleana che determina la generazione dei report (0 non genera report, 1 li genera). Il primo elemento, invece, è l'indirizzo di posta elettronica a cui verranno inviati i report creati. Il terzo e ultimo elemento determina il numero di ore che Apt deve attendere per verificare la disponibilità di aggiornamenti sui server ufficiali.

Se utilizzi un proxy, non dimenticare di aggiungere i seguenti elementi:

http_proxy = proxy.example.com: 8080 use_proxy = 1

Per verificare che funzioni, è possibile accedere alla cache locale tramite l'URL http: // nome_server / apt-cacher / e verrà visualizzata una pagina che mostra la configurazione di apt-cacher. Ricorda che "nome_server" deve essere sostituito dall'IP della macchina che hai designato come "server", cioè come depositario della cache dei pacchetti locale.

Configurazione dei client

Ora tutto ciò che devi fare è modificare il sources.list dei client in modo che passino attraverso il server. Se l'IP del server è 123.123.123.123, devi aggiungerlo a ciascuna riga di sources.list, e anche fare attenzione che si riferiscano tutti allo stesso server, altrimenti la cache non avrà alcun effetto.

sudo gedit /etc/apt/sources.list
Nota: stai attento! In Debian e nelle sue derivate "sources.list" è memorizzato in "/ etc / apt". Tuttavia, in altre distribuzioni potrebbe essere memorizzato in un altro percorso. Nel caso in cui non riesci a trovare il file, puoi sempre trovarlo inserendo "locate sources.list" in un terminale.

Una volta aperto il file, essendo l'IP del nostro server 123.123.123.123, tutte le righe devono essere modificate utilizzando i seguenti criteri:

# Originale #deb http://ftp.us.debian.org/debian/ sid main contrib non-free # deb-src http://ftp.us.debian.org/debian/ sid main contrib non-free # Modificato deb http://123.123.123.123/apt-cacher/ftp.us.debian.org/debian/ sid main contrib non-free deb-src http://123.123.123.123/apt-cacher/ftp.us.debian. org / debian / sid main contrib non libero

Come puoi vedere, devi aggiungere l'IP del server + '/ apt-cacher /' all'inizio dell'URL. Poi arriva il resto della linea originale.

Statistiche sul traffico

Se hai aggiunto l'elemento 'generate_reports = 1' nel file 'apt-cacher.conf', apt-cacher genererà statistiche di accesso, a cui puoi accedere con l'url '/ apt-cacher / report'.

Se, per qualsiasi motivo, è necessario generare le statistiche prima del numero di ore impostato in 'apt-cacher.conf', eseguire il seguente comando:

/usr/share/apt-cacher/apt-cacher-report.pl

Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.

  1.   eduardo suddetto

    Saluti, ottimo contributo, la mia domanda è se conosci qualche applicazione che ti permetta di avere un repository centralizzato per applicare patch ma a differenti distribuzioni, cioè mantenere più macchine aggiornate contemporaneamente ma avere differenti distribuzioni

  2.   Usiamo Linux suddetto

    Ciao Eduardo! La verità è che lo vedo molto difficile. Se scopri un modo, non smettere di farmelo sapere.
    Un grande abbraccio! Saluti! Paolo.

  3.   Pulcino suddetto

    Uso Puppet per gestire in remoto i server che gestisco.

  4.   Usiamo Linux suddetto

    Sì. Grazie mille per l'informazione. L'ho già corretto.
    Abbraccio! Paolo.

  5.   geniutrixone suddetto

    Ciao,

    il tutorial è super buono ... ho uno scope .. in Debian Lenny il source.lst è nel percorso / etc / apt /

    saluti

  6.   sepulvedamarcos suddetto

    domanda….

    se ho un paio di macchine con la stessa distribuzione… ma non con gli stessi programmi…. Come fai a sapere per scaricare dai repository ufficiali…. abbassa tutto ??? ...

  7.   Usiamo Linux suddetto

    La tua domanda è eccellente. Calcolo che il sistema dovrebbe funzionare come in un comune Apt: se non lo trova nella cache, lo scarica dai repository ufficiali. In questo caso, una delle macchine "client" informa il "server" che ha bisogno di un aggiornamento secondo l'elenco degli aggiornamenti sul "server" della tua rete. Per installare quell'aggiornamento, calcolo che prima cercherà il pacchetto nella cache del server. Se non riesce a trovarlo, lo scarica dai repository ufficiali, lo salva sul server e, da lì, viene installato sulla macchina che lo richiede. Quel pacchetto sarà disponibile nella cache del "server" in modo che anche altre macchine sulla rete possano installarlo da lì.

    Sentiti libero di scrivere se non sono stato abbastanza chiaro.

    Un abbraccio! Paolo.

  8.   Mishudark suddetto

    Penso che ci sia un ERRORE… i pacchetti non sono memorizzati in / etc / apt…. in realtà rimangono in / var / cache / apt / archives

  9.   Usiamo Linux suddetto

    La verità è che non lo so.
    Certo che c'è un modo per farlo. 🙁
    Se lo scopri, fammelo sapere e lo aggiungerò.
    Saluti! Paolo.

  10.   Alvaro suddetto

    Niente con gli IP dinamici, giusto?

  11.   Marce suddetto

    Apparentemente nelle distribuzioni più attuali devi aggiungere la porta (3142 di default) all'URL della rete locale. Sarebbe simile a questo: http://mi_servidor:3142/apt-cacher

  12.   Alfredo Torrealba suddetto

    Ho lubuntu 16.04 che lo ha fatto con questo sistema e se ha funzionato per lui? E quello che volevo chiedere è il seguente se installo questo server e le mie altre macchine non hanno gli stessi programmi quando faccio una richiesta sulle mie macchine client per l'installazione di un programma che ho sul server, pensi che installo direttamente dal server locale o la richiesta al server del repository ufficiale ¿?