GNU/Linux >> Linux Esercitazione >  >> Linux

Come creare un repository Red Hat locale

Ci sono molte ragioni per cui potresti volere un repository Red Hat Enterprise Linux locale. La larghezza di banda è un fattore importante poiché il download di aggiornamenti da Internet può richiedere tempo e larghezza di banda. Un altro motivo potrebbe essere che i tuoi server non sono connessi a Internet e quindi devono ottenere i loro aggiornamenti da una fonte locale. Potresti avere un ambiente di sviluppo per il quale preferiresti non spendere soldi per le licenze ma che devi comunque aggiornare. Qualunque sia la tua ragione, questo tutorial ti guiderà attraverso il processo di configurazione del tuo repository locale.

Nota:il server che funge da repository dovrebbe fungere solo da repository.

Installa i pacchetti necessari per i repository

yum install yum-utils createrepo httpd

Crea le directory per i tuoi repository

mkdir /var/www/html/rhel6
mkdir /var/www/html/rhel6/server
mkdir /var/www/html/rhel6/dts
mkdir /var/www/html/rhel6/dts2
mkdir /var/www/html/rhel6/rhsc

Comandi utili

Elenca i repository sul tuo server sia abilitati che disabilitati.

yum repolist all

Elenca i repo disponibili nel tuo abbonamento

subscription-manager repos --list

Abilita un repository sul tuo sistema

subscription-manager repos --enable=rhel-6-server-optional-rpms

Disabilita un repository sul tuo sistema

subscription-manager repos --disble=rhel-6-server-optional-rpms

Vogliamo che i repository server, dts e rhsc (raccolte di software) siano abilitati nel repository

Sincronizza repository

Una volta che tutti questi repository sono stati abilitati, esegui il comando seguente per tutti loro modificando il download_path per ciascuno in modo che corrisponda al download_path per quel repository.

reposync --gpgcheck -l --repoid=repoid --download_path=/var/www/html/rhel6/repo_name --downloadcomps --download-metadata

Nota:il repository del server impiegherà più tempo. Come tutta la notte. Gli altri dovrebbero essere molto più brevi.

Comando Createrepo

Una volta che i pacchetti sono stati scaricati, tutto ciò che serve è il comando createrepo qui sotto per ogni repository

createrepo -v /var/www/html/rhel6/repo_name/ -g comps.xml

Nota:il -g comps.xml è necessario solo per il repository del server.

Configurazione dei server client

Ora hai un repository locale ma devi apportare alcune modifiche ai tuoi server Red Hat che utilizzeranno questi repository per gli aggiornamenti.

Innanzitutto assicurati che tutti gli altri repository abbiano il flag abilitato impostato su 0 (zero) all'interno del file repository in /etc/yum.repos.d. Non eliminerei i repository per ora perché potresti averne bisogno in seguito. Basta cambiare semplicemente il flag abilitato.

Ora devi creare un file .repo che verrà aggiunto alla directory /etc/yum.repos.d su ogni server che utilizza i repository. Quel file dovrebbe essere simile al seguente.

vi /etc/yum.repos.d/name_of_repo_file.repo
[server]
name = rhel-6-server-rpms
baseurl = http://hostname_or_ip_address_of_repository/rhel6/server
gpgcheck = 0
enabled = 1

[dts]
name = rhel-server-dts-6-rpms
baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts
gpgcheck = 0
enabled = 1

[dts2]
name = rhel-server-dts2-6-rpms
baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2
gpgcheck = 0
enabled = 1

[rhsc]
name = rhel-server-dts2-6-rpms
baseurl = http://hostname_or_ip_address_of_repository/rhel6/dts2
gpgcheck = 0
enabled = 1

Crea Script e Cron Job per aggiornare i tuoi repository

Crea uno script chiamato update-repository.sh e inseriscilo in /usr/local/bin con i seguenti contenuti:

vi /usr/local/bin/update-repository.sh
echo Update script started at $(date) >> /var/log/update-repository.log
reposync --gpgcheck -l --repoid=rhel-6-server-rpms --download_path=/var/www/html/rhel6/server --downloadcomps --download-metadata
createrepo --update /var/www/html/rhel6/server/
reposync --gpgcheck -l --repoid=rhel-server-dts-6-rpms --download_path=/var/www/html/rhel6/dts --downloadcomps --download-metadata
createrepo --update /var/www/html/rhel6/dts/ \\
reposync --gpgcheck -l --repoid=rhel-server-dts2-6-rpms --download_path=/var/www/html/rhel6/dts2 --downloadcomps --download-metadata
createrepo --update /var/www/html/rhel6/dts2/
echo Update script ended at $(date) >> /var/log/update-repository.log
chmod 600 /usr/local/bin/update-repository.sh

Nota che l'ho inserito in un registro che ho impostato per ruotare mensilmente.

Crea un file in /etc/cron.d e denominalo update-repository con il seguente contenuto.

vi /etc/cron.d/update-repository
@weekly root /usr/local/bin/update-repository.sh

Pensieri finali

Esistono molti modi diversi per realizzare la creazione di un repository locale e di certo non ho inventato la ruota su questo. Consulta le mie fonti di seguito per ulteriori informazioni e approfondimenti per la tua configurazione.

Fonti

  • https://access.redhat.com/solutions/23016
  • http://www.oracle.com/technetwork/articles/servers-storage-admin/yum-repo-setup-1659167.html
  • https://www.howtoforge.com/creating_a_local_yum_repository_centos

Linux
  1. Come creare un repository YUM locale su CentOS 7 / RHEL 7 utilizzando DVD

  2. Come creare un repository YUM locale su RHEL 8 utilizzando DVD

  3. Come eseguire il mirroring di un repository in Linux

  4. Come escludere un repository specifico per l'aggiornamento di Yum in CentOS/Red Hat

  5. Come creare un repository Yum locale per i pacchetti MySQL Enterprise

Come creare un repository rpm personalizzato su Linux

Come creare un server di repository Ubuntu

Come creare il tuo repository per i pacchetti su Debian

Aggiunta di un repository EPEL 8 a Red Hat Satellite 6

Come creare un repository yum in CentOS/RHEL

Come abilitare Remi Repository su Fedora/Red Hat per installare LAMP Stack