jueves, 23 de mayo de 2019

Crear nuestro propio mirror | Op. 1

Crear nuestro propio mirror nos puede servir para muchas cosas, las implicaciones las veremos en otro artículo, de momento vamos a ver, en principio, 2 formas de crear nuestros propios repositorios de GNU/Linux. Hoy vamos a ver la forma más "profesional" de hacerlo.


Para crear mirrors, yo voy a utilizar, como no, Debian. Lo que tendremos que hacer entonces es descargar ftpsync para crear nuestro mirror de Debian, que ya aviso, que un mirror completo pueden ser más de 600 GB.

De todas formas y antes de comenzar, voy a explicar más o menos qué es un mirror por si alguien no sabe lo que es.

Un mirror no es más que un servidor que contiene una réplica exacta de otro y contiene todos los paquetes oficiales de la distribución. El crear un mirror es, muchas veces, para facilitar las descargas y garantizar el acceso a la información cuando el main server no está disponible.

Podemos crear un mirror por, simplemente colaborar con la comunidad, por descargar los paquetes que solamente nosotros consideremos necesarios y tener así un mayor control o bien porque en nuestra empresa tenemos muchos servidores y queremos realizar las descargas y actualizaciones de paquetes desde nuestro propio mirror.

Una vez que sabemos esto, sigamos con la creación de nuestro mirror. Tendremos que utilizar ftpsync, es más, si quisiéramos hacerlo para colaborar con la comunidad de Debian, la documentación de Debian así nos lo recomienda.


Lo que vamos a descargar es un archivo tar, así que tendremos que descomprimirlo. Al hacer esto, lo ideal es que creemos un usuario que se encargue de todo lo relativo a la gestión del mirror.


Cuando yo digo "crear un usuario", también me refiero a todo lo relativo a permisos y ownerships.

Entonces ya tenemos nuestro usuario creado, vamos a iniciar sesión con nuestro usuario y seguir el proceso desde este usuario.

Ahora vamos a crear, dentro de /home/mirror, tres carpetas:

-bin
-etc
-log

Y a continuación, pasaremos las carpetas/archivos que hemos descargado a su carpeta correspondiente, para esto recomiendo que pasemos los archivos descargados a /usr/src y desde ese lugar global, podamos pasarlo sin problema.

-El archivo ftpsync tendrá que ir dentro de /home/mirror/bin (podemos pasar la carpeta bin directamente si queremos)
-Los archivos ftpsync.conf.sample y ftpsync.conf irán dentro de /home/mirror/etc (podemos pasar la carpeta /etc entera si queremos también).

Una vez ahí, modificaremos nuestro archivo ftpsync.conf deberá de ser modificado y cambiar algunas variables por esto (ojo, no eliminar todo su contenido, simplemente modificar su contenido por esto)

TO=”/var/mirror/debian/”
RSYNC_PATH=”debian”
RSYNC_HOST=ftp.es.debian.org
LOGDIR=”/home/mirror/log”
LOG=”${LOGDIR}/${NAME}.log”
ARCH_EXCLUDE=”alpha arm armel hppa hurd-i386 ia64 kfreebsd-amd64 kfreebsd-i386 mipsel mips powerpc s390 sparc”
RSYNC=rsync

Con esto, ya tendremos configurado nuestro mirror, aunque necesitamos hacer algunas cosas más ¿El qué? Decir cuándo se va a ejecutar el script de ftpsync. Dentro del usuario mirror, vamos a editar nustro crontab.

0 22 * * * /home/mirror/bin/ftpsync
 
Con esta línea decimos que se ejecute todos los días a las diez de la noche. No tenéis por qué escoger esa hora, puede ser otra. Por ejemplo, si sois una empresa, yo escogería una fuera de las "business hours". 

Aún no hemos terminado, no es levantéis de vuestros pupitres. Tenemos que hacer que nuestro mirror esté disponible por HTTP y yo, obviamente, voy a utilizar Apache. Vamos a crear su archivo de configuración (/etc/apache2/sites-available/mirror.conf). Su contenido será similar a este:

DocumentRoot /var/mirror/

Options +Indexes +SymlinksIfOwnerMatch
IndexOptions NameWidth=* +SuppressDescription

ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined

Ya sólo tendremos que habilitar nuestro sitio creado y que nuestro usuario pueda ejecutar apache.


¿Qué nos quedaría? Pues nada, añadir en el sources.list de nuestros equipos la siguiente línea.

deb http://mirror.midominio.com/debian stretch main

And that's all...bueno, casi todo, porque si queréis versiones no libres (non-free) tendréis que añadir las versiones ya existentes de repositorios de Debian non-free, pero yo, como proyectos principales siempre serán repos libres.

¿Hackeamos el Mundo?

No hay comentarios:

Publicar un comentario

Related Posts Plugin for WordPress, Blogger...

Entrada destacada

El server me sabe a poco.

Soy un fanático del Rock y de Debian . (Creo que voy a inventar Rockbian, que suena bien y todo xD) Llevaba tiempo queriendo unir estos 2 c...