Index: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/changelog
===================================================================
--- tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/changelog	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/changelog	(revision 499)
@@ -0,0 +1,7 @@
+12/04/13 v0.8   Actulizado para empezar a usar nmap en vez de avahi 
+		Actulizado para squeeze
+
+22/09/11 v0.7.1 Añadido compruebaprofe
+16/02/11 v0.7   Corregidos permisos en la carpeta files
+10/02/11 v0·6   Corregido bug(No se creaba la carpeta .ssh dentro del root de la imagen ltsp)
+10/02/11 v0.5   Release incial
Index: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/manifests/init.pp
===================================================================
--- tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/manifests/init.pp	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/manifests/init.pp	(revision 499)
@@ -0,0 +1,92 @@
+class ltsp_utilaula {
+
+
+  package { "nmap":
+	ensure => installed,
+	  }
+
+  user { "portatil":
+	uid => '900',
+	ensure => present,
+	home => '/var/lib/portatil',
+	managehome => true,
+	shell => '/bin/bash',
+	}
+
+
+  file { 
+        "/var/lib/portatil/.ssh": ensure => directory, owner => portatil,  group => portatil, mode => 700,
+        require => User["portatil"] ;
+
+	"id-rsa":
+        path => "/var/lib/portatil/.ssh/id_rsa",
+        owner => portatil, group => portatil, mode => 600,
+        require => File["/var/lib/portatil/.ssh"],
+        source => "puppet://puppetinstituto/files/portatil-prof/id_rsa";
+
+	"id_rsa.pub":
+	path => "/var/lib/portatil/.ssh/id_rsa.pub",
+	owner => portatil, group => portatil, mode => 644,
+	require => File["/var/lib/portatil/.ssh"],
+	source => "puppet://puppetinstituto/files/portatil-prof/id_rsa.pub";
+	
+	"/sbin/conectahost":
+        owner => root, group => root, mode => 750,
+        source => "puppet:///modules/ltsp_utilaula/conectahost";
+
+        "/sbin/listahosts":
+        owner => root, group => root, mode => 750,
+        source => "puppet:///modules/ltsp_utilaula/listahosts";
+
+	
+	"/sbin/ejecutaenhosts":
+	owner => root, group => root, mode => 750,
+        source => "puppet:///modules/ltsp_utilaula/ejecutaenhosts";
+
+        "/sbin/arreglosportatil":
+        owner => root, group => root, mode => 750,
+        source => "puppet:///modules/ltsp_utilaula/arreglosportatil";
+        
+        "/sbin/apagado":
+        owner => root, group => root, mode => 750,
+        source => "puppet:///modules/ltsp_utilaula/apagado";
+
+        "/sbin/reinicio":
+        owner => root, group => root, mode => 750,
+        source => "puppet:///modules/ltsp_utilaula/reinicio";
+ 
+        "/sbin/compruebaprofe":
+        owner => root, group => root, mode => 750,
+        source => "puppet:///modules/ltsp_utilaula/compruebaprofe";
+
+	"/opt/ltsp/i386/root/.ssh":
+        owner => root, group => root, mode => 755,
+	ensure => directory,
+	before => File["/opt/ltsp/i386/root/.ssh/authorized_keys2"];
+
+  	"/opt/ltsp/i386/root/.ssh/authorized_keys2":
+        owner => root, group => root, mode => 600,
+        source => "/var/lib/portatil/.ssh/id_rsa.pub",
+        notify => Exec[crear-imagen-ltsp_utilaula];
+
+#Limitamos el acceso a nmap
+	"/usr/bin/nmap":
+	owner => root, group => root, mode => 750;
+
+
+#Solo si se quieren apagar los terminales/portatiles si no hay profesor
+        "/etc/cron.d/croncompruebaprofe":
+        owner => root, group => root, mode => 644,
+        source => "puppet:///modules/ltsp_utilaula/croncompruebaprofe";
+
+
+        }
+
+
+  exec { "crear-imagen-ltsp_utilaula":
+        command => "/usr/sbin/ltsp-update-image --arch i386",
+        refreshonly => true;
+       }
+
+}
+
Index: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/reinicio
===================================================================
--- tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/reinicio	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/reinicio	(revision 499)
@@ -0,0 +1,12 @@
+#!/bin/bash
+#Reinicia el servidor de aula si no hay nadie logeado. Tambien apaga
+#los ordenadores de los host conectados(Evita que se queden fritos
+#algunos tipos de clientes ligeros como los Dominion)
+#No tiene en cuenta si hay logeados alumnos 
+
+
+if  ! who | grep -q "(:0)"; then
+   ejecutaenhosts poweroff
+   /sbin/shutdown -r now
+fi
+

Property changes on: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/reinicio
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/ejecutaenhosts
===================================================================
--- tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/ejecutaenhosts	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/ejecutaenhosts	(revision 499)
@@ -0,0 +1,82 @@
+#!/bin/bash
+#Permite ejecutar el comando que se le pase como parámetro en todos los hosts, ya 
+#sean portatiles o clientes ligeros que esten conectados en esa clase en ese instante.  
+#Con el parametro -p se ejecuta  en paralelo en todos los equipos, la salida puede
+#redirigirse a un fichero.
+#Sin el parametro -p el comando se va ejecutando maquina a maquina
+#
+#Ricardo Salgado Cid
+#IESO Galisteo
+#
+#26/01/11 Release incial ()
+#09/02/11 Opciones mas restrictivas en los ssh para evitar esperas infinitas
+#12/04/13 Actualizado para que use nmap en vez de avahi
+
+if [ $# -lt 1 ]; then
+   echo "Permite ejecutar el comando que se le pase como parametro en todos los hosts"
+   echo "sean portatiles o clientes ligeros que esten conectados en esa clase en ese instante."
+   echo "Con el parametro -p se ejecuta  en paralelo en todos los equipos"
+   echo "Uso: $0 [-p] comando"
+   exit
+fi
+
+
+
+if [ "$1" \= "-p" ] ; then 
+   enparalelo="yes"
+   shift
+fi
+listahosts=$(nmap -oG - --system-dns  -sP 192.168.0.200-253 | grep -v '^#' | tr -d '()' | sed 's/.local//' | awk '{print $3 ";" $2}' | sort)
+if [ -z "$listahosts" ]; then
+  echo "No se ha encontrado ninguna maquina conectada"
+  exit 0
+else
+  echo "El comando se ejecutará sobre $(echo $listahosts |  tr " " "\n" | wc -l ) maquina/s"
+fi
+
+for hostip in $listahosts 
+do
+  if [ -z $enparalelo ]; then
+    salida=/dev/stdout
+  else
+    salida=/dev/null
+  fi
+  host=$(echo $hostip | cut -d";" -f1)
+  ip=$(echo $hostip | cut -d";" -f2)
+  echo "Salida del comando en el host $host($ip):" > $salida
+  echo __________________________________________________________________________ > $salida
+  if [ -z $enparalelo ]; then
+     ssh -o StrictHostKeyChecking=no -o ConnectTimeout=9 -o ServerAliveCountMax=2 -o ServerAliveInterval=15 -i /var/lib/portatil/.ssh/id_rsa  root@$ip $* 
+  else
+     ssh -o StrictHostKeyChecking=no -o ConnectTimeout=9 -o ServerAliveCountMax=2 -o ServerAliveInterval=15 -i /var/lib/portatil/.ssh/id_rsa  root@$ip $* > /tmp/salida_host_$host.log 2>&1 &
+  fi
+  echo __________________________________________________________________________ > $salida
+  echo -e "\n\n" > $salida
+done
+
+if [ -z "$enparalelo" ]; then
+  exit 0
+else
+   echo -n "Esperando a que terminen los procesos "
+   for job in $(jobs -p)
+   do
+     echo -n "."
+     wait $job
+   done
+   echo -e "\n"
+   echo "Hecho!"
+   echo "Salidas del comando: \"$*\""
+   echo $(date)
+   for hostip in $listahosts
+   do
+     host=$(echo $hostip | cut -d";" -f1)
+     ip=$(echo $hostip | cut -d";" -f2)
+     echo "Salida del comando en el host $host($ip):"
+     echo __________________________________________________________________________
+     cat /tmp/salida_host_${host}.log
+     rm /tmp/salida_host_${host}.log
+     echo __________________________________________________________________________
+     echo -e "\n\n"
+   done
+
+fi

Property changes on: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/ejecutaenhosts
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/compruebaprofe
===================================================================
--- tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/compruebaprofe	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/compruebaprofe	(revision 499)
@@ -0,0 +1,11 @@
+#!/bin/bash
+#
+#Ricardo Salgado(IESO Galisteo)
+#
+#Comprueba si hay un profesor logeado en caso de no haberlo apgaga los
+#los ordenadores que esten encendidos.
+
+if ! who |  grep -q "(:0)" ; then
+    /sbin/ejecutaenhosts "poweroff" > /dev/null
+fi
+

Property changes on: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/compruebaprofe
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/conectahost
===================================================================
--- tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/conectahost	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/conectahost	(revision 499)
@@ -0,0 +1,28 @@
+#!/bin/bash
+#
+#Ricardo Salgado(IESO Galisteo)
+#
+#Conecta a un host (portatil o workstation) que esté conectado a la red del aula en ese momento
+#toma como parametro el nombre del host(o una parte de el)
+#
+#Ricardo Salgado Cid
+#IESO Galisteo
+#
+#26/01/11 Release incial ()
+#09/02/11 Opciones mas restrictivas en los ssh para evitar esperas infinitas
+#12/04/13 Actualizado para que use nmap en vez de avahi
+
+
+
+if [ $# -ne 1 ]; then
+   echo "Conecta a un host (portatil o workstation) que este conectado a la red del aula en ese momento"
+   echo "Uso: $0 nombre_equipo"
+   exit
+fi
+
+hostip=$(nmap -oG - --system-dns  -sP 192.168.0.200-253 | grep -v '^#' |  grep $1.* | tr -d '()' | sed 's/.local//' | awk '{print $3 ";" $2}' | sort | tail -1)
+host=$(echo $hostip | cut -d";" -f1)
+ip=$(echo $hostip | cut -d";" -f2)
+
+echo "Conectando a $host($ip)"
+ssh -o StrictHostKeyChecking=no -o ConnectTimeout=9 -o ServerAliveCountMax=2 -o ServerAliveInterval=15  -i /var/lib/portatil/.ssh/id_rsa root@$ip

Property changes on: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/conectahost
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/croncompruebaprofe
===================================================================
--- tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/croncompruebaprofe	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/croncompruebaprofe	(revision 499)
@@ -0,0 +1 @@
+#*/5 * * * * root    /sbin/compruebaprofe
Index: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/apagado
===================================================================
--- tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/apagado	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/apagado	(revision 499)
@@ -0,0 +1,11 @@
+#!/bin/bash
+#Apaga el servidor de aula si no hay nadie logeado. Tambien apaga
+#los ordenadores de los host conectados(Evita que se queden fritos
+#algunos tipos de clientes ligeros como los Dominion)
+#No tiene en cuenta si hay logeados alumnos 
+
+if  ! who | grep -q "(:0)"; then
+   ejecutaenhosts poweroff
+   /sbin/shutdown -h now
+fi
+

Property changes on: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/apagado
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/arreglosportatil
===================================================================
--- tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/arreglosportatil	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/arreglosportatil	(revision 499)
@@ -0,0 +1,24 @@
+#!/bin/bash
+#
+# Ricardo Salgado(IESO Galisteo)
+#
+# Ejecuta los comandos contenidos en la variable "comandos" en todos los portatiles conectados al aula.
+# Los comandos deben terminar con el caracter ";" a excepcion del ultimo
+# Pensado solo para los portatiles, cuidado con ejecutarlo sobre los clientes ligeros
+# Pasando como parametro -p al script los comandos se ejecutaran en paralelo en todos los host.
+# Sin parametros se ejecutaran host a host
+
+comandos="
+/etc/init.d/puppet stop;
+dpkg --configure -a --force-all;
+puppetd -tv;
+pkgsync;
+nss_updatedb ldap;
+apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold--reinstall install autofs5;
+/etc/init.d/puppet start
+"
+if [ "$1" \= "-p" ] ; then
+   /sbin/ejecutaenhosts -p $comandos
+else 
+   /sbin/ejecutaenhosts $comandos
+fi

Property changes on: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/arreglosportatil
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/listahosts
===================================================================
--- tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/listahosts	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/listahosts	(revision 499)
@@ -0,0 +1,27 @@
+#!/bin/bash
+#Lista los hosts, sean portatiles o clientes ligeros que esten conectados en esa clase 
+#en ese instante.  
+#
+#Ricardo Salgado Cid
+#IESO Galisteo
+#
+#09/02/11 Release incial ()
+#12/04/13 Actualizado para que use nmap en vez de avahi
+
+
+
+listahosts=$(nmap -oG - --system-dns  -sP 192.168.0.200-253 | grep -v '^#' | tr -d '()' | sed 's/.local//' | awk '{print $3 ";" $2}' | sort)
+if [ -z "$listahosts" ]; then
+  echo "No se ha encontrado ninguna maquina conectada"
+  exit 2
+else
+  echo "Hay $(echo $listahosts |  tr " " "\n" | wc -l ) maquina/s conectadas:"
+fi
+
+for hostip in $listahosts 
+do
+  host=$(echo $hostip | cut -d";" -f1)
+  ip=$(echo $hostip | cut -d";" -f2)
+  echo "--$host($ip)"
+done
+

Property changes on: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/files/listahosts
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/leeme.txt
===================================================================
--- tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/leeme.txt	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/ltsp_utilaula/leeme.txt	(revision 499)
@@ -0,0 +1,35 @@
+utilaula 0.8
+
+Tarea de puppet que añade comandos que hace posible conectarse desde el ordenador 
+del profesor facilmente a los ordenadores(portatiles o clientes ligeros) que estan 
+encendidos en un  determinado momento en un aula desde el ordenador del profesor. 
+Para instalar la tarea solo hay que descomprimir en /etc/puppet/modules del servidor
+nfs y añadirla a clase-especifica-squeeze. 
+Desde Abril de 2013 hace uso de nmap para localizar los equipos encendidos en vez 
+de avahi, por lo tanto será necesario añadir nmap al mayhave de los servidores de
+aula. El acceso al ejectuble de nmap queda restringido exclusivamente a root.
+
+
+
+Los comandos son los siguientes:
+
+*listahosts: devuelve una lista de las máquinas conectadas(hostname e ip).
+*conectahost: abre una sesión de ssh como root en la maquina que se le indique.
+   (No es necesario teclear el nombre entero,basta con los primeros caracteres)
+*ejecutaenhosts: ejecuta el comando que se le pase como parámetro en todos los hosts
+   (Con el parametro -p se ejecuta  en paralelo en todos los equipos)
+*arreglosportatil: ejecuta los comandos de configuracion basica de los portatiles.
+   (mirar dentro del script para mas detalles)
+*reincio: reincia el servidor de aula si no hay nadie logeado.
+*apagado: apaga el servidor de aula si no hay nadie logeadoo.
+*compruebaprofe: comprueba si hay profesor logeado, si no lo hay apaga los equipos que
+    esten conectados. Para hacer comprobaciones periodicas se incluye el archivo 
+    croncrompruebaprofe que se copia en /etc/cron.d/ . Por defecto esta comentado para
+    no interferir con las personalizaciones que tenga cada uno.
+
+
+Ricardo Salgado Cid
+IESO Galisteo
+Abril 2013
+
+
Index: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula.tgz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

Property changes on: tareas_puppet/servidores_aula/squeeze/ltsp_utilaula.tgz
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
