Descargar imágenes ISO desde blackshell
Blackshell posee 2 discos duros, uno principal de 840MBs y otro auxiliar que se añadió posteriormente con 2GBs.
Sistema base, correo, web, FTP, no quedaba mucho sitio para poner imágenes ISO para descargar (Software Libre, claro).
Esta tarde he tomado café con Felipe y me ha dejado los 3 CDs de Mandrake Linux 9.2, que me los han pedido. Ha salido el tema, que no hay sitios todavía en elxwifi para descargar cosas (SL, insisto) y sacarle rendimiento a la red. ¿Qué más puede hacer blackshell con tan pocos recursos? NFS es la clave.
Mi máquina de escritorio (homeworld) tiene disco duro de sobra, y está conectada a blackshell mediante la red local. La idea de compartir parte de ese disco vía NFS ha funcionado sin problemas.
He instalado un servidor NFS en homeworld (corre un Debian GNU/Linux) y he exportado un directorio. De /etc/exports
:
/home/iso blackshell-lan(ro,all_squash)
De forma que blackshell puede montar ese directorio vía red local.
En el /etc/fstab
de blackshell he puesto:
homeworld-lan:/home/iso /storage/ftp/pub/iso nfs \ ro,nodev,nosuid,noexec,noauto,-i 0 0
Lo que me permite montar y desmontar el sistema de archivos mediante NFS.
Pero hay un problema importante, aunque se puede solucionar. Al menos lo he solucionado :P.
Resulta que homeworld no tiene un uptime 7x24, y el NFS no soporta desconexiones. Así cuando un servidor cae, el cliente se congela hasta que el servicio se restablece.
Esto es malo, muy malo :(.
La única solución que se me ha ocurrido es que el servidor NFS se encargue de desmontar el sistema de ficheros en blackshell cuando se apague, y que lo vuelva a montar cuando homeworld esté de nuevo encendido.
Para ello he empleado sudo
para permitir a un usuario sin privilegios ejecutar las llamadas a mount
y umount
necesarias (con NOPASSWORD), y he empleado claves RSA con SSH para ejecutar esas órdenes sin meter ninguna contraseña.
El proceso es sencillo:
- Se crea un par de claves con
ssh-keygen
SIN CONTRASEÑA. Esto puede ser un problema si la clave privada RSA se compromete, pero como homeworld es segura (detrás de un robusto cortafuegos OpenBSD, bien administrada, etc.)... no pasa nada :D. - Copiamos
$HOME/.ssh/id_rsa.pub
a blackshell y lo añadimos al$HOME/.ssh/authorized_keys
del usuario sin privilegios (con uncat x >> y
mismo). Si todo va bien, unssh usuario@blackshell
nos debe dar shell sin pedir contraseña. - Modificamos
/etc/init.d/nfs-kernel-server
:El -i es importante para que use la identidad del usuario que queremos (sino será# en la zona del start) después de arrancar el NFS printf "Calling blackshell:" printf " WAKE UP!" ssh -i /home/usuario/.ssh/id_rsa usuario@blackshell-lan \ "/usr/bin/sudo /sbin/mount /storage/ftp/pub/iso" echo "." # en la zona del stop) antes de apagar el NFS printf "Calling blackshell:" printf " SLEEP NOW!" ssh -i /home/usuario/.ssh/id_rsa usuario@blackshell-lan \ "/usr/bin/sudo /sbin/umount -f /storage/ftp/pub/iso" echo "."
root
), porque da la casualidad que el usuario existe en ambas máquinas. Si no existiera en homeworld, elid_rsa
iría en/etc
con los permisos adecuados para que solo el super-usuario tenga acceso a él.
Con esto ya se monta y desmonta el chiringuito con el servidor NFS, y lo hace homeworld sin que tengamos que andar metiendo contraseñas.
Así que si mirais el directorio iso (elxwifi) en el FTP de blackshell vereis un LEEME, si no está homeworld encendido, y un puñado de ISOs para descargar, si homeworld está ahí con su NFS.
Finalmente comentar que el umount
es brusco y probablemente corte la descarga de mala manera. Supongo que con programas como wget
podreis continuar bajando el fichero cuando homeworld vuelva ya que el servidor FTP lo soporta ;).
Ni que decir tiene que esto es totalmente experimental... si alguien tiene problemas, por favor: que informe :D.
Hay 2 comentarios
Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.
por josefu, en 2004-01-21 00:49:59 ∞