Haciendo mirrors de Debian con ftpsync y de Canaima con debmirror


Muchas veces se hace útil tener una copia idéntica (mirror) del repositorio de paquetes Debian y Canaima en tu computadora: Acelera la instalación de paquetes, la creación de imágenes con canaima-semilla y permite tener un ambiente pruebas en caso de que manejes un repositorio en ambientes de producción.

Hacerlo no es tan difícil y requiere muy poca atención luego de realizado el procedimiento. Eso sí, el tiempo que utilizaremos inicialmente dependerá de tu velocidad de conexión. Podrás elegir cuales arquitecturas replicar y decidir si incluir las fuentes de los paquetes o no.

Mirror Debian

Descarga el script ftpsync.

Crea un usuario en la computadora o servidor que utilizarás para hospedar el mirror. Para este ejemplo utilizaremos el usuario “mirror”.

Inicia sesión con ese usuario. Puedes hacerlo con el comando login mirror.

Copia y descomprime el ftpsync.tar.gz en la carpeta /home/ del usuario mirror. Aparecerá una carpeta etc, una bin, y otra log.

Cambia el nombre del archivo etc/ftpsync.conf.sample a etc/ftpsync.conf.

Edita el archivo etc/ftpsync.conf de la siguiente forma:
Descomenta la variable MIRRORNAME.
Descomenta la variable TO y le vas a poner de valor la ruta donde quieres que se haga el mirror, preferiblemente algo que pueda ver un servidor web como /var/www, para este ejemplo utilizaremos /var/www/debian. Es importante que esa carpeta pertenezca al usuario que creaste para el mirror.
Descomenta la variable RSYNC_PATH y ponle “debian”.
Descomenta la variable RSYNC_HOST y ponle “ftp.us.debian.org” o cualquier otro mirror del cual quieras hacer tu mirror, siempre y cuando se le pueda acceder por ftp.
Descomenta la variable LOGDIR.
Descomenta la variable LOG.
Descomenta la variable ERRORSONLY y ponle “false”.
Descomenta la variable FULLLOGS y ponle “true”.
Descomenta la variable ARCH_EXCLUDE y lista las arquitecturas que quieres excluir. Si quieres excluir las fuentes añades “source”. Por ejemplo, en canaima sólo hacemos mirror de i386, amd64 y las fuentes, por lo que esa variable vale: “alpha arm armel hppa hurd-i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mipsel mips powerpc s390 sh sparc”.
Descomenta la variable TRACE.
Descomenta la variable RSYNC y ponle “rsync”.
Descomenta la variable RSYNC_OPTIONS.
Descomenta la variable RSYNC_OPTIONS1.
Descomenta la variable RSYNC_OPTIONS2.

Finalmente, configura un cron para que se corra a determinadas horas. Edita el archivo /etc/crontab (como superusuario) y añade esta línea al final:
30 1 * * * mirror /home/mirror/bin/ftpsync sync:all

Esta línea correrá el script /home/mirror/bin/ftpsync sync:all por el usuario mirror todos los días a la 1:30am.


Mirror Canaima

Instala el paquete debmirror.
aptitude install debmirror

Inicia sesión con el usuario mirror que creaste para el mirror Debian.

Ejecuta el comando que aparece a continuación. El último parámetro es la ruta donde publicarás el repositorio, la cual debe pertenecer al usuario mirror y estar en un lugar visible para un servidor web como /var/www.
debmirror --debug --progress --verbose --source --host=repositorio.canaima.softwarelibre.gob.ve --section=usuarios --method=rsync --root=:canaima --dist=estable,desarrollo,pruebas --arch=i386,amd64 --ignore-release-gpg --rsync-options=-aIL /var/www/canaima

Finalmente, debemos configurar un cron para que se ejecute a determinadas horas.

Creemos un script BASH en la ruta /home/mirror/mirror-canaima.sh que tenga el siguiente contenido:
#!/bin/bash

debmirror --debug --progress --verbose --source --host=repositorio.canaima.softwarelibre.gob.ve --section=usuarios --method=rsync --root=:canaima --dist=estable,desarrollo,pruebas --arch=i386,amd64 --ignore-release-gpg --rsync-options=-aIL /var/www/canaima

Edita el archivo /etc/crontab (como superusuario) y añade esta línea al final:
30 1 * * * mirror /home/mirror/mirror-canaima.sh

Esta línea correrá el script /home/mirror/mirror-canaima.sh por el usuario mirror todos los días a la 1:30am.


¿Cómo usarlos?

Bien, una vez creados los mirrors, tenemos varias formas de usarlos e incluso, compartirlos con nuestros amigos.

Para usarlo localmente, podemos sustituir nuestro tradicional mirror debian en nuestro archivo /etc/apt/sources.list:
deb http://universo.canaima.softwarelibre.gob.ve/ squeeze main contrib non-free

por
deb file:/var/www/debian main contrib non-free

Y nuestro repositorio Canaima:
deb http://repositorio.canaima.softwarelibre.gob.ve/ roraima usuarios

por
deb file:/var/www/canaima roraima usuarios

Para permitir que otros puedan acceder a nuestros mirrors, debemos instalar un servidor web como apache, lighttpd o nginx.

Instalemos apache:
aptitude install apache2

Listo, dile a tus compañeros que usen la siguiente línea para el mirror Debian:
deb http://TU-DIRECCIÓN-IP/debian main contrib non-free

o esta para el mirror Canaima:
deb http://TU-DIRECCIÓN-IP/canaima roraima usuarios


Fuente: http://www.huntingbears.com.ve/haciendo-mirrors-de-debian-con-ftpsync-y-de-canaima-con-debmirror.html 
Colabore con este blog usando mercadopago.

Visitenos en:

Instagram