wiki:DocumentacionUsuario1.0.6/ArranquePersonalizado
Last modified 12 months ago Last modified on 07/07/16 13:23:36

Arranque personalizado para clientes de OpenGnsys

Por defecto los clientes se iniciarán con el arranque genérico, pero si queremos OpenGnsys permite personalizarlo.

Arranque genérico de un cliente OpenGnsys

El arranque genérico del cliente OpenGnsys realiza varios pasos:

  • iniciar cliente OpenGnSys, el demonio que permite que el servidor sepa el estado del cliente y pueda enviarle acciones a realizar
  • realizar los comandos pendientes de la cola de acciones
  • cargar el menú asignado
  • en caso de error, si está en modo administración, mostrará una consola bash.

El arranque genérico me permite programar un comando o una tarea para un momento determinado y encender el equipo con WOL para que se realice.

Script de arranque personalizado

OpenGnsys permite crear un script personalizado:

  • para un cliente específico
  • para todos los clientes de un aula

En el último paso del arranque de los equipos el cliente ejecutará el primer script que encuentre de los siguientes:

  • /opt/opengnsys/client/etc/init/$OG_IP.sh
  • /opt/opengnsys/client/etc/init/$OGGROUP.sh
  • /opt/opengnsys/client/etc/init/default.sh

La variable OGGROUP coincide con el nombre del aula sustituyendo los espacios por subrayados y eliminando las ñ y las tildes. Se puede consultar en los parámetros que envía el archivo de arranque PXE al kernel. En el cliente ejecutamos:

cat /proc/cmdline
ro boot=oginit quiet splash vga=788 irqpoll acpi=on og2nd=sqfs ogprotocol=smb ogactiveadmin=false ogdebug=false  LANG=es_ES ip=192.168.2.12:192.168.2.10:192.168.2.1:255.255.255.0:ogClient02:eth0:none group=AulaVirtual_1 ogrepo=192.168.2.10 oglive=192.168.2.10 oglog=192.168.2.10 ogshare=192.168.2.10 

Observamos que group=AulaVirtual_1, el fichero para crear una arranque personalizado para esté aula debería ser /opt/opengnsys/client/etc/init/AulaVirtual_1.sh

A continuación mostramos un ejemplo de un menú de inicio que en caso de existir una sistema operativo en la segunda partición inicia la sesión en él y en caso contrarío hace el arranque por defecto, es decir muestra el menú inicio:

#!/bin/bash
if [[ "$(date +"%w")" =~ [06] ]]; then
  if [ -n "$(ogGetOsVersion 1 2)" ]; then
    bootOs 1 2
  fi
fi
$OGETC/init/default.sh

En estos script se podrá llamar a cualquier script o función definida por OpenGnsys para el cliente y del propio sistema operativo Ubuntu.

Nota: Hay que tener en cuenta que OpenGnsys tiene algunos script de servidor que no están disponibles en el arranque personalizado porque no son visibles para el cliente.

Limitación del script de arranque personalizado

El cliente no tiene manera de notificar al servidor que ha finalizado una tarea:

  • Cuando se manda un comando desde la consola el servidor se queda esperando la respuesta del cliente, pero en este caso la acción la inicia el cliente y el servidor no espera mensaje alguno.
  • No tiene acceso a la base de datos del servidor ya que generaría un problema de seguridad.

Sí podría guardar una marca en el directorio de log, estás marcas se podrían revisar con un script de servidor.

Script y funciones de OpenGnsys disponibles en el cliente

Información sobre la sintaxis y los parámetros de los script y funciones

Las funciones muestran la ayuda si damos como parámetro "help". Por ejemplo:

$ ogCopyFile help
Función ogCopyFile: Copia un fichero a otro almacenamiento.
    Formato: ogCopyFile [ str_repo | int_ndisk int_npartition ] path_source [ str_repo | int_ndisk int_npartition ] path_target
    Ejemplo: ogCopyFile REPO newfile.txt 1 2 /tmp/newfile.txt

En la ayuda de la consola si damos a archivos nos muestra las librerías y si pulsamos sobre ellas mostrará la descripción de las funciones que contienen.

Los script contienen la información al principio de los mismos:

#@file    deployImage
#@brief   Proceso completo de despliegue de imagen, incluyendo actualización de la caché, restt
auración y post-configuración (este script es llamado por la interfaz RestaurarImagen).
#@param   $1 Repositorio (CACHE, REPO o dirección IP)
#@param   $2 Nombre canónico de la imagen (sin extensión)
#@param   $3 Número de disco
#@param   $4 Número de particion
#@param   $5 Protocolo (UNICAST, por defecto, MULTICAST o TORRENT)
#@param   $6 Opciones del protocolo

Situación de script y funciones

Mirando desde el cliente:

  • Los script se encuentran en el directorio /opt/opengnsys/script
  • Las librerías de funciones es encuentran en /opt/opengnsys/lib/engine/bin

Mirando desde el servidor:

  • Los script se encuentran en el directorio /opt/opengnsys/client/script
  • Las librerías de funciones es encuentran en /opt/opengnsys/client/lib/engine/bin