Ricerca nel sito web

Come impostare il repository Yum HTTP locale su CentOS 7


Un repository software (“repo” in breve) è una posizione centrale di archiviazione dei file per conservare e mantenere i pacchetti software, da cui gli utenti possono recuperare i pacchetti e installarli sui propri computer.

I repository sono spesso archiviati su server su una rete, ad esempio Internet, a cui possono accedere più utenti. Tuttavia, puoi creare e configurare un repository locale sul tuo computer e accedervi come utente singolo o consentire l'accesso ad altri computer sulla tua LAN (Local Area Network).

Un vantaggio di configurare un repository locale è che non è necessaria una connessione Internet per installare i pacchetti software.

YUM (Yellowdog Updater Modified) è uno strumento di gestione dei pacchetti ampiamente utilizzato per RPM (RedHat Package Manager) basato su sistemi Linux, che semplifica l'installazione del software su Red Hat /CentOSLinux.

In questo articolo spiegheremo come configurare un repository YUM locale su server web HTTP (Nginx) su CentOS 7 VPS e ti mostrerà anche come trovare e installare pacchetti software sui computer client CentOS 7.

Il nostro ambiente di test

Yum HTTP Repository Server:	CentOS 7 [192.168.0.100]
Client Machine:		CentOS 7 [192.168.0.101]

Passaggio 1: installare il server Web Nginx

1. Inizia innanzitutto installando il server HTTP Nginx dal repository EPEL utilizzando il gestore pacchetti YUM come segue.

yum install epel-release
yum install nginx 

2. Dopo aver installato il server web Nginx, puoi avviarlo per la prima volta e abilitarlo all'avvio automatico all'avvio del sistema.

 
systemctl start nginx
systemctl enable nginx
systemctl status nginx

3. Successivamente, devi aprire le porte 80 e 443 per consentire il traffico web al servizio Nginx, aggiornare le regole del firewall di sistema per consentire i pacchetti in entrata su HTTP e HTTPS utilizzando i comandi seguenti.

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

4. Ora puoi confermare che il tuo server Nginx è attivo e funzionante, utilizzando il seguente URL; se vedi la pagina web Nginx predefinita, va tutto bene.

http://SERVER_DOMAIN_NAME_OR_IP 

Passaggio 2: crea un repository locale Yum

5. In questo passaggio, devi installare i pacchetti richiesti per creare, configurare e gestire il tuo repository locale.

yum install createrepo  yum-utils

6. Successivamente, crea le directory necessarie (repository yum) che memorizzeranno i pacchetti e tutte le informazioni correlate.

mkdir -p /var/www/html/repos/{base,centosplus,extras,updates}

7. Quindi utilizza lo strumento reposync per sincronizzare i repository CentOS YUM nelle directory locali come mostrato.

reposync -g -l -d -m --repoid=base --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=centosplus --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=extras --newest-only --download-metadata --download_path=/var/www/html/repos/
reposync -g -l -d -m --repoid=updates --newest-only --download-metadata --download_path=/var/www/html/repos/
Uscita del campione
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.fibergrid.in
 * epel: mirror.xeonbd.com
 * extras: mirrors.fibergrid.in
 * updates: mirrors.fibergrid.in
base/7/x86_64/group                                                    | 891 kB  00:00:02     
No Presto metadata available for base
(1/9911): 389-ds-base-snmp-1.3.7.5-18.el7.x86_64.rpm                   | 163 kB  00:00:02     
(2/9911): 389-ds-base-devel-1.3.7.5-18.el7.x86_64.rpm                  | 267 kB  00:00:02     
(3/9911): ElectricFence-2.2.2-39.el7.i686.rpm                          |  35 kB  00:00:00     
(4/9911): ElectricFence-2.2.2-39.el7.x86_64.rpm                        |  35 kB  00:00:00     
(5/9911): 389-ds-base-libs-1.3.7.5-18.el7.x86_64.rpm                   | 695 kB  00:00:04     
(6/9911): GConf2-devel-3.2.6-8.el7.i686.rpm                            | 110 kB  00:00:00     
(7/9911): GConf2-devel-3.2.6-8.el7.x86_64.rpm                          | 110 kB  00:00:00     
(8/9911): GConf2-3.2.6-8.el7.i686.rpm                                  | 1.0 MB  00:00:06     

Nei comandi precedenti, l'opzione:

  • -g – abilita la rimozione dei pacchetti che non superano il controllo della firma GPG dopo il download.
  • -l – abilita il supporto del plugin yum.
  • -d – abilita l'eliminazione dei pacchetti locali non più presenti nel repository.
  • -m – abilita il download dei file comps.xml.
  • --repoid – specifica l'ID del repository.
  • --newest-only – indica a reposync di estrarre solo la versione più recente di ciascun pacchetto nei repository.
  • --download-metadata – abilita il download di tutti i metadati non predefiniti.
  • --download_path – specifica il percorso per scaricare i pacchetti.

8. Successivamente, controlla il contenuto delle directory locali per assicurarti che tutti i pacchetti siano stati sincronizzati localmente.

ls -l /var/www/html/repos/base/
ls -l /var/www/html/repos/base/Packages/
ls -l /var/www/html/repos/centosplus/
ls -l /var/www/html/repos/centosplus/Packages/
ls -l /var/www/html/repos/extras/
ls -l /var/www/html/repos/extras/Packages/
ls -l /var/www/html/repos/updates/
ls -l /var/www/html/repos/updates/Packages/

9. Ora crea un nuovo repository per i repository locali eseguendo i seguenti comandi, dove il flag -g viene utilizzato per aggiornare le informazioni sul gruppo di pacchetti utilizzando il specificato file .xml.

createrepo -g comps.xml /var/www/html/repos/base/  
createrepo -g comps.xml /var/www/html/repos/centosplus/	
createrepo -g comps.xml /var/www/html/repos/extras/  
createrepo -g comps.xml /var/www/html/repos/updates/  

10. Per abilitare la visualizzazione dei repository e dei pacchetti in essi contenuti, tramite un browser web, crea un blocco server Nginx che punti alla radice dei tuoi repository come mostrato.

vim /etc/nginx/conf.d/repos.conf 

Aggiungi la seguente configurazione nel file repos.conf.

server {
        listen   80;
        server_name  repos.test.lab;	#change  test.lab to your real domain 
        root   /var/www/html/repos;
        location / {
                index  index.php index.html index.htm;
                autoindex on;	#enable listing of directory index
        }
}

Salva il file e chiudilo.

11. Quindi riavvia il server Nginx e visualizza i repository da un browser Web utilizzando il seguente URL.

http://repos.test.lab

Passaggio 3: crea un processo Cron per sincronizzare e creare repository

12. Successivamente, aggiungi un processo cron che sincronizzerà automaticamente i tuoi repository locali con i repository CentOS ufficiali per acquisire gli aggiornamenti e le patch di sicurezza.

vim /etc/cron.daily/update-localrepos

Aggiungi questi comandi nello script.

#!/bin/bash
##specify all local repositories in a single variable
LOCAL_REPOS=”base centosplus extras updates”
##a loop to update repos one at a time 
for REPO in ${LOCAL_REPOS}; do
reposync -g -l -d -m --repoid=$REPO --newest-only --download-metadata --download_path=/var/www/html/repos/
createrepo -g comps.xml /var/www/html/repos/$REPO/  
done

Salva lo script, chiudilo e imposta le autorizzazioni appropriate su di esso.

chmod 755 /etc/cron.daily/update-localrepos

Passaggio 4: impostare il repository Yum locale sui computer client

13. Ora sui tuoi computer client CentOS, aggiungi i tuoi repository locali alla configurazione YUM.

vim /etc/yum.repos.d/local-repos.repo

Copia e incolla la configurazione seguente nel file local-repos.repo (apporta modifiche dove necessario).

[local-base]
name=CentOS Base
baseurl=http://repos.test.lab/base/
gpgcheck=0
enabled=1

[local-centosplus]
name=CentOS CentOSPlus
baseurl=http://repos.test.lab/centosplus/
gpgcheck=0
enabled=1

[local-extras]
name=CentOS Extras
baseurl=http://repos.test.lab/extras/
gpgcheck=0
enabled=1

[local-updates]
name=CentOS Updates
baseurl=http://repos.test.lab/updates/
gpgcheck=0
enabled=1

Salva il file e inizia a utilizzare i tuoi mirror YUM locali.

14. Successivamente, esegui il comando seguente per visualizzare i tuoi repository locali nell'elenco dei repository YUM disponibili, sui computer client.

 yum repolist
OR
yum repolist all

È tutto! In questo articolo, abbiamo spiegato come configurare un repository YUM locale su CentOS 7. Ci auguriamo che tu abbia trovato utile questa guida. Se hai domande o altri pensieri da condividere, utilizza il modulo dei commenti qui sotto.