yummy

hack my cow
got m00?

lunes, enero 22

El detrás de cámara de involucrate+

Muchos creen que organizar eventos es difícil, pero estoy aquí para desmentirlo: es facilísimo!.

Sí claro. La voz del pueblo es la voz de Dios, es difícil organizar eventos.
Sin embargo es gratificante y es un gran reto :).

Este último evento quisimos (o bueno, teníamos que) instalar Debian en las pcs del laboratorio que usaríamos para impartir talleres de introducción a la colaboración efectiva en el proyecto Debian y el proyecto Gnome (por cierto, los talleres ya están dando frutos).

Bueno, a lo que viene este post es que tuvimos un problema con el setup del laboratorio y no pudimos usar el método que queríamos usar: FAI. Lamentablemente esto lo descubrimos muy tarde :).
Nuestra solución fue un poco más ortodoxa pero a la vez más compleja, instalar Debian en todas "a mano", es decir que debíamos al menos encargarnos de instalar el sistema base en cada una y si se podía todo el resto (es decir GNOME y algunos programillas adicionales).

Esto presentaba un problema (que inicialmente tratamos de evadir con FAI): no teníamos lectoras de CD en todas las máquinas. Instalar de disquetes vía red no era posible pues nuestro repositorio local estaba estropeado y no nos servía.
Todo eso sucedió: el viernes :).

Luego de risas de pánico y otras cosas, resolvimos dejar algunas de las pcs encendidas para desde mi casa encontrar una solución. Eramos César y yo contra un grupo de rabiosas máquinas y una distribución espiralada.

Mientras resolvíamos otras tareas rutinarias como terminar todo a última hora... err... digo repasar el checklist, yo configuraría las pcs con Debian que habíamos dejado (las cuales eran 4 de las 18 que habían). Mientras hacía eso, tomé nota de lo que ejecuté en cada pc pues eran pasos obviamente repetitivos.
Fue entonces que se me vino a la mente la idea de crear un script en bash que hiciese todo lo que acaba de anotar.

Lo primero que hicimos (y que descubrimos antes de venir a mi casa) fue instalar apt-proxy que nos permitía tener un caché de paquetes local y de esa forma ahorrarnos el replicar la descarga de paquetes en cada pc. Ahora apt-proxy tenía un problema: leakeaba memoria maleado. Eso básicamente quería decir que cada cierto tiempo el apt-proxy se moría y ya no respondía a los request de los clientes a menos que yo le diese a golpes. La violencia no era una opción.

un redhat?
César sugiriendo usar Fedora :) (nótese a Goofy al fondo desmayado luego de oir eso)

La solución a eso fue bastante simple y poco ingeniosa, pues no siempre una solución debe ser complicada para ser efectiva. Basicamente consistía en copiarme el /var/cache/apt/archives de la pc proxy a la pc recién instalada :).

Existía el problema de que debíamos instalar Debian base en cada pc, felizmente pudimos resolver eso usando una lectora de CD externa, pues la otra opción era 18plicar nuestro ancho de banda para instalar Debian desde disquetes.

Había que codear EL script, EL responsable de salvar la operación entera era un archivo de texto simple con apenas algunas trazas de UTF-8. Magna misión para un puñado de bytes.

Señores, les presento al responsable del éxito de involucrate+: salva.sh.


#!/bin/bash
# salva.sh a.k.a AADI - Almost Automatic Dieguito Installation
# http://diego.blogspot.com - Diego Escalante Urrelo
# GPL, cambios bienvenidos :).
# nota: ejecutar "./salva.sh x" para la segunda parte.

APT_SOURCES=/etc/apt/sources.list
APT_PROXY="192.168.1.123"
DIST="unstable"
SECTIONS="main contrib non-free"

KERNEL_IMAGE="linux-image-2.6-686"

OPENSSH="openssh-client openssh-server"
SSH_TARGET="diego@192.168.1.123"

X_WINDOW="x-window-system-core"
GNOME="gnome"

EXTRAS="vim less gtranslator epiphany-extensions"


if [ "$1" != "x" ]
then
#Primero hacemos que /etc/apt/sources.list
echo "" > $APT_SOURCES
echo "deb http://$APT_PROXY/debian $DIST $SECTIONS\

deb-src http://$APT_PROXY/debian $DIST $SECTIONS" > $APT_SOURCES

#Ahora apt-get update
apt-get update

#Ahora dist-upgrade
apt-get dist-upgrade

#Actualizar por el gpg
apt-get update

#Ahora asegurarse que tenemos kernel
apt-get -y install $KERNEL_IMAGE
dpkg -P hotplug

reboot
exit
fi;

#Openssh (servidor y cliente) para copiar la data del server
apt-get install $OPENSSH

#Copiar cache a nuestra pc.
scp $SSH_TARGET:/var/cache/apt/archives/* /var/cache/apt/archives/

#Ahora instalar x-window-system, requiere interacción
apt-get -y install $X_WINDOW

#Ahora instalar gnome, require interacción
apt-get -y install $GNOME

#Reconfigurar locales, no me pregunten por qué de nuevo
dpkg-reconfigure locales

#Paquetes que necesitabamos para el Involucrate+07
apt-get install $EXTRAS

#Reiniciar para recargar locales y llegar a un nice GDM
reboot
exit


Si se preguntan cómo hicimos para copiar el script a todas las pc sigan preguntándose porque no les voy a decir, esa fue la parte simple:

salva.sh entrando por la ventana
salva.sh entra por la ventana y cubre a las pcs en su luz mágica.

Rudy llegó ya cuando el proceso estaba en marcha, por supuesto él no tenía idea que el mirror (es decir FAI) había fracasado y no habíamos podido instalar más que 4 máquinas la noche anterior. Para su suerte, no tuvo que ensuciarse las manos. Aquí la prueba:

Rudy gastando saldo
Internet's Rudy Godoy

Finalmente, hay que especificar que AADI no requiere supervisión adulta o responsable. Pero como nadie dentro del público objetivo de AADI se puede considerar un adulto y menos un adulto responsable, van a tener que apretar enter unas cuantas veces :).

Haciéndole barra a salva.sh
KDE's diegoe

Luego de alrededor de 3 horas tuvimos las 14 máquinas restantes completamente instaladas y configuradas. Hubiesemos tardado mucho menos pero tuvimos problemas con el hardware. Lo que me gustó fue que el script apestaba a espíritu hacker, ese que te hace resolver todo como te ayuden las neuronas que te queden prendidas :).

Esa es la crónica de las hmm... 18? 16? horas previas a involucrate+.
Gracias a todos por su ayuda (a los mukis en especial).
Por supuesto las palmas se las llevan quienes nos ayudaron con su asistencia pues no hay evento sin asistentes :D.

Etiquetas: , ,


0 comentarios:

Publicar un comentario en la entrada

Suscribirse a Enviar comentarios [Atom]



Enlaces a esta entrada:

Crear un enlace

<< Página principal