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.
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.
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:
- un server con installato apache, yum, yum-downloadonly
- 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:
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.