En una red corporativa, es necesario tener un mirror local para evitar trafico innecesario al Internet, optimizamos el tiempo de instalación y podemos realizar procesos de actualización periódica en las estaciones de trabajo. En mi caso, cuento con servidores y estaciones de trabajo en Debian 8 (Jessie) y utilizo solamente arquitectura de 64 bits (el equipo mas viejo que poseo es un Intel Dual Core con 2 GB de RAM y soporta instrucciones de 64 bits).
El procedimiento es el que describiré a continuación.
En primer lugar, tener un equipo con suficiente almacenamiento de disco (al menos 160GB). Si se observa que es necesario tener mas RAM o un mejor equipo ya depende del requerimiento y la concurrencia que exista en la empresa.
Instalamos Debian Jessie (version actual 8.8) con una instalación minima. El particionado que utilicé fue el siguiente:
/ 20GB
swap 1GB
/var 138GB (lo que queda)
Procedemos a instalar los paquetes necesarios:
apt install -y debmirror apache2 php5 libapache2-mod-php5
Una vez completado ejecutamos los comandos para poder realizar la descarga:
Descargamos con este comando los paquetes estables, seguridad y Backports:
debmirror -debug -progres --no-source --verbose --getcontents --diff=none --no-check-gpg --ignore-release-gpg --ignore-missing-release --i18n -a amd64 -s main,contrib,non-free -h ftp.debian.org -d jessie,jessie-updates,jessie-backports -e http -r /debian /var/www/html/debian
Este comando tomará su tiempo al momento de realizar la primera replica. Una vez se encuentra descargada solamente se encargará de actualizar las diferencias existentes entre el servidor de la nube y el local.
Ahora bien, para poder realizar una actualización del mirror periódica, se puede realizar un script de shell para que el proceso pueda automatizarse. En mi caso, realizo un proceso de registro de eventos para llevar un mejor control. Ejecutamos el siguiente comando para crear el script:
nano /root/mirror.sh
Y copiamos el siguiente contenido:
------------------------------------------------------------------------------
#!/bin/bash
clear
echo “########################################################” >> /root/registro_mirror.log
#debian jessie
echo “Inicio de descarga de Mirror, distribucion Debian 8 estable, Updates y Backports (solo 64 bits) – ” `date`>> /var/www/html/logs/registro_mirror.log
debmirror -debug -progres --no-source --verbose --getcontents –--=none --no-check-gpg --ignore-release-gpg -ignore-missing-release --i18n -a amd64 -s main,contrib,non-free -h ftp.debian.org -d jessie,jessie-updates,jessie-backports -e http -r /debian /var/www/html/debian
echo “Fin de descarga de Mirror, distribucion Debian 8 estable, Updates y Backports (solo 64 bits) – ” `date`>>/var/www/html/logs/registro_mirror.log
echo “Reiniciando el Servidor - ” `date`>>/var/www/html/logs/registro_mirror.log
reboot
------------------------------------------------------------------------------
Ahora procedemos a automatizar el proceso de actualización, colocando la siguiente línea en el crontab (programador de tareas).
nano /etc/crontab
Agregamos estas lineas al final
#Tarea mirror debian
00 22 * * * root -c "sh /root/mirror.sh"
Con este comando, la tarea se ejecutará todos los días a las 10:00 PM y el proceso de actualización dependerá de las diferencias existentes entre el mirror local y el de la nube.
Para poder acceder desde un equipo cualquiera y evitar errores de transcripción de los datos, he diseñado este index.php para que pueda ser dinamico. A su vez, muestra información referente al equipo desde el cual nos estamos conectando.
Ahora el fuente del index.php
nano /var/www/html/index.php
------------------------------------------------------------------------------
<?php
print '<html><head><title>Mirror Local</title></head><body>';
print '<h1>Mirror Local </h1>';
print '<p>#mirror local Debian 8<br>';
print 'deb [arch=amd64] http://mirror/debian/ jessie main contrib non-free<br>';
print 'deb [arch=amd64] http://mirror/debian/ jessie-updates main contrib non-free<br>';
print 'deb [arch=amd64] http://mirror/debian/ jessie-backports main contrib non-free<br></p>';
print '<br>';
print '<p>Tu IP es: <b>'.$_SERVER["REMOTE_ADDR"].'</b></p>';
print '<br>';
print '<p>El IP del servidor es: '.$_SERVER["SERVER_ADDR"].'</p>';
?>
------------------------------------------------------------------------------
Debemos borrar el archivo index.html con el siguiente comando:
rm /var/www/html/index.html
Para poder acceder al mirror, solamente debemos acceder con la siguiente dirección:
http://IP_MIRROR/
NOTA: Se observa que en este caso, en el repositorio se hace mención a la arquitectura que posee el repositorio, la cual se establece con el parámetro [arch=amd64]. Si se desea agregar otras arquitecturas, se debe cambiar en el SCRIPT el siguiente parámetro: -a i386,amd64 para agregar la arquitectura i386. Cabe mencionar que el tamaño del mirror se incrementará dramaticamente.
No hay comentarios.:
Publicar un comentario