wiki:PaginaInicio

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

--

Páginas de Inicio

Nota: Es una primera versión, hay todavía muchas cosas que mejorar.

Al arrancar el cliente queremos que se muestre una página de inicio parecida a Rembo, es decir:

  • una página web con una serie de enlaces que nos permitan realizar distintas tareas, básicamente arrancar y restaurar distintos sistemas.
  • que permita incluir funciones personalizadas que llamen a los script de EAC.

Lo haremos utilizando en los clientes un navegador que llame al servidor web local, permitiendo que ejecute shell script a través de cgi y teniendo como usuario que arranca el servicio al root para que pueda ejecutar los script con todos los privilegios.

Nota: el navegador no puede llamar al servicio web del servidor EAC ya que los comandos se ejecutan en el equipo que corra el servicio web, es decir se ejecutarían en el servidor de EAC.

Configuración del servicio web del cliente

Iniciando el servicio como root

En el archivo /var/EAC/nfsroot/stable/etc/lighttpd/lighttpd.conf comentamos las líneas siguientes:

## change uid to <uid> (default: don't care)
#server.username            = "www-data"

## change uid to <uid> (default: don't care)
#server.groupname           = "www-data"

Activando el modulo cgi

Entramos en una shell del servidor EAC y montamos la imagen de arranque de los clientes con la función:

MountChrootEACclient

Ejecutamos el comando que activa el modulo cgi y nos salimos:

lighty-enable-mod cgi
UmountChrootEACclient

Configurando del modulo cgi (es provisional). El contenido del archivo /var/EAC/nfsroot/stable/etc/lighttpd/conf-available/10-cgi.conf sólo son dos líneas:

server.modules  += ( "mod_cgi" )
cgi.assign      = ( "exec" => "/bin/bash" ) 

Con esta configuración sólo podemos ejecutar el cgi llamado exec, situado en cualquier directorio. Hay que ver cual será la configuración definitiva, para poder incluir funciones en la página de incio también estás se deben ejecutar como cgi.

Si en las pruebas quisieramos ejecutar cualquier archivo como cgi cambiaríamos segunda la línea por:

cgi.assign      = ( "" => "/bin/bash" )

Todo se ejecutaría a través de bash, si fuera html normal se mostraría en blanco

Script cgi y páginas de inicio

Script exec

Sólo utilizamos un script cgi que tomará de la url el comando de EAC o hidra a ejecutar. Un ejemplo de url sería:

http://localhost/exec?MountPartition 1 1

El contenido del script /var/EAC/nfsroot/stable/var/www/exec es el siguiente (Es una primera versión a la que hay que hacerle mejoras)

#!/bin/sh

echo Content-type: text/html
echo

/bin/echo '<pre>'
source /var/EAC/hidra/scripts/hidraEnviron
DIR="/var/EAC/hidra/scripts"
ID=`/bin/echo "$QUERY_STRING"| /bin/sed s/"%20"/" "/g`
/bin/ls $DIR/$ID
if [ echo $? ]
then
        /usr/bin/sudo $DIR/$ID
else
        $ID
fi
/bin/echo '</pre>'

Páginas de inicio

Las páginas de inicio si no quisieramos incluir funciones en ellas podrían ser html puro. Por ejemplo:

<html>
<head>
<title>Pagina de inicio</title>
</head>
<body>

<p><a href='exec?hidraListPartitions 1'>Listar particiones</a></p>
<p><a href='exec?hidraBoot 1 1'>Arrancar XP</a></p>
<p><a href='exec?hidraBoot 1 2'>Arrancar Ubuntu</a></p>
<p><a href='exec?hidraPoweroff'>Apagar equipo</a></p>


</body>
</html>

Si queremos incluir funciones ha de ser un shell script que ejecutaremos como cgi. Falta

Abriendo el navegador en los clientes

Para que al arrancar los clientes se abra el navegador llamando al servicio web local al final del archivo /var/EAC/nfsroot/stable/etc/rc.local incluimos la línea:

links2 -g -mode 1280x960x64K !http://localhost

El navegador se ejecuta en modo texto llamando al dispositivo gráfico tipo framebuffer.

Nota: Si queremos abrir el navegador desde el usuario eac no podremos porque el home es de sólo lectura y no puede guardar los archivos temporales.

Falta: Si abrimos el navegador después de iniciar la sesión como root ocupa la pantalla completa, si lo abrimos desde el rc.local no. Hay que ver qué cambia en las variables de entorno para que se abra bien.

Falta: Si el alumno cierra el navegador el equipo debe apagarse.