wiki:Subproyectos

Version 1 (modified by irina, 7 years ago) (diff)

--

TOC(heading=Índice)?

Propuestas de subproyectos de OpenGnsys

En esta página queremos definir futuras funcionalidades de OpenGnsys que son lo bastante modulares para abordarlas como un subproyecto independiente. Esto permite que se realicen separadamente por una o varias personas o incluso como proyectos fin de carrera.

Gestión de particiones GPT y arranque tipo UEFI

El hardware de los equipos nuevos vienen con unas características que no son soportados por OpenGnsys.

Es prioritario comenzar a hacer pruebas y incluir las funcionalidades necesarias en el código.

Algunos aspectos:

  • El comando bcdboot configura la partición de arranque EFI para que se pueda arrancar el sistema operativo en la partición de sistema.
  • Para el arranque UEFI será necesario que el cliente de OpenGnsys esté firmado. Ya hay imágenes de Ubuntu firmadas que podríamos usar.

Arranque de Windows desde un sistema linux sin reiniciar la máquina.

Una vez que hemos entrado en el cliente OpenGnsys, ubuntu 11, este nos ofrece la opción de iniciar sesión en los sistemas operativos que tenga instalado el equipo. Se quiere iniciar sesión en windows sin que haya que reiniciar el equipo.

Actualmente se inician de la siguiente manera:

linux:

Kexec nos permite arrancar un nuevo kernel desde uno que ya se este ejecutando.

kexec -l "/mnt/sdaN/boot/kernel" --append="root=/dev/sdaN" --initrd="/mnt/sdaN/boot/initrd"
kexec -e

Windows:

No podemos arrancar windows sin reiniciar el equipo.

Utilizamos para el arranque remoto PXE con grub4dos. Permite que el menú de arranque que mandamos al equipo busque si existe un archivo concreto en una partición y si es así la inicia.

Esto nos obliga a realizar varios pasos para arrancar:

  • Iniciamos el cliente OpenGnsys.
  • Al ejecutar el comando de arrancar:
    • Se crean las marcas (archivos) en la partición que queramos iniciar
    • Reiniciarmos el equipo.
  • Al iniciar con pxe:
    • Encuentra la marca (archivo), la modifica e inicia la partición.
  • Al arrancar Windows
    • Se tendrán que borrar las marcas.

En las primeras versiones de OpenGnsys, Windows se arrancaba utilizando kexec con grub4dos, dejó de funcionar con los discos sata 2. Se copiaba grub2dos a la partición de windows que quisiéramos iniciar y lo cargabamos con kexec:

cp $SERVIDOR/grub4dos/* /mnt/sda1
kexec -l /mnt/sda1/grub.exe --append=--config-file=root (hd0,0); chainloader (hd0,0)/ntldr; tpm --init 
kexec -e

Sustituir los servicios ogAdmServer, ogAdmRepo y ogAdmClient por una API REST

Actualmente los servicios están desarrollados en C y la comunicación entre ellos es persistente a través de un socket de Linux. En el caso del agente de sistema operativo si existe inestabilidad en la red, cualquier microcorte hace y que se desconecte del servidor y bloquee el acceso a la red del sistema operativo. En el caso de ogLive la desconexión del servidor de lugar a que el equipo aparezca en estado apagado en la consola, no permitiendo que se envíen comandos.

Se quiere sustituir por nuevos servicios desarrollados en python y con una comunicación no persistente a través de un API REST.

En la versión 1.1 se va a sustituir el agente del sistema operativo, de forma que para los demás servicios ya existe un código para tomar como punto de partida:

Crear paquetes de instalación OpenGnsys en formato .dev y .rpm para distintas distribuciones.

Por prioridad: ubuntu/debian, fedora/red hat/CentOs , suse

Se podrán instalar por separado los servicios del servidor de administración y el repositorio.

OpenGnsys se instala con un shell script de instalación que se ejecuta en bash. Los principales pasos que realiza son:

  • Configuración de parámetros del instalador: clave root mysql, usuario OpenGnsys para mysql,…
  • Detecta datos del equipo para la instalación: según la distribución crea el listado de dependencias.
  • Detecta configuración de red del equipo: ip servidor, mascara de red,...
  • Instalación de dependencias (paquetes de sistema operativo).
  • Configura servicios: dhcp, apache, tftp, samba, mysql.
  • Crea la estructura de directorios de OpenGnsys.
  • Copia los archivos de OpenGnsys.
  • Compila los servicios OpenGnsys y los configura.
  • Copia los archivos de la consola de administración web y la configura.
  • Crea documentación para la consola web.
  • Crea la base de datos de OpenGnsys para la consola web y el usuario.
  • Copia los archivos del cliente.
  • Crea el cliente OpenGnsys.
  • Muestra un resumen de la instalación.

Api de virtualización

Interacción de OpenGnsys con vmware/XEN/KVM para gestionar máquinas virtuales de igual manera que se gestionan los equipos físicos.

De igual manera que existen librerías de OpenGnsys para gestionar los distintos aspectos de un equipo físico necesitaríamos unas funciones que nos permitieran:

  • Crear una plantilla de máquina virtual a partir de una imagen de OpenGnsys o de un equipo físico (equivalente a crear imagen desde equipo)
  • Crear máquina virtual a partir de plantilla. (equivalente a restaurar)
  • Obtener información del estado de la máquina.
  • Configuración de la máquina virtual: dispositivos.
  • Configuración de la máquina virtual: nombre pc, ip, etc (equivalente a la postconfiguraciñon de un sistema operativo después de restaurar una imagen)

Algunas acciones se lanzarían desde el cliente OpenGnsys sobre la máquina virtual (obtener estado máquina) y otras directamente desde la consola de administración (conversión de imagen de OpenGnsys a plantilla de imágenes virtuales).

Autodetección de los clientes cuando se incorporan a la red.