Changes between Initial Version and Version 1 of PaginaInicio


Ignore:
Timestamp:
May 19, 2009, 11:04:42 AM (15 years ago)
Author:
irina
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • PaginaInicio

    v1 v1  
     1= Páginas de Inicio =
     2
     3Nota: Es una primera versión, hay todavía muchas cosas que mejorar.
     4
     5Al arrancar el cliente queremos que se muestre una página de inicio parecida a Rembo, es decir:
     6
     7 * una página web con una serie de enlaces que nos permitan realizar distintas tareas, básicamente arrancar y restaurar distintos sistemas.
     8 * que permita incluir funciones personalizadas que llamen a los script de EAC.
     9
     10Lo 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.
     11
     12Nota: 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.
     13
     14== Configuración del servicio web del cliente ==
     15
     16=== Iniciando el servicio como root ===
     17
     18En el archivo /var/EAC/nfsroot/stable/etc/lighttpd/lighttpd.conf comentamos las líneas siguientes:
     19
     20{{{
     21## change uid to <uid> (default: don't care)
     22#server.username            = "www-data"
     23
     24## change uid to <uid> (default: don't care)
     25#server.groupname           = "www-data"
     26}}}
     27
     28=== Activando el modulo cgi ===
     29
     30Entramos en una shell del servidor EAC y montamos la imagen de arranque de los clientes con la función:
     31
     32
     33{{{
     34MountChrootEACclient
     35}}}
     36
     37Ejecutamos el comando que activa el modulo cgi y nos salimos:
     38
     39{{{
     40lighty-enable-mod cgi
     41UmountChrootEACclient
     42}}}
     43
     44Configurando 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:
     45
     46{{{
     47server.modules  += ( "mod_cgi" )
     48cgi.assign      = ( "exec" => "/bin/bash" )
     49}}}
     50
     51Con 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.
     52
     53Si en las pruebas quisieramos ejecutar cualquier archivo como cgi cambiaríamos segunda la línea por:
     54
     55{{{
     56cgi.assign      = ( "" => "/bin/bash" )
     57}}}
     58
     59Todo se ejecutaría a través de bash, si fuera html normal se  mostraría en blanco
     60
     61== Script cgi y páginas de inicio ==
     62
     63=== Script exec ===
     64
     65Sólo utilizamos un script cgi que tomará de la url el comando de EAC o hidra a ejecutar. Un ejemplo de url sería:
     66
     67{{{
     68http://localhost/exec?MountPartition 1 1
     69}}}
     70
     71El 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)
     72
     73{{{
     74#!/bin/sh
     75
     76echo Content-type: text/html
     77echo
     78
     79/bin/echo '<pre>'
     80source /var/EAC/hidra/scripts/hidraEnviron
     81DIR="/var/EAC/hidra/scripts"
     82ID=`/bin/echo "$QUERY_STRING"| /bin/sed s/"%20"/" "/g`
     83/bin/ls $DIR/$ID
     84if [ echo $? ]
     85then
     86        /usr/bin/sudo $DIR/$ID
     87else
     88        $ID
     89fi
     90/bin/echo '</pre>'
     91}}}
     92
     93=== Páginas de inicio ===
     94
     95Las páginas de inicio si no quisieramos incluir funciones en ellas podrían ser html puro. Por ejemplo:
     96
     97{{{
     98<html>
     99<head>
     100<title>Pagina de inicio</title>
     101</head>
     102<body>
     103
     104<p><a href='exec?hidraListPartitions 1'>Listar particiones</a></p>
     105<p><a href='exec?hidraBoot 1 1'>Arrancar XP</a></p>
     106<p><a href='exec?hidraBoot 1 2'>Arrancar Ubuntu</a></p>
     107<p><a href='exec?hidraPoweroff'>Apagar equipo</a></p>
     108
     109
     110</body>
     111</html>
     112}}}
     113
     114Si queremos incluir funciones ha de ser un shell script que ejecutaremos como cgi. '''Falta'''
     115
     116== Abriendo el navegador en los clientes ==
     117
     118Para 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:
     119
     120{{{
     121links2 -g -mode 1280x960x64K !http://localhost
     122}}}
     123
     124El navegador se ejecuta en modo texto llamando al dispositivo gráfico tipo framebuffer.
     125
     126Nota: 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.
     127
     128'''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.
     129
     130'''Falta:''' Si el alumno cierra el navegador el equipo debe apagarse.