Repositorio local + MiniCD de ubuntu: Instalando un a red linux en pocos minutos.

Hace un tiempo que quiero escribir sobre esto. Pero no encontraba un espacio libre en mi agenda. Ahora, ante la necesidad de crear una red interna en la empresa en la que trabajo, con varias computadoras con linux y un server, decidí darle forma al "How to".

La infraestructura de la red a la que me refiero es bastante simple. Son cinco equipos conectados a un router que da acceso a internet wireless. Uno de los equipos funciona además como servidor de aplicaciones, datos y otras cosas más. Y ahora le agregaremos la tarea de ser un repositorio, en este caso, de la distribución Ubuntu, aunque bien podría aplicarse a Debian o cualquiera de sus derivadas.

A la máquina que funciona como servidor la llamaremos servidor-repositorio o bien por su IP 192.168.0.1 (IP falsa, solo de ejemplo). Es importante aclarar que hay dos formas de hacer esto un repositorio local. Una de las formas es utilizando una herramienta llamada apt-mirror, que crea un repositorio completo (para ubuntu, 34 GB) y la otra, la que tocaremos aquí, es usando apt-cacher, que solamente descarga a petición.

Vamos a crear un directorio llamado repositorio dentro del directorio /home:

$sudo mkdir /home/repositorio

En mi caso hice esto porque el /home lo tengo en un disco diferente del disco donde está instalado Ubuntu (/) lo que de esta forma facilita los backups. También se puede usar el directorio por defecto de apt-cacher

<strong>1. Instalar la aplicación</strong>

Esto se limita a un simple apt-get o si te gusta más, usando Synaptic:

$sudo apt-get install apt-cacher

<strong>2. Configuración</strong>
Como la mayoría de las aplicaciones en Ubuntu, los archivos de configuración se guardan en /etc.
El archivo principal de configuración de apt-cacher es apt-cacher.conf. Para editarlo hacemos:

$sudo gedit /etc/apt-cacher/apt-cacher.conf

O usando el editor que más te guste (nano, kate, vim, emacs, etc.)

Una vez abierto el archivo principal de configuración de apt-cacher: /etc/apt-cacher/apt-cacher.conf podemos comenzar a editarlo de acuerdo a nuestras necesidades.

Cambiaremos el directorio por defecto:

cache_dir=/home/repositorio

El puerto por defecto para apt-cacher es el 3142. Recomiendo, por cuestiones de seguridad, modificar este puerto. En el ejemplo le pondremos el valor 9563. Los puertos altos, además, son más difíciles de hallar por un usuario mal intencionado.

generate_reports: Esta opción hace que apt-cacher cree un informe sobre como de eficiente es tu cache en el uso diario. El valor por defecto es 1. Para deshabilitarlo hay que ponerlo a 0.

path_map: Esta es una opción muy importante. Por defecto no esta en el archivo de configuración así que hay que agregarlo al final. Aquí se definen diferentes redirecciones a diferentes repositorios.

Ejemplo:
path_map = ubuntu archive.ubuntu.com/ubuntu; ubuntu-updates archive.ubuntu.com/ubuntu; ubuntu-security security.ubuntu.com/ubuntu

La primera palabra es el alias del repositorio y la siguiente es la ruta en la web. He puesto los repositorios genéricos de ubuntu pero puede ser cualquiera a tu gusto.

* ubuntu y ubuntu-updates para el host archive.ubuntu.com/ubuntu
* ubuntu-security para security.ubuntu.com

El funcionamiento de esto es bastante engorroso al principio pero basta con un poco de análisis. Reemplazaremos en nuestro sources.list los repositorios por defecto por uno nuevo, con el formato repository_cache_machine:port/mapping_name

repository_cache_machine hace referencia a la máquina servidora. Puede ser la IP o el nombre de la máquina. Yo prefiero la IP por una cuestión práctica. Suponiendo que server-repositorio corresponde a la IP 192.168.0.1 entonces quedarían así:

http://192.168.0.1:9563/ubuntu
http://192.168.0.1:9563/ubuntu-security

Esto hay que configurarlo en el archivo /etc/apt/sources.list reemplazando cada repositorio por su correspondiente repositorio cacher.

Para que apt-cacher se inicie con el arranque del equipo necesitamos activarlo en el archivo /etc/default/apt-cacher.

$sudo gedit /etc/default/apt-cacher

Y colocar el valor AUTOSTART en 1:
AUTOSTART=1

Ahora reiniciamos apt-cacher (o la máquina):

$sudo /etc/init.d/apt-cacher restart

Algunos errores comunes consisten en el tipeo de las direcciones en el sources.list. Hay que tener cuidado en esto porque sino un apt-get update nos tirará error.

$sudo apt-get update

Puede suceder que tengamos bastantes archivos .deb descargados en la ruta tradicional de los mismos /var/cache/apt/archives y quisieramos reciclarlos. Para ello vamos a importar los paquetes a la ubicación de repositorio apt-cacher

En el directorio /usr/share/apt-cacher/ hay una serie de scripts propios de apt-cacher que resultan muy beneficiosos.

Para importar archivos .deb desde /var/cache/apt/archives al repositorio de to apt-cacher ejecutamos:

$sudo /usr/share/apt-cacher/apt-cacher-import.pl /home/repositorio

<strong>3. Instalación de Ubuntu en máquinas conectadas a la red, aprovechando este repositorio.</strong>

Lo interesante de todo esto es que cada vez que alguna máquina de la red o el mismo servidor solicite instaladores de un programa, estos serán almacenados por apt-cacher y podrán reutilizarse desde otro equipo.

Para facilitar el trabajo de instalación utilizamos en las PC cliente un miniCD de Ubuntu (https://help.ubuntu.com/community/Installation/MinimalCD), distribución de 10 MB que permite la instalación en cualquier equipo, aunque se de bajos recursos. De hecho hasta instalamos con este método ubuntu server en un AMD k5 de hace más de 10 años.

Para ello, arrancamos con el miniCD de ubuntu y cuando llegamos al punto donde hay que elegir el repositorio, elegimos ingresarlo manualmente y ponemos: 192.162.0.1:9563 (acá van los datos de tu repositorio apt-cacher). Y seguimos adelante con la instalación.

En el viejo K5 tuvimos ubuntu server instalado en 10 minutos :P

Espero que lo disfruten. A mi me divirtió mucho hacer esto y lo disfruté. Re friki lo mio.. jejeje