viernes, 23 de mayo de 2014

Guia para replicar repositorios con debmirror

Repositorios Locales para debian y Canaima 
En esta oportunidad, se dejará documentado la creación un repositorio de Linux GNU/Debian en su versión estable para tenerlo en un equipo de la red interna de la oficina o casa.

Caracteristicas: Serán replicadas las ramas, debian-main, debian-backports, debian-multimedia, debian-security, igualmente las de Canaima.

Ventajas: Al momento de querer realizar una instalación limpia de un equipo que se encuentre dentro de la misma red del servidor (mirror) se haran a la velocidad de la red interna, es decir, 10mbits, 100mbits o inclusive 1Gbits.

Desventajas: Aunque el ancho de banda puede ser regularizado (vía parametros en comandos) se hará un buen uso del ancho de banda hasta tanto se tenga una copia completa del repositorio en local, por lo que se recomienda, realizarlo en horas de la noche, para no afectar a otros usuarios de la red interna.



Requisitos: Se necesitará, al menos para el caso que se explicará acá, crear unas carpetas, darles el respectivo permiso, instalar algunos paquetes, manejo de cron (para la automatización) y hacer uso de editor de texto.

0) Instalación de paquetes: Instalar debmirror y apache2 

aptitude install apache2 debmirror -y

Nota 0: Instala el paquete encargado de realizar la sincronización entre el servidor mirror (internet) y nuestro equipo local (LAN).


1) Creación de carpetas necesarias:
Se deben crear, a través del Terminal, estas carpetas en /var/www/mirror/, en las cuales se va a descargar el Repositorio y cada vez que se hagan actualizaciones será allí donde se descargarán las misma; para esto se aplica el siguiente comando:

$ sudo mkdir /var/www/mirror/debian 
$ sudo mkdir /var/www/mirror/debian-seguridad
$ sudo mkdir /var/www/mirror/debian-multimedia
$ sudo mkdir /var/www/mirror/debian-backports 

$ sudo mkdir /var/www/mirror/universo
$ sudo mkdir /var/www/mirror/canaima-repo 
$ sudo mkdir /var/www/mirror/canaima-seguridad


Nota 1: En este paso se crean las carpetas donde estaran alojados los scripts que controlaran el proceso de descarga, inicio y stop del mirror.
 
2) Realizar el Script: Se debe hacer 1 script en bash, esto para usarlos luego con cron y hacer actualizaciones periódicamente. En un Terminal ejecutar el siguiente comando y en el mismo incluir las líneas abajo colocadas:

nano repositorio.sh

Repositorio Debian Squeeze Local 

repositorio.sh guión Queda ASI: 

#! / Bin / bash 
# # Debian 
debmirror - debug - nosource - curso - verbose - host = ftp.br.debian.org - root = debian - method = rsync - dist = squeeze - arch = amd64, i386 - section = main, contrib, non-free - ignore-missing-release - rsync-options =-ail / var / www / mirror / debian 


Repositorio Local Debian Seguridad 

guión seguridad.sh Queda ASI: 

# Debian Seguridad 
debmirror - debug - curso - verbose - nosource - host = security.debian.org - section = main, contrib, non-free - method = http - root = debian-security - dist = squeeze / actualizaciones - arch = amd64, i386 - ignore-release-gpg - rsync-options =-ail / var / www / mirror / debian-seguridad 


Repositorio Local Debian Multimedia 

guión multimedia.sh Queda ASI: 

# Debian multimedia 
debmirror - debug - curso - verbose - nosource - host = www.debian-multimedia.org - section = principal - method = rsync - root = debian - dist = squeeze - arch = amd64, i386 - ignore-release-gpg - rsync-options =-ail / var / www / mirror / debian-multimedia 


Repositorio Local Debian Backports 

guión backports.sh Queda ASI: 

# debian Backports 
debmirror - debug - curso - verbose - nosource - host = debian.ustc.edu.cn - section = main, contrib, non-free - method = rsync - root = debian-backports - dist = squeeze-backports - arch = amd64, i386 - ignore-release-gpg - rsync-options =-ail / var / www / mirror / debian-backports 


Los repositorios de Canaima cambiaron: 

Repositorio Debian Canaima 
El guión de canaima-universo es asi: 

debmirror - debug - curso - verbose - nosource - host = universo.canaima.softwarelibre.gob.ve - section = main, contrib, non-free - method = rsync - root =: Universo - dist = estable - arch = i386, amd64 - ignore-release-gpg - rsync-options =-ail / var / www / mirror / universo 


El guión de canaima-repo Queda ASI: 

debmirror - debug - curso - verbose - nosource - host = repositorio.canaima.softwarelibre.gob.ve - section = Usuarios - method = rsync - root =: canaima - dist = Estable, desarollo, Pruebas - arch = i386, amd64 - ignore-release-gpg - rsync-options =-ail / var / www / mirror / canaima-repo 

El de canaima-seguridad Queda ASI: 

debmirror - debug - curso - verbose - nosource - host = seguridad.canaima.softwarelibre.gob.ve - section = Usuarios - method = http - root =: - dist = direction seguridad - arch = i386, amd64 - ignore-release-gpg - rsync-options =-ail / var / www / mirror / canaima-seguridad 

TAMBIEN PUEDE SER UN SCRIPT CON TODO.... 

#!/bin/sh
# Autor: Nombre y Apellido
# Este script genera y/o actualiza los mirrors de Canaima
echo "Script de actualización automática de MIRRORS"
echo "Verificando..."
# Comprobamos si debmirror ya se está ejecutando
st=`ps cax |grep -c "debmirror"`
echo "Analizando Ejecucion..."
if [ $st -eq 0 ];then
  echo "Ejecutando Actualizacion...."
  debmirror --debug --progress --verbose --nosource --host=repositorio.canaima.softwarelibre.gob.ve --section=usuarios --method=rsync
  --root=:canaima --dist=estable --arch=i386,amd64 --ignore-release-gpg --rsync-options=-aIL /var/www/canaima
  debmirror --debug --progress --verbose --nosource --host=seguridad.canaima.softwarelibre.gob.ve --section=usuarios,servidores 
  --method=rsync --root=:canaima --dist=seguridad --arch=i386,amd64 --ignore-release-gpg --rsync-options=-aIL /var/www/canaima-seguridad
  debmirror --debug --progress --verbose --nosource --host=universo.canaima.softwarelibre.gob.ve --section=main,contrib,non-free 
  --method=rsync --root=:universo --dist=stable --arch=i386,amd64 --ignore-release-gpg --rsync-options=-aIL /var/www/universo
else
  echo "Debmirror ya se estájecutando"
  echo "La Actualizacion esta en proceso..."
fin


Por ultimo: Asignarle todos los permisos al script para luego ejecutarlo por primera vez el script; esto se realiza con los siguientes comando:

chmod 777 /ruta_del_script
./ruta_del_script

Opcional:

Si se desea que el Servidor ejecute las tres líneas de comando anteriores, de forma automática cada cierto tiempo, para esto es posible Configurar Cron o Tareas Programas. Cron es para programar tareas que ejecutará el Servidor Local automáticamente.
También existe la posibilidad de guardar un archivo .log con las actualizaciones que realizó automáticamente el Servidor de Repositorio o Mirror; simplemente con colocar el siguiente comando al final de cada una de las tres líneas antes mencionadas:

>> /ruta/donde/queremos/guardar/el/archivo.txt/

No hay comentarios:

Publicar un comentario en la entrada