Hay muchas razones por las que puede querer un repositorio local de Red Hat Enterprise Linux. El ancho de banda es un factor importante, ya que la descarga de actualizaciones de Internet puede consumir mucho tiempo y ancho de banda. Otra razón puede ser que sus servidores no estén conectados a Internet y, por lo tanto, necesiten obtener sus actualizaciones de una fuente local. Es posible que tenga un entorno de desarrollo en el que preferiría no gastar dinero en licencias pero que aún necesita actualizar. Cualquiera que sea el motivo, este tutorial lo guiará a través del proceso de configuración de su repositorio local.
Nota:El servidor que sirve como repositorio solo debe servir como repositorio.
Instalar los paquetes necesarios para los repositorios
yum install yum-utils createrepo httpd
Crea los directorios para tus repositorios
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
Comandos útiles
Enumere los repositorios en su servidor, tanto habilitados como deshabilitados.
yum repolist all
Enumere los repositorios disponibles en su suscripción
subscription-manager repos --list
Habilite un repositorio en su sistema
subscription-manager repos --enable=rhel-6-server-optional-rpms
Deshabilite un repositorio en su sistema
subscription-manager repos --disble=rhel-6-server-optional-rpms
Queremos tener los repositorios server, dts y rhsc (colecciones de software) habilitados en el repositorio
Repos de sincronización
Una vez que se hayan habilitado todos estos repositorios, ejecute el siguiente comando para todos ellos, cambiando la ruta de descarga de cada uno para que coincida con la ruta de descarga de ese repositorio.
reposync --gpgcheck -l --repoid=repoid --download_path=/var/www/html/rhel6/repo_name --downloadcomps --download-metadata
Nota:El repositorio del servidor tardará más. Como toda la noche. Los otros deberían ser mucho más cortos.
Createrepo Command
Una vez que se han descargado los paquetes, todo lo que se necesita es el siguiente comando createrepo para cada repositorio
createrepo -v /var/www/html/rhel6/repo_name/ -g comps.xml
Nota:El -g comps.xml solo es necesario para el repositorio del servidor.
Configuración de servidores cliente
Ahora tiene un repositorio local pero necesita hacer algunos cambios en sus servidores Red Hat que usarán estos repositorios para las actualizaciones.
Primero, asegúrese de que todos los demás repositorios tengan el indicador habilitado establecido en 0 (cero) dentro del archivo de repositorio en /etc/yum.repos.d. No eliminaría los repositorios por ahora porque es posible que los necesite más adelante. Simplemente cambiar la bandera habilitada es suficiente.
Ahora necesita crear un archivo .repo que se agregará al directorio /etc/yum.repos.d en cada servidor que use los repositorios. Ese archivo debe ser similar al siguiente archivo.
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
Crear script y cron job para actualizar tus repositorios
Cree un script llamado update-repository.sh y colóquelo en /usr/local/bin con el siguiente contenido:
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
Tenga en cuenta que lo he colocado en un registro que configuré para rotar mensualmente.
Cree un archivo en /etc/cron.d y asígnele el nombre update-repository con el siguiente contenido.
vi /etc/cron.d/update-repository
@weekly root /usr/local/bin/update-repository.sh
Pensamientos finales
Hay muchas formas diferentes de lograr la creación de un repositorio local y ciertamente no inventé la rueda en este caso. Consulte mis fuentes a continuación para obtener más información y conocimientos sobre su configuración.
Fuentes
- 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