wiki:Version2/Desarrollo/OGLive

Version 4 (modified by adelcastillo, 9 years ago) (diff)

--

NOTA

Esta nueva versión de OGLive sólo ha sido probada con Kubuntu 10.10 para generar un cliente Ubuntu 10.04 mínimo. Si se encuentran errores comprobar tickets y enviar la incidencia.

Uso

Hay que tener instalado el paquete live-build de ubuntu o debian:

sudo apt-get install live-build

Para generar un cliente hay que irse al directorio source:branches/version2/live. En ese directorio ejecutar:

lb config && lb build

Esto generará un binary-net.tar.gz. En su interior podremos encontrar un dos directorios, el tftpboot y el ubuntu-live. El tfptpboot trae todo lo necesario para por red el live generado. No estará configurado, para ello habrá que editar: tftpboot/debian-live/i386/bootscreens/live.cfg. Para facilitar la configuración en source:branches/version2/live/server/ existe una carpeta tftpboot más sencilla y fácil de configurar, con comentarios incluso, que la anterior. Lo único que necesita son el kernel y el initrd para arrancar. Sería bueno mirar el fichero pxelinux.cfg.

En la carpeta ubuntu-live se encuentra el sistema de ficheros que arrancará por red. La carpeta hay que compartirla. También se dejan ficheros de configuración en la carpeta source:branches/version2/live/server/ para facilitar la configuración. Se puede compartir tanto por NFS como por SAMBA.

Si por algún casual diera algún error, o simplemente quieres cambiar la configuración del cliente generado para realizar pruebas se puede ejecutar:

lb clean && lb config && lb build

Con el lb clean se borrarán todo excepto la cache de los paquetes descargados.

Tecnologías

Se hace uso principalmente del programa live build de Debian. El conocimiento de esta herramienta podría ser importante para mejorar el proceso de generación de OGLive.

Código

El código se encuentra en source:branches/version2/live. En éste hallamos los scripts que generan una distribución Ubuntu live mínima incluyendo el software necesario para ejecutar el cliente de OpenGnSys:

  • auto: directorio usado por live-build, en la que comprueba si existen los ficheros build, clean y config antes de ejecutarse. Se usa para configurar el cliente tal como lo necesitamos nosotros y automatizar tareas repetitivas como pasar los hooks, includes, packages_lists y pressed al directorio que crea lb config.
  • hooks: contiene scripts que se ejecutarán dentro del live antes de ser generado definitivamente. Puedes añadir nuevos para añadir, configurar o eliminar cosas de manera sencilla.
    • client_init: para modificar el proceso init y arrancar opengnsys.
    • remove_unused_casper_init: para eliminar procesos de arranque del initrd.
    • remove_unused_init: para eliminar procesos innecesarios del init.
  • packages_lists: contiene ficheros que tienen dentro una lista de paquetes que serán instalados en el live automáticamente. Sería bueno que hubiera distintas listas según la necesidad de instalar esos paquetes, por ejemplo para el que funcione el engine, el browser, etc.
  • preseed: ficheros para configurar los paquetes deb que se instalan en el cliente.
  • options: fichero de configuración. Se puede editar para crear otras arquitecturas u otras versiones.
  • server: encontraremos ficheros de configuración que pueden ser útiles para configurar los servicios necesarios para arrancar el cliente que son por ahora: NFS, DHCP, SAMBA y TFTP. Se da la alternativa de usar dnsmasq solamente o dhcpd3 con tftpd.

Modificar el cliente

Hay dos maneras principales de hacerlo. En auto/config encontramos un script que además de configurar añade herramientas de OpenGnSys al sistema. Otra manera es añadiendo hooks para que añada usuarios o elimine scripts de arranque.

VirtualBox

Para hacer las pruebas se puede configurar VirtualBox para el arranque en red de las máquinas virtuales y probar más rápidamente las distros generadas. Para ello sólo hay que seguir los siguientes pasos: http://www.tolaris.com/2009/03/05/using-host-networking-and-nat-with-virtualbox/

Información adicional

http://www.linuxcertif.com/man/7/casper/ man lb_config