wiki:Reunion100419

Version 1 (modified by irina, 8 weeks ago) (diff)

--

Acta videoconferencia del 10 de abril de 2019

Asisten: Teruel, Valencia, Málaga, Huelva y Sevilla

Próxima reunión: 2 de mayo a las 11:30

#761 #718 Reunión nueva consola - ogAgent

Nos hemos reunido probar la comunicación entre el nuevo agente de OpenGnsys y la nueva consola. Además para repasar el uso de las funciones de la API REST y el paso de mensajes.

Cuando pasemos a usar la nueva consola ogAdmServer, ogAdmAgent y ogAdmClient dejarán de utilizarse.

  • El ogAgent se instala en el ogLive y para la nueva consola sustituye al ogAdmClient.
  • La consola nueva reemplaza al ogAdmServer y ogAdmAgent.

En las primeras pruebas conseguimos que se notifique el encendido y apagado, mostrando la nueva consola el estado correspondiente.

Comunicación consola - ogAgent

La consola y el agente utilizan una forma de autenticarse distinta. La web usa auth2 y se modificará el agente para que siga esta estructura de autorización.

Auth2 crea un cliente que permite autenticarte. El cliente se puede asociar a un usuario o a un pc.

En el primer mensaje que manda el ogAgent al servidor envía el usuario y token de acceso del cliente además de la ip y la mac. El servidor le devolverá una clave de sesión que se utilizará en el resto de la comunicación.

El token de acceso se generará al instalar el ogLive en el servidor por lo que será único por cada servidor y ogLive. El de los ogAgent se creará al generar el paquete de instalación y no dependerá del servidor.

La cabecera de autenticación del ogAgent ya se ha hecho.

Se modifica la función sendMessage del agente añadiéndole dos parámetros opcionales: cabecera y si la solicitud es POST o PATH.

En el fichero de configuración hay que incluir:

  • La ruta de la API REST.
  • El tokent de acceso.

Estructura

La nueva web utiliza un backend que ofrece una API REST y el frontend llama al backup y presenta los datos:

  • frontend: Angular y la plantilla adminLTE.
  • backend:
    • Synfony y API REST.
    • Está estructurado en módulos. En el núcleo encontramos la parte de usuarios que permitirá asignar distintos permisos/roles y crear grupos.

Código

Se subió el código de la web nueva a git.

Se ha integrado la rama del ogAgent con la de la consola nueva. Si hizo un fast-foward en las dos ramas y se unieron posteriormente.

Todos el código nuevo del ogAgent, no incluido en la rama devel, sí está en la rama de la consolas.

Queda revisar las reglas de reescritura de apache:

  • backend: /opt/opengnsys/rest/v3
  • frontend: /opt/opengnsys/v3

Pruebas

En el periodo de prueba coexistirán las dos consolas.

Se modifica el script de actualización de OpenGnsys para que después de actualizar la web actual, instale la nueva web y migre los contenidos de la otra.

La migración no se puede hacer en el otro sentido ya que los conceptos de entidad, aulas, grupo de ordenadores pasan a considerarse solamente "unidad organizativa" por lo que hay una perdida de información que no permite volver atrás.

Falta terminar el instalador para que otras universidades puedan probar la consola y crear una documentación para las pruebas (de la url de los comandos y de la instalación del agente).

En el proceso de arranque del cliente hay que comprobar que se instala bien el ogAgent.

El ogLive tiene un parámetro que permite activar el ogAdmClient o el ogAgent.

Para las primeras pruebas se puede situar el ogAgent y el fichero de configuración en un directorio dentro de /opt/opengnsys/images.


Se intentará tener una demo para RedIris.

Las reuniones presenciales permiten que se avance mucho en el trabajo.

Más adelante podríamos reunirnos con Granada para incluir las sincronizadas con git.

#802 Gestión equipos UEFI

ogGrubInstallMbr: Reconoce cargador de Windows en partición ESP y guarda cargador de OpenGnsys en directorio "grub".

ogBurgInstallMbr: No se usará para UEFI. Se vuelve al código inicial.

Las plantillas PXE se renombran para coherencia entre BIOS y UEFI.

  • Pasan de llamarse NumDisco-NumPartición a NumDisco-NumSistemaOperativo.
  • No hay una equivalencia posible a la plantilla MBR de BIOS, desde grub no se puede llamar directamente al disco ni a la NVRAM. Se llamará a refind.
  • Cuando los equipos no están configurados toman como plantilla "default": se propone que si hay refind lo arranque y sino arranque el ogLive.

rEFInd

ogRefindInstall tanto si la configuración es automática como si la genera OpenGnsys sólo muestra entradas para los sistemas operativos desplegados con OpenGnsys y el ogLive.

Cuando la configuración es automática toma todos los cargadores que encuentra, pudiendo configurar los discos y volúmenes excluidos. Ahora excluimos todas las particiones menos la ESP y la cache, además de los directorios de microsoft y ubuntu. Cuando probemos más sistemas operativos habrá que excluir más directorios, es fácil.

Se han creado funciones auxiliares para rEFInd: configurar entrada por defecto, configurar timeout,...

La instalación de refind se hará siempre en la postconfiguración. Para que haya un cargador de arranque de todos los sistemas operativos.

Gestionar la NVRAN

Al igual que se restauran los cargadores de arranque de la partición ESP necesitamos funciones que permitan listar y borrar entradas de la NVRAN.

Se comenta que pasa si se quita el cable: El equipo arrancará de nvram, como la primera entrada es la red saltará a la segunda. Por ello se configurará refind como la segunda entrada del NVRAM.

Otros

Los script de instalación, exportar e importar tienen en cuenta los ficheros PXE para UEFI.

Pruebas 1.1.0a

Se está realizando sobre aulas completas con el último tgz. La programación de tareas funciona correctamente (en la versión del tgz anterior fallaba). Es compatible con el Ubuntu 14.04 en el servidor.

Se ha encontrado un error en el asistente de deploy: no manda al updateCache la IP del servidor sino REPO.

el error ocurre porque ogGetPath no devuelve código de error: este es el funcionamiento correcto lo que hay que cambiar es la manera de comprobar que no existe al archivo. El cambio sería el siguiente:

<   IMGFILE=$(ogGetPath "$1" "$2.mbr") || return $?
 	
>  IMGFILE=$(ogGetPath "$1" "$2.mbr")
>  [ -r "$IMGFILE" ] || ogRaiseError $OG_ERR_NOTFOUND "$IMGFILE" || return $?

Hay que documentar correctamente la función.

Nuevo ogLive y BURG

La versión de Ubuntu que se utiliza para crear el ogLive no tiene paquete de instalación para burg. Hay que probar con un paquete de una distribución anterior para ver si es compatible.