Por defecto los clientes se iniciarán con el arranque genérico, pero si queremos OpenGnsys permite personalizarlo.
El arranque genérico del cliente OpenGnsys realiza varios pasos:
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.
OpenGnsys permite crear un script personalizado:
En el último paso del arranque de los equipos el cliente ejecutará el primer script que encuentre de los siguientes:
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 groupAulaVirtual_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.
El cliente no tiene manera de notificar al servidor que ha finalizado una tarea:
Sí podría guardar una marca en el directorio de log, estás marcas se podrían revisar con un script de servidor.
__Información sobre la sintaxis y los parámetros de los script y
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:
Mirando desde el servidor: