Creare un repository Yum

Creare il tuo repository yum ha dei vantaggi oggettivi sopratutto se devi installare e aggiornare molti server linux e vuoi essere certo che anche a mesi di distanza l’aggiornamento avvenga con gli stessi pacchetti.

Schermata Yum Update

Il problema che più spesso incontro con l’attività di installazione di molti server, sul medesimo hardware è che tra una installazione e la successiva le versioni dei pacchetti di upgrade sono differenti, questo causa un disallineamento tra una installazione e la successiva.

Un’altro vantaggio lo avrai nel caso i cui si rende necessario aggiungere un nuovo server ad una batteria di server già esistente, le versioni di software possono variare  e trovare i pacchetti identici da installare può essere un vero incubo oltre ad un dispendio di tempo.

Ecco perchè in questi casi se riesci a costruirti un tuo repository non incorrerai in questi problemi.

Inoltre con un tuo repository, nella rete locale, l’installazione e l’aggiornamento dei server sarà molto più rapido; in pratica non dovrai scaricare da Internet tutti i pacchetti software per ogni server ma lo potrai fare una volta per tutte le installazioni.

yum server centrale

Per questo motivo puoi crearti un server locale in cui creare un repository yum Ad Hoc per le tue esigenze.

Nel tuo repository puoi mettere solo i software e le versioni necessarie ai server, e ti tornerà utile aggiornarlo con le versioni che hai testato, non rischiando di aggiornare una versione non collaudata.

Cosa ti occorre:

  1. un server con installato apache, yum, yum-downloadonly
  2. una rete a cui collegare i server da aggiornare e il server di repository

Nella pratica potresti utilizzare anche il primo server installato come repository dei successivi, questo ti riduce il numero di server da possedere, di contro complica la fase di test dei nuovi aggiornamenti prima di distribuirli, perchè quando tale server sarà in produzione non è il caso di testare il software direttamente su questo server.

Io per ovviare a questa condizione preferisco avere un server unico con i repositori che progressivamente testo sui server di sviluppo e test prima di installarli in produzione.

Installa il server di repository:

Terminata l’installazione base del sistema operativo, io preferisco CentOS, installa i pacchetti che ti occorrono:

#> yum install httpd yum-downloadonly createrepo

al termine avvia il server httpd:

#> /etc/init.d/httpd start

Se il risultato è sinile al seguente il server è correttamente installato ed avviato:

httpd start su CentOS

A questo punto assicurati che il server httpd parta al prossimo riavvio del server:

#> chkconfig --level 2345 httpd on

Apache  ( httpd server ) usa come directory principale /var/www/html per non addentrarti in questa sede su argomenti lontani dall’obiettivo usa questa come directory per il tuo repository.

Per comodità crea all’interno della suddetta directory una sottodirectory ( es: centos ) in cui metterai i pacchetti scaricati per creare il tuo repository:

#> cd /var/www/html
#> mkdir centos5

Puoi anche creare più directory ciascuna con la versione del server di cui sarà repository, ad esempio centos4, centos5, centos5_64, ecc..

Ti servono i pacchetti rpm che comporranno il tuo repository, supponiamo che siano tutti quelli necessari ad eseguire un update del server su cui ti trovi, se il server da aggiornare è differente esegui questa operazione sul server finale e sposta poi i file via scp,frp,rsync o altro nella directory appena creata:

#> yum update -y --downloadonly --downloaddir=/var/www/html/centos5

Con il comando yum update -y indichi al sistema di scaricare tutti i pacchetti di update disponibili, se volessi scaricare solo quelli relativi ad un determinato software puoi aggiungere il nome del pacchetto prima dell’opzione -y; l’opzione -y indica di rispondere yes automaticamente a tutte le richieste, rende automatico ed indipendente il download e puoi dedicarti ad altro; l’opzione –downloadonly è quella fondamentale perchè indica di limitarsi a scaricare i pachetti senza installarli e l’opzione –downloaddir ti permette di specificare la directory di destinazione in cui mettere i file scaricati.

Crea il tuo repository utilizzando il comando:

#> createrepo -v /var/www/html/centos5

con questa operazione hai trasformato quelli che erano solo degli rpm in un repository yum.

Non resta che creare un file di configurazione posizionato su ciascun server installato per indicare a yum il tuo repository, tale file deve contenere le righe:

# Questo repository è mio
[miorepository]
name=Mio_reposytory
baseurl=http://mioserver/centos5
gpgcheck=0
enable=1

al posto di mioserver devi specificare il nome del tuo server o in alternativa l’indirizzo IP.

Copia questo file nella dir /etc/yum.repos.d/ dei server da aggiornare, con il nome che preferisci non dimenticando che deve avere estensione .repo (es.: miorepository.repo)

Se vuoi puoi disabilitare gli altri repository della distribuzione per evitare, sopratutto in seguito sia conflitti sia il download di pacchetti software o versioni differenti da quelle testate.

Esegui quindi l’update sui server, se vuoi puoi farlo anche sul server di repository stesso:

#> yum update -y

Buon lavoro.

  • Questo sito ed i suoi contenuti è fornito "così com'è" e Mauro Alfieri non rilascia alcuna dichiarazione o garanzia di alcun tipo, esplicita o implicita, riguardo alla completezza, accuratezza, affidabilità, idoneità o disponibilità del sito o delle informazioni, prodotti, servizi o grafiche correlate contenute sul sito per qualsiasi scopo.
  • Ti chiedo di leggere e rispettare il regolamento del sito prima di utilizzarlo
  • Ti chiedo di leggere i Termini e Condizioni d'uso del sito prima di utilizzarlo
  • In qualità di Affiliato Amazon io ricevo un guadagno dagli acquisti idonei qualora siano presenti link al suddetto sito.

Permalink link a questo articolo: https://www.mauroalfieri.it/informatica/creare-un-repository-yum.html

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.