lunes, 14 de abril de 2014

Cómo configurar un repositorio local para CentOS y Fedora

En nuestros días disfrutamos de buena velocidad de conexión a Internet, aunque en este país cuesta "un ojo de la cara" la renta mensual con cualquier ISP. No obstante, en una red local, aunque sea pequeña, nos consume ancho de banda y tiempo el mantener actualizadas las estaciones de trabajo y/o servidores. Es en este escenario donde se hace ideal configurar un repositorio local, entendiendo que tenemos Fedora y CentOS instalados en los equipos; por lo que la configuración que veremos a continuación solo es válida para estas distribuciones y otras derivadas de Red Hat como Scientific Linux. 

En Internet hay muchas guías para hacer esto, pero he tratado de que esta sea lo más completa posible y satisfaga otras necesidades al considerar otros repositorios además de los básicos.

Sin más palabras, manos a la obra...

Lo primero es instalar estos paquetes necesarios para el resto del proceso. El paquete createrepo que nos ayudará a crear la configuración de los repositorios mismos y vsftp para que los clientes accedan a los repos. También esposible hacer uso de Apache (httpd) para esto.
[fraterneo@rainbow ~]$ sudo yum install -y createrepo vsftpd lftp
Esquema del Repositorio Local YUM
Repositorio OS 
Crearemos este repo desde los DVD's de Fedora 20 y CentOS 6.5 para tener disponible estos paquetes para ser instalados en cualquier momento. En un mirror FTP esta carpeta tiene el nombre de "os".

Creamos la estructura de directorios necesaria.
[fraterneo@rainbow ~]$ sudo mkdir -p /var/ftp/pub/yumlocalrepo/centos/6.5/os/{i386,x86_64}/
[fraterneo@rainbow ~]$ sudo mkdir -p /var/ftp/pub/yumlocalrepo/fedora/20/os/{i386,x86_64}/
Montamos los .iso (asumiendo que ya han sido descargados) de los discos de CentOS 6.5 y Fedora 20 para 32 y 64 bits, y copiamos hacia los directorios correspondientes los paquetes para los repositorios.
[fraterneo@rainbow ~]$ sudo mount -o loop /run/media/fraterneo/fraterdisk/iso/CentOS-6.5-x86_64-bin-DVD1.iso /mnt/centos64
[fraterneo@rainbow ~]$ sudo find /mnt/centos64/Packages/ -name *.rpm -exec cp '{}' /var/ftp/pub/yumlocalrepo/centos/os/x86_64/ \;
[fraterneo@rainbow ~]$ sudo umount /mnt/centos64

[fraterneo@rainbow ~]$ sudo mount -o loop /run/media/fraterneo/fraterdisk/iso/CentOS-6.5-x86_64-bin-DVD2.iso /mnt/centos64
[fraterneo@rainbow ~]$ sudo find /mnt/centos64/Packages/ -name *.rpm -exec cp '{}' /var/ftp/pub/yumlocalrepo/centos/os/x86_64/ \;
[fraterneo@rainbow ~]$ sudo umount /mnt/centos64

[fraterneo@rainbow ~]$ sudo mount -o loop /run/media/fraterneo/fraterdisk/iso/CentOS-6.5-i386-bin-DVD1.iso /mnt/centos32
[fraterneo@rainbow ~]$ sudo find /mnt/centos32/Packages/ -name *.rpm -exec cp '{}' /var/ftp/pub/yumlocalrepo/centos/os/i386/ \;
[fraterneo@rainbow ~]$ sudo umount /mnt/centos32

[fraterneo@rainbow ~]$ sudo mount -o loop /run/media/fraterneo/fraterdisk/iso/CentOS-6.5-i386-bin-DVD2.iso /mnt/centos32
[fraterneo@rainbow ~]$ sudo find /mnt/centos32/Packages/ -name *.rpm -exec cp '{}' /var/ftp/pub/yumlocalrepo/centos/os/i386/ \;
[fraterneo@rainbow ~]$ sudo umount /mnt/centos32

[fraterneo@rainbow ~]$ sudo mount -o loop /run/media/fraterneo/fraterdisk/iso/Fedora-Live-Desktop-x86_64-20-1.iso /mnt/fedora64
[fraterneo@rainbow ~]$ sudo find /mnt/fedora64/Packages/ -name *.rpm -exec cp '{}' /var/ftp/pub/yumlocalrepo/fedora/os/x86_64/ \;
[fraterneo@rainbow ~]$ sudo umount /mnt/fedora64

[fraterneo@rainbow ~]$ sudo mount -o loop /run/media/fraterneo/fraterdisk/iso/Fedora-Live-Desktop-i386-20-1.iso /mnt/fedora32
[fraterneo@rainbow ~]$ sudo find /mnt/fedora32/Packages/ -name *.rpm -exec cp '{}' /var/ftp/pub/yumlocalrepo/fedora/os/i386/ \;
[fraterneo@rainbow ~]$ sudo umount /mnt/fedora32
Ahora procedemos a crear los repositorios para cada caso.
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/centos/os/x86_64
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/centos/os/i386
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/fedora/os/x86_64
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/fedora/os/i386
Cada uno toma su tiempo, dependiendo de la cantidad de paquetes, y veremos una salida como la siguiente.
Spawning worker 0 with 500 pkgs
Spawning worker 1 with 500 pkgs
Spawning worker 2 with 500 pkgs
Spawning worker 3 with 499 pkgs
Spawning worker 4 with 499 pkgs
Spawning worker 5 with 499 pkgs
Spawning worker 6 with 499 pkgs
Spawning worker 7 with 499 pkgs
Worker 0: reading 389-ds-base-1.2.11.15-29.el6.x86_64.rpm
Worker 1: reading 389-ds-base-libs-1.2.11.15-29.el6.i686.rpm
Worker 2: reading 389-ds-base-libs-1.2.11.15-29.el6.x86_64.rpm
Worker 3: reading ConsoleKit-0.4.1-3.el6.x86_64.rpm
...
...
...
Worker 1: reading zlib-devel-1.2.3-29.el6.x86_64.rpm
Worker 2: reading zsh-4.3.10-7.el6.x86_64.rpm
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Starting other db creation: Sat Apr  5 21:52:33 2014
Ending other db creation: Sat Apr  5 21:52:35 2014
Starting filelists db creation: Sat Apr  5 21:52:35 2014
Ending filelists db creation: Sat Apr  5 21:52:39 2014
Starting primary db creation: Sat Apr  5 21:52:39 2014
Ending primary db creation: Sat Apr  5 21:52:42 2014
Sqlite DBs complete
Repositorio Updates 
Este repo contiene los paquetes que ha sido actualizados desde el lanzamiento de Fedora 20 y CentOS 6.5. Este es uno de los repos en donde yum descarga las actualizaciones cuando damos un "yum update". En escencia, lo que haremos será un espejo de los repositorios Updates. Luego de descargar los paquetes desde Internet, lo configuraremos para que funcione como repositorio local. Además crearemos un script para que el nuestro servidor local se sincronice varios días a la semana y así poder darle a nuestros clientes los paquetes más frescos.

Creamos la estructura de directorios necesaria.
[fraterneo@rainbow ~]$ sudo mkdir -p /var/ftp/pub/yumlocalrepo/centos/6.5/updates/{i386,x86_64}/
[fraterneo@rainbow ~]$ sudo mkdir -p /var/ftp/pub/yumlocalrepo/fedora/20/updates/{i386,x86_64}/
Ahora sincronizamos con un mirror de Internet para obtener los paquetes actualizados. Esto podemos hacerlo con un servidor de rsync, pero son escazos en el caso de CentOS y es más lento el proceso. En vez de eso lo haremos con lftp, ya que casi todos los servidores son FTP y es más rápido el proceso. Es importante aclrar que esto puede tomar mucho tiempo si tu conexión es lenta.

El comando lftp hará lo siguiente:
  • open: Se conecta al servidor FTP donde se encuentra el mirror del repositorio en cuestión usando la URL que le damos. 
  • lcd: Es un cambio de directorio local, para hacer el trabajo donde corresponde y no en el PWD donde nos encontramos al momento de ejecutar el comando. 
  • mirror -c --delete: Hace el mirror (baja los archivos), lo continúa si falló anteriormente. 
  • exit: Obviamente finaliza el proceso.
[fraterneo@rainbow ~]$ sudo lftp -e 'open ftp://mirror.oss.ou.edu/centos/6.5/updates/x86_64/Packages/ && lcd /var/ftp/pub/yumlocalrepo/centos/6.5/updates/x86_64 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open ftp://mirror.oss.ou.edu/centos/6.5/updates/i386/Packages/ && lcd /var/ftp/pub/yumlocalrepo/centos/6.5/updates/i386 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open ftp://mirror.utexas.edu/pub/fedora/linux/updates/20/i386/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/updates/i386 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open ftp://mirror.utexas.edu/pub/fedora/linux/updates/20/x86_64/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/updates/x86_64 && mirror -c --delete && exit'
lftp mientras trabaja a toda capacidad haciendo un mirror.

Ahora procedemos a crear los repositorios para cada caso.
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/centos/6.5/updates/x86_64
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/centos/6.5/updates/i386
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/fedora/20/updates/x86_64
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/fedora/20/updates/i386
Repositorio RPMFusion 
Este repo contiene software que Red Hat y Fedora se niegan a introducir en los suyos por diferentes razones. Crearemos uno para Fedora y otro para CentOS, en sus respectivas ramas Free y Non Free, por lo que esta parte se tomará bastante tiempo descargar también. Seguiremos un proceso similar al reporitorio Updates.

Creamos la estructura de directorios necesaria.
[fraterneo@rainbow ~]$ sudo mkdir -p /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/{free,nonfree}/{releases,updates}/{i386,x86_64}/
[fraterneo@rainbow ~]$ sudo mkdir -p /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/{free,nonfree}/updates/{i386,x86_64}/
RPMFusion Free
[fraterneo@rainbow ~]$ sudo lftp -e 'open http://download1.rpmfusion.org/free/el/updates/6/x86_64/ && lcd /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/free/updates/x86_64 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open http://download1.rpmfusion.org/free/el/updates/6/i386/ && lcd /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/free/updates/i386 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open http://download1.rpmfusion.org/free/fedora/releases/20/Everything/x86_64/os/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/free/releases/x86_64 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open http://download1.rpmfusion.org/free/fedora/releases/20/Everything/i386/os/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/free/releases/i386 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open http://download1.rpmfusion.org/free/fedora/updates/20/x86_64/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/free/updates/x86_64 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open http://download1.rpmfusion.org/free/fedora/updates/20/i386/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/free/updates/i386 && mirror -c --delete && exit'
RPMFusion Non Free
[fraterneo@rainbow ~]$ sudo lftp -e 'open http://download1.rpmfusion.org/nonfree/el/updates/6/x86_64/ && lcd /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/nonfree/updates/x86_64 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open http://download1.rpmfusion.org/nonfree/el/updates/6/i386/ && lcd /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/nonfree/updates/i386 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open http://download1.rpmfusion.org/nonfree/fedora/releases/20/Everything/x86_64/os/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/releases/x86_64 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open http://download1.rpmfusion.org/nonfree/fedora/releases/20/Everything/i386/os/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/releases/i386 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open http://download1.rpmfusion.org/nonfree/fedora/updates/20/x86_64/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/updates/x86_64 && mirror -c --delete && exit'
[fraterneo@rainbow ~]$ sudo lftp -e 'open http://download1.rpmfusion.org/nonfree/fedora/updates/20/i386/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/updates/i386 && mirror -c --delete && exit'
Ahora procedemos a crear los repositorios para cada caso.
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/free/updates/x86_64
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/free/updates/i386
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/free/releases/x86_64
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/free/releases/i386
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/free/updates/x86_64
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/free/updates/i386 
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/nonfree/updates/x86_64
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/nonfree/updates/i386
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/releases/x86_64
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/releases/i386
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/updates/x86_64 
[fraterneo@rainbow ~]$ sudo createrepo -v /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/updates/i386
Configuración en los clientes.
Esto lo hacemos creando el fichero correspondiente en /etc/yum.repos.d/ que corresponda según la distribución y arquitectura de que se trate. Es preferible eliminar o mover de esta ruta los archivos de los repos ya existentes que se conectan a Internet o deshabilitarlos todos poniendo cada variable enabled=0.

Fedora 32bits
[fraterneo@fedora32 ~]$ sudo nano /etc/yum.repos.d/yumlocalrepo.repo
[baserepo]
comment ="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/fedora/20/os/i386
gpgcheck=0
enabled=1

[updatesrepo]
comment ="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/fedora/20/updates/i386
gpgcheck=0
enabled=1

[rpmfusionfree-releases]
comment ="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/fedora/20/rpmfusion/free/releases/i386
gpgcheck=0
enabled=1

[rpmfusinonfree-releases]
comment ="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/releases/i386
gpgcheck=0
enabled=1

[rpmfusionfree-updates]
comment ="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/fedora/20/rpmfusion/free/updates/i386
gpgcheck=0
enabled=1

[rpmfusinonfree-updates]
comment ="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/updates/i386
gpgcheck=0
enabled=1
Fedora 64bits
[fraterneo@fedora64 ~]$ sudo nano /etc/yum.repos.d/yumlocalrepo.repo
[baserepo]
comment ="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/fedora/20/os/x86_64
gpgcheck=0
enabled=1

[updatesrepo]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/fedora/20/updates/x86_64
gpgcheck=0
enabled=1

[rpmfusionfree-releases]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/fedora/20/rpmfusion/free/releases/x86_64
gpgcheck=0
enabled=1

[rpmfusinonfree-releases]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/releases/x86_64
gpgcheck=0
enabled=1

[rpmfusionfree-updates]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/fedora/20/rpmfusion/free/updates/x86_64
gpgcheck=0
enabled=1

[rpmfusinonfree-updates]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/updates/x86_64
gpgcheck=0
enabled=1
CentOS 32bits
[fraterneo@centos32 ~]$ sudo nano /etc/yum.repos.d/yumlocalrepo.repo
[baserepo]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/centos/6.5/os/i386
gpgcheck=0
enabled=1

[updatesrepo]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/centos/6.5/updates/i386
gpgcheck=0
enabled=1

[rpmfusionfree-releases]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/centos/6.5/rpmfusion/free/releases/i386
gpgcheck=0
enabled=1

[rpmfusinonfree-releases]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/centos/6.5/rpmfusion/nonfree/releases/i386
gpgcheck=0
enabled=1

[rpmfusionfree-updates]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/centos/6.5/rpmfusion/free/updates/i386
gpgcheck=0
enabled=1

[rpmfusinonfree-updates]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/centos/6.5/rpmfusion/nonfree/updates/i386
gpgcheck=0
enabled=1
CentOS 64bits
[fraterneo@centos64 ~]$ sudo nano /etc/yum.repos.d/yumlocalrepo.repo
[baserepo]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/centos/6.5/os/x86_64
gpgcheck=0
enabled=1

[updatesrepo]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/centos/6.5/updates/x86_64
gpgcheck=0
enabled=1

[rpmfusionfree-releases]
comment ="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/centos/6.5/rpmfusion/free/releases/x86_64
gpgcheck=0
enabled=1

[rpmfusinonfree-releases]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/centos/6.5/rpmfusion/nonfree/releases/x86_64
gpgcheck=0
enabled=1

[rpmfusionfree-updates]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/centos/6.5/rpmfusion/free/updates/x86_64
gpgcheck=0
enabled=1

[rpmfusinonfree-updates]
comment="Fraterneo's local yum repository"
baseurl=ftp://192.168.24.101/pub/yumlocalrepo/centos/6.5/rpmfusion/nonfree/updates/x86_64
gpgcheck=0
enabled=1
Actualización automática del repositorio local 
Es importante de ahora en adelante mantener actualizado nuestro repositorio local para así proporcionar a nuestra red paquetes frescos. Para esto crearemos un script de Bash donde colocaremos los comandos lftp que harán la tarea y luego agregarlo a una tarea en crontab para que dicho script se ejecute al menos una vez a la semana.
[fraterneo@rainbow ~]$ sudo nano /root/yumlocalrepo-updater.sh

!#/bin/bash
# Author: Claudio Concepción Certad
# Date: 10/04/2014
# Description: Script para sincronizar los mirrors de los repositorios locales haciendo uso de lftp
# con las opciones: mirror -n -e, las cuales solo descargan los archivos nuevos desde el FTP (-n) y borra los locales que ya no existen en el FTP (-e)

#VERIFICAR SI HAY CONEXION A INTERNET, DE LO CONTRARIO CANCELAR Y NOTIFICAR CON ZENITY Y VIA MAIL AL ADMINISTRADOR
REMHOST=google.com
ping -c 3 $REMHOST > /dev/null 2>&1
if [ $? -eq 2 ]
then
 PINGERR=2
 zenity --title "No hay conexión a Internet"  --error --text="No se pudieron actualizar los repositorios"
 echo "No se pudieron actualizar los repositorios." | mail -s "No hay conexión a Internet" root@rainbow.local
 exit $PINGERR
fi

#SINCRONIZAR REPO UPDATES
lftp -e 'open ftp://mirror.oss.ou.edu/centos/6.5/updates/x86_64/Packages/ && lcd /var/ftp/pub/yumlocalrepo/centos/6.5/updates/x86_64 && mirror -n -e && exit'
lftp -e 'open ftp://mirror.oss.ou.edu/centos/6.5/updates/i386/Packages/ && lcd /var/ftp/pub/yumlocalrepo/centos/6.5/updates/i386 && mirror -n -e && exit'
lftp -e 'open ftp://mirror.utexas.edu/pub/fedora/linux/updates/20/i386/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/updates/i386 && mirror -n -e && exit'
lftp -e 'open ftp://mirror.utexas.edu/pub/fedora/linux/updates/20/x86_64/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/updates/x86_64 && mirror -n -e && exit'

#SINCRONIZAR REPO RPMFusion
lftp -e 'open http://download1.rpmfusion.org/free/el/updates/6/x86_64/ && lcd /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/free/updates/x86_64 && mirror -n -e && exit'
lftp -e 'open http://download1.rpmfusion.org/free/el/updates/6/i386/ && lcd /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/free/updates/i386 && mirror -n -e && exit'
lftp -e 'open http://download1.rpmfusion.org/free/fedora/releases/20/Everything/x86_64/os/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/free/releases/x86_64 && mirror -n -e && exit'
lftp -e 'open http://download1.rpmfusion.org/free/fedora/releases/20/Everything/i386/os/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/free/releases/i386 && mirror -n -e && exit'
lftp -e 'open http://download1.rpmfusion.org/free/fedora/updates/20/x86_64/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/free/updates/x86_64 && mirror -n -e && exit'
lftp -e 'open http://download1.rpmfusion.org/free/fedora/updates/20/i386/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/free/updates/i386 && mirror -n -e && exit'
lftp -e 'open http://download1.rpmfusion.org/nonfree/el/updates/6/x86_64/ && lcd /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/nonfree/updates/x86_64 && mirror -n -e && exit'
lftp -e 'open http://download1.rpmfusion.org/nonfree/el/updates/6/i386/ && lcd /var/ftp/pub/yumlocalrepo/centos/6.5/rpmfusion/nonfree/updates/i386 && mirror -n -e && exit'
lftp -e 'open http://download1.rpmfusion.org/nonfree/fedora/releases/20/Everything/x86_64/os/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/releases/x86_64 && mirror -n -e && exit'
lftp -e 'open http://download1.rpmfusion.org/nonfree/fedora/releases/20/Everything/i386/os/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/releases/i386 && mirror -n -e && exit'
lftp -e 'open http://download1.rpmfusion.org/nonfree/fedora/updates/20/x86_64/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/updates/x86_64 && mirror -n -e && exit'
lftp -e 'open http://download1.rpmfusion.org/nonfree/fedora/updates/20/i386/ && lcd /var/ftp/pub/yumlocalrepo/fedora/20/rpmfusion/nonfree/updates/i386 && mirror -n -e && exit'

#EOF
Finalmente la tarea en crontab.
[fraterneo@rainbow ~]$ sudo chmod +x /root/yumlocalrepo-updater.sh
[fraterneo@rainbow ~]$ sudo echo '0  0  *  *  3 root /root/yumlocalrepo-updater.sh' >> /etc/crontab

5 comentarios:

  1. Increible esta guia, es usted todo un gurù del software libre. Gracias totales!

    ResponderEliminar
  2. disculpa al momento de montar la iso y copiarla en el directorio , porque luego usas umont para desmontar no me queda claro.
    Gracias

    ResponderEliminar
  3. Hola, una duda, he seguido tu manual al pie de la letra, pero mis clientes en la vlan no pueden ver el repositorio, cuando uso ping si responde el repositorio, pero al intentar usar yum me dice que no hay ruta al host

    ResponderEliminar
    Respuestas
    1. Revise bien su configuración. La guía tiene un escenario particular y el suyo puede ser algo diferente.

      Eliminar