| 1 | [[TOC(heading=Índice)]] |
| 2 | = Arranque personalizado para clientes de OpenGnsys = |
| 3 | |
| 4 | Por defecto los clientes se iniciarán con el arranque genérico, pero si queremos OpenGnsys permite personalizarlo. |
| 5 | |
| 6 | == Arranque genérico de un cliente OpenGnsys == |
| 7 | |
| 8 | El arranque genérico del cliente OpenGnsys realiza varios pasos: |
| 9 | |
| 10 | * iniciar cliente OpenGnSys, el demonio que permite que el servidor sepa el estado del cliente y pueda enviarle acciones a realizar |
| 11 | * realizar los comandos pendientes de la cola de acciones |
| 12 | * cargar el menú asignado |
| 13 | * en caso de error, si está en modo administración, mostrará una consola bash. |
| 14 | |
| 15 | 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. |
| 16 | |
| 17 | == Script de arranque personalizado == |
| 18 | OpenGnsys permite crear un script personalizado: |
| 19 | * para un cliente específico |
| 20 | * para todos los clientes de un aula |
| 21 | |
| 22 | En el último paso del arranque de los equipos el cliente ejecutará el primer script que encuentre de los siguientes: |
| 23 | * /opt/opengnsys/client/etc/init/$OG_IP.sh |
| 24 | * /opt/opengnsys/client/etc/init/$OGGROUP.sh |
| 25 | * /opt/opengnsys/client/etc/init/default.sh |
| 26 | |
| 27 | 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: |
| 28 | |
| 29 | {{{ |
| 30 | cat /proc/cmdline |
| 31 | 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 |
| 32 | }}} |
| 33 | |
| 34 | 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 |
| 35 | |
| 36 | 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: |
| 37 | |
| 38 | {{{ |
| 39 | #!/bin/bash |
| 40 | if [[ "$(date +"%w")" =~ [06] ]]; then |
| 41 | if [ -n "$(ogGetOsVersion 1 2)" ]; then |
| 42 | bootOs 1 2 |
| 43 | fi |
| 44 | fi |
| 45 | $OGETC/init/default.sh |
| 46 | }}} |
| 47 | |
| 48 | En estos script se podrá llamar a cualquier script o función definida por OpenGnsys y del propio sistema operativo Ubuntu. |
| 49 | |
| 50 | |
| 51 | == Limitación del script de arranque personalizado == |
| 52 | El cliente no tiene manera de notificar al servidor que ha finalizado una tarea: |
| 53 | * 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. |
| 54 | * No tiene acceso a la base de datos del servidor ya que generaría un problema de seguridad. |
| 55 | |
| 56 | Sí podría guardar una marca en el directorio de log, estás marcas se podrían revisar con un script de servidor. |