Version 30 (modified by 14 years ago) (diff) | ,
---|
Cliente OpenGnsys
Objetivo
- Ser capaz de inicializarse desde:
- cualquier dispositivo removible (usb, cd, dvd),
- una partición cache, o un espacio no particionado (¿¿¿???)
- y por supuesto por red, utilizando cualquier protocolo.
- Ofrecer la posibilidad de añadir o actualizar software usando los gestores de paquetes estándar.
- Que el software instalado en el cliente, no afecte a su arranque (especialmente en el modo PXE)
- Independizar el tiempo de arranque del cliente, independiente del número de estos que se inician simultánemente.
Descripción
- El "cliente" se compone en:
- Primera etapa: un kernel y un initrd.
- Segunda etapa: el sistema raíz o root(con todas las aplicaciones necesarias).
- Los elementos de la primera etapa se cargan mediante un gestor de arranque, dependiendo del contendor(cd,dvd,usb,particionCache,red) se usuará el más idóneo (p.e isonlinux, grub, grub4dos, gpxe).
- El inicializador de opengnsys ubicado en el initrd (boot=oginit) detectará donde se ubica el sistema raíz (segunda etapa), y lo incluirá como tal.
Instalación
No realizar el proceso en un sistema en procucción. Se ha testado con éxito en la ubuntu server 32 bits 10.04, 10.04.2 y 10.10
mv /opt/opengnsys/tftpboot/ogclient/ /opt/opengnsys/tftpboot/ogclientTrunk; svn checkout http://www.opengnsys.es/svn/branches/ogClient /tmp/opengnsys_installer/opengnsys/installer/ogClient; svn checkout http://www.opengnsys.es/svn/branches/version1.0/client/shared/ /tmp/opengnsys_installer/opengnsys/client/shared; svn checkout http://www.opengnsys.es/svn/branches/version1.0/client/engine/ /tmp/opengnsys_installer/opengnsys/client/engine; find /tmp/opengnsys_installer/ -name .svn -type d -exec rm -fr {} \; 2>/dev/null; /tmp/opengnsys_installer/opengnsys/installer/ogClient/ogClientGeneratorV2.sh;
DEBUG en el proceso de instalación:
Continuar sin instalar grub -> yes Congigura el console-data Introduce la clave pub de nuestro servidor(ejecutor del instalador) en el cliente. En el caso de que ya exista un .pub nos pregunta si generar uno nuevo o mantener (N) Could not find /boot/grub/menu.lst file. Would you like /boot/grub/menu.lst generated for you? (y/N) -> Y
El proceso que se ha indicado a continuación, genera los elementos del cliente OpenGnsys, basados en la versión de ubuntu que tengamos instalados (mismo kernel y distribución).
/opt/opengnsys/tftpboot/ogclient/
./ogvmlinuz (el kernel) ./oginitrd.img (el initrd) ./ogclient.img (el sistema raiz, accesible como disco virtual usando schroot desde el host que lo generó, para ser actualizado) ./ogclient.sqfs (el sistema raiz, comprimido para ser usado por los clientes OpenGnsys)
Las fases de la instalación
- Fase 1. Instalación en el equipo donde se ejecuta la instalación de software necesario.
- Fase 2. Asignación de valores, como la versión del kernel, basados en los datos del S.O que ejecuta el instalador, que serán utilizados para generar el cliente.
- Fase 3. Creación del sistema raiz (ogclient.img). Primero se crea un disco duro virtual, y se particiona -ogCleint2nFile()-. En la primera partición se genera un sistema operativo con la herramienta deboobstrap -ogClient2ndFs()-, con parametros basados en la fase2.
- Fase 4. Se configura el acceso al sistema raiz (ogclient.img) para ser usado con la herramienta schroot -ogClientSchrootConf()-
- Fase 5. Se configura o se incluyen los elementos especiales de opengnsys (engine, QTEmbbedbed, pci.ids, browser, ogAdmClient). -ogClient2ndSVN()-
- Fase 6. Ampliación del sistema raiz -- instalación de software con apt, compilación de algunas herramientas, importación de la clave ssh desde el SO que lo generó.
- Fase 7. Generación del initrd.
- Fase 8. Generación del sistema raiz en sqfs.
Modificaciones al cliente
Pasos previos:
svn checkout http://www.opengnsys.es/svn/branches/ogClient /tmp/opengnsys_installer/opengnsys/installer/ogClient; source /tmp/opengnsys_installer/opengnsys/installer/ogClient/ogClientManager.lib
Generar un nuevo initrd, con nuestras "locales", y almacenarlos en el /opt/opengnsys/tftpboot/ogclient/
schroot -C IMgogclient -- /root/ReconfigureLocales.sh ogClientInintrd host
Copiar nuevos archivos al sistema raiz del cliente (ogclient.img)
Cualquier archivo extra, que queramos añadir al sistema raiz del cliente, tenemos el directorio /tmp compartido entre el SO y el ogclient.
schroot -c IMGogclient cp /tmp/ficheroOGSERVER.txt /home/opengnsys/ficheroEnOGclient.txt
Generar un nuevo initrd, con un nuevo proceso de inicio de OpenGnsys
schroot -c IMGogclient #editamos el proceso de inicio vi /etc/initramfs-tools/scripts/oginit #editamos las funciones del proceso de inicio vi /initramfs-tools/scripts/ogfunctions # o copiamos uno actualizado. cp /tmp/oginit /etc/initramfs-tools/scripts/oginit # o añadimos uno inicio alternativo cp /tmp/oginit2 /etc/initramfs-tools/scripts/oginit2
Instalar nuevas herramientas en el sistema raiz del (ogclient.img)
schroot -c IMGogclient apt-get install python3
Generar un nuevo sistema raiz en formato sqfs (ogclient.sqfs)
ogClient2ndSqfs
Parametros usados por el kernel
http://www.opengnsys.es/browser/branches/ogClient/kernelParameterOG.es.txt
SVN del código
http://www.opengnsys.es/browser/branches/ogClient
Proceso de inicio:
- http://www.opengnsys.es/browser/branches/ogClient/clientstructure/etc/initramfs-tools/scripts
- http://www.opengnsys.es/browser/branches/ogClient/clientstructure/etc/inittab
modificaciones del initrd.
Notas sobre uso con samba
http://www.opengnsys.es/browser/branches/eac-hidra-uma/Testing/etc/smb.conf.txt