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!!!