Repositorio local (mirror) CentOS 7

9
4775

Si así es, aquí les traigo como hacer un mirror de CentOS 7. ¿Cuáles son los beneficios de esto? Entre ellos ahorras ancho de banda de Internet, mantienes una copia local de tus repositorios con lo cual las descargas e instalaciones son mucho mas rápidas, y la principal de todas es muy útil como servidor de actualizaciones si tienes 10 servidores o 1000 estaciones de trabajo con CentOS creo que esta es tu mejor opción pues podrás ofrecer un servicio de actualización rápido y con la velocidad de tu red LAN.

Ahora, puedes hacer tu mirror como de 10 formas pero yo te voy a decir la que en mi opinión es la mas rápida y cómoda, pues puedes hacer tu mirror en cualquier distribución que soporte rsync. Siiiiiii! cualquiera, puedes leer solo la parte de rsync, hacer un repositorio local de CentOS en ubuntu, debian, fedora, redhat, slackware, todos soportan rsync


rsync es una aplicación libre para sistemas de tipo Unix y Microsoft Windows que ofrece transmisión eficiente de datos incrementales, que opera también con datos comprimidos y cifrados. Mediante una técnica de delta encoding, permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos ubicaciones en una misma máquina, minimizando el volumen de datos transferidos.

Procedemos a instalar rsync
# yum install rsync

Una vez  instalado solo debes buscar en la lista de mirrors de CentOS algún mirror cercano a tu localidad que trabaje con rsync (es la sexta columna) Rsync Location

Crea alguna carpeta donde puedas colocar el repositorio, yo solamente hice un mirror de CentOS 7, completo con isos y todas las carpetas disponibles, lo cual ocupo 38 GB, entonces toma en consideración si vas a hacer un mirror parcial, de otras versiones de centOS o un mirror completo. ¿Cuánto espacio te ocupara?, es algo que debes evaluar.

# mkdir -p /home/repo/CentOS/7

El repositorio tiene todas estas carpetas:

  • atomic
  • centosplus
  • cloud
  • cr
  • extras
  • fasttrack
  • isos
  • os
  • sclo
  • storage
  • updates
  • virt

rsync funciona de la siguiente forma:

# rsync --delete-excluded --exclude "local" --exclude "isos" --exclude "*.iso"

  • Con la etiqueta delete–excluded y –exclude pueden ignorar carpetas o archivos, ejemplo carpeta iso, o archivos .iso, muy fácil no?

# rsync -aqzH --delete msync.centos.org::CentOS /path/to/local/mirror/root

  • Con la opción –delete, eliminaran los archivos que ya no existen en la fuente.
  • -a archiva y almacena
  • -q modo silencioso, suprime los mensajes que no sean de errores
  • -z comprime la data durante la transferencia
  • -H conserva los enlaces duros, si quisieras también te recomendaría la opción -l para mantener los enlaces simbólicos

Como lo hice yo? sencillo así:

# rsync -avzqlH --delete --delay-updates rsync://ftp.osuosl.org/centos/7/ /home/repo/CentOS/7

No te apresures, ye te explico porque lo hice asi.

  • –delay-updates coloca todos los archivos actualizados al finalizar toda la descarga, me entiendes?, es decir el no va actualizando cada vez que descarga un archivo nuevo, sino por el contrario, si habían 100 archivos nuevos, luego de finalizar los 100 archivos nuevos, rsync los ubica en su lugar
  • rsync://ftp.osuosl.org/centos/7/ porque solamente quiero hacer del CentOS 7
  • /var/www/html/repo/CentOS/7 donde voy a colocar todos mis archivos que copie de la fuente.

No es necesario, pero yo recomiendo el paquete createrepo, simplemente lo que hace es darle la caracteristica de http y crear un index para tu repositorio

# yum install createrepo

Luego simplemente corre el comando apuntando a tu repositorio

# createrepo /home/repo/CentOS/7

Ahora una vez finalizado, debes compartirlo de alguna forma, yo siempre uso un servidor http, continuando con CentOS 7, pueden instalar un servidor un servidor web basico de la siguiente forma (usa httpd, no es apache)

# yum group install -y "Basic Web Server

Crea un enlace simbolico del sitio real del repositorio a la carpeta “www”

# ln -s /home/repo /var/www/html/repo

Creamos las carpetas sites-available y sites-enabled
# mkdir /etc/httpd/sites-available
# mkdir /etc/httpd/sites-enabled

Editamos el archivo httpd.conf para agregar todos nuestros sitios activos de sites-enabled

# vi /etc/httpd/conf/httpd.conf

Agrega esta linea al final del archivo
IncludeOptional sites-enabled/*.conf

Creamos y editamos nuestro sitio web

# vi /etc/httpd/sites-available/repocentos.conf

<VirtualHost *:80>
ServerName repocentos.com
#ServerAlias example.com
DocumentRoot /var/www/html/repo/CentOS/
ErrorLog /var/log/httpd/error.log
CustomLog /var/log/httpd/requests.log combined
</VirtualHost>

Activamos nuestro sitio creando un enlace simbolico

# ln -s /etc/httpd/sites-available/repocentos.conf  /etc/httpd/sites-enabled/repocentos.conf

Cambiamos el dueño y grupo de los archivos y carpetas para apache

# chown apache. www/ -R

Ejecutamos la siguiente orden para que el servidor web arranque desde que iniciamos la maquina

# systemctl enable httpd.service

Reiniciamos el servidor web con el siguientes comando

# systemctl restart httpd

Como lo podemos usar?

Crea un archivo en /etc/yum.repos.d/local.repo y pega las siguientes lineas:

[os]
name=master - Base
baseurl=http://ip o url/repo/CentOS/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[updates]
name=master - Updates
baseurl=http://ip o url/repo/CentOS/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[extras]
name=master - Extras
baseurl=http://ip o url/repo/CentOS/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[centosplus]
name=master - CentosPlus
baseurl=http://ip o url/repo/CentOS/$releasever/centosplus/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

Refrescamos los repositorios con:
# yum clean all

# yum repolist all

# yum update

Bueno eso es todo por esta vez. Como siempre recuerden seguir de cerca mis post y esta pagina web. Comenten y así todos compartimos nuestros conocimientos, hasta la próxima!!!

9 COMENTARIOS

  1. Es adecuado Centos para usar en una PC de escritorio de un usuario final? O es un desperdicio de recursos? Lo he estado probando vía Live-usb y me ha gustado mucho.

  2. Poder se puede. Pero no esta muy pensado para desktops de usuarios normales.

    No te asombres si no te agarra la Wifi o algun diver de no se, camara web, (ya que incluye drivers mas que nada de hard de servidores), que en los repo no haya algun paquete de no se, codecs, ofimatica, o algo asi, o que los paquetes sean viejos (pero estables como un fierro)

  3. Yendo al articulo, excelente!!

    Cuando se tiene una gran cantidad de equipos linux, las instalaciones se hacen muchisimo mas rapidas y practicas.

Dejar una respuesta