Mirrors de Ubuntu

Durante este año he comprobado cómo cada vez más, Ubuntu Server es un estupendo candidato para instalar en servidores. La gran ventaja que nos ofrece es poder disponer de versiones de paquetes mucho más modernas que las que encontramos en RedHat Enterprise Linux (Oracle Unbreakable Linux, CentOs) o en Debian, y disponer de actualizaciones de seguridad gratuitas. También supone una ventaja el uso de paquetes DEB fáciles de recompilar para personalizar las opciones que necesitemos.
El uso de Debian o Ubuntu en servidores, nos obliga a disponer de conexión hacia de Internet para poder acceder a los reposiotorios de paquetes DEB. Esto no siempre es posible dependiendo de la topología de la red, y quizás nos convenga disponer de nuestro propio repositorio local de paquetes si queremos evitar permitir la conexión hacia Internet.
Para configurarlo realizaremos los siguientes pasos:

  1. Instalar el paquete debmirror y apache2:
    apt-get install debmirror apache2 rsync
  2. Crear los directorios donde dejaremos nuestra réplica
    mkdir /var/www/mirror/ubuntu/
  3. Crear nuestro propio script para realizar la sincronización en /var/www/mirror/mirror-ubuntu.sh con el siguiente contenido:
    #!/bin/bash
    #

    if [ "$1" = "" ]
    then
    echo "ERROR: Debes pasar el nombre de la distribucion (ej: karmic,lucid...)" >&2
    exit 2
    fi

    # Mirror de 32bits
    debmirror --ignore-release-gpg -a i386 \
    -s main,restricted,universe,multiverse \
    -h cc.archive.ubuntu.com \
    -d $1,$1-security,$1-updates,$1-proposed,$1-backports \
    -r /ubuntu --progress -e http /var/www/mirror/ubuntu

    # Mirror de 64bits
    debmirror --ignore-release-gpg -a amb64 \
    -s main,restricted,universe,multiverse \
    -h cc.archive.ubuntu.com \
    -d $1,$1-security,$1-updates,$1-proposed,$1-backports \
    -r /ubuntu --progress -e http /var/www/mirror/ubuntu
    El script recibirá como argumento el nombre de la distribución: lucid, karmic, etc.
  4. Preparar nuestro anillo de claves PGP, mediante:
    apt-key exportall \
    | gpg --no-default-keyring --keyring trustedkeys.gpg --import
  5. Lanzar la sincronización y descarga de paquetes a nuestro directorio local:
    cd /var/www/mirror
    nohup bash mirror-ubuntu.sh karmic &

Una vez se hayan descargado todos los paquetes de la distribución de la que queremos mantener la réplica, configuraremos nuestros clientes apt, editando el fichero /etc/apt/sources.list y modificando la ruta del repositorio de paquetes:
deb http://IP_SERVIDOR_REPLICA/ubuntu/ karmic main restricted
deb-src http://IP_SERVIDOR_REPLICA/ubuntu/ karmic main restricted

deb http://IP_SERVIDOR_REPLICA/ubuntu/ karmic multiverse
deb-src http://IP_SERVIDOR_REPLICA/ubuntu/ karmic multiverse

deb http://IP_SERVIDOR_REPLICA/ubuntu/ karmic universe
deb-src http://IP_SERVIDOR_REPLICA/ubuntu/ karmic universe

deb http://IP_SERVIDOR_REPLICA/ubuntu/ karmic-updates main restricted
deb-src http://IP_SERVIDOR_REPLICA/ubuntu/ karmic-updates main restricted

deb http://IP_SERVIDOR_REPLICA/ubuntu/ karmic-updates multiverse
deb-src http://IP_SERVIDOR_REPLICA/ubuntu/ karmic-updates multiverse

deb http://IP_SERVIDOR_REPLICA/ubuntu/ karmic-updates universe
deb-src http://IP_SERVIDOR_REPLICA/ubuntu/ karmic-updates universe

deb http://IP_SERVIDOR_REPLICA/ubuntu/ karmic-security main restricted
deb-src http://IP_SERVIDOR_REPLICA/ubuntu/ karmic-security main restricted

deb http://IP_SERVIDOR_REPLICA/ubuntu/ karmic-security multiverse
deb-src http://IP_SERVIDOR_REPLICA/ubuntu/ karmic-security multiverse

deb http://IP_SERVIDOR_REPLICA/ubuntu/ karmic-security universe
deb-src http://IP_SERVIDOR_REPLICA/ubuntu/ karmic-security universe

Sería conveniente que ejecutemos periódicamente el script para mantener sincronizada nuestra réplica local.

La imagen la he sacado del album de Tobyotter en flickr

No hay comentarios: