Index: tareas_puppet/servidores_aula/squeeze/apagado-terminales/files/apagaterminales.sh
===================================================================
--- tareas_puppet/servidores_aula/squeeze/apagado-terminales/files/apagaterminales.sh	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/apagado-terminales/files/apagaterminales.sh	(revision 454)
@@ -0,0 +1,27 @@
+#!/bin/bash
+# Esteban M. Navas
+# IES Valle del Jerte - Plasencia
+# 03/02/2011
+
+# apagaterminales.sh -> Apaga los terminales de un aula
+# El script hace uso de avahi-browse y ssh-keyscan para cumplir con su función.
+# Está pensado para ejecutar el comando de apagado tan sólo sobre las máquinas que se detecten encendidas
+# pero al mismo tiempo, va construyendo una lista con las ips de las máquinas que se van detectando.
+# Hace uso de ssh-keyscan para obtener las claves rsa de los terminales encendidos y añadirlas al fichero 
+# /root/.ssh/known_hosts del servidor de terminales.
+
+# Detectamos los terminales encendidos, tal y como está definido en ldap
+avahi-browse -trpk -d local _workstation._tcp 2>/dev/null | grep 192.168.0. | grep -v '_pro\|\-pro'| cut -d";" -f8 > /tmp/terminalesUp
+
+# Obtenemos las claves rsa de los terminales encendidos
+ssh-keyscan -t rsa -f /tmp/terminalesUp > /tmp/rsaterminalesUp
+
+# Añadimos las claves rsa de los terminales encendidos al fichero known_host de root del servidor de terminales
+sort -o /root/.ssh/known_hosts -m /tmp/rsaterminalesUp /root/.ssh/known_hosts
+sort -o /root/.ssh/known_hosts -u /root/.ssh/known_hosts
+
+# Apagamos los terminales 
+while read IP
+do
+   ssh root@$IP -a /sbin/poweroff -fp &
+done < /tmp/terminalesUp

Property changes on: tareas_puppet/servidores_aula/squeeze/apagado-terminales/files/apagaterminales.sh
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tareas_puppet/servidores_aula/squeeze/apagado-terminales/files/halt-terminales
===================================================================
--- tareas_puppet/servidores_aula/squeeze/apagado-terminales/files/halt-terminales	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/apagado-terminales/files/halt-terminales	(revision 454)
@@ -0,0 +1,36 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides:          halt-terminales
+# Required-Start:
+# Required-Stop:
+# Default-Start:
+# Default-Stop:      0 6
+# Short-Description: Execute the reboot command.
+# Description:
+### END INIT INFO
+
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+. /lib/lsb/init-functions
+
+do_stop () {
+	# Apagamos los terminales
+	/usr/sbin/apagaterminales.sh &
+}
+
+case "$1" in
+  start)
+	# No-op
+	;;
+  restart|reload|force-reload)
+	echo "Error: argument '$1' not supported" >&2
+	exit 3
+	;;
+  stop)
+	do_stop
+	;;
+  *)
+	echo "Usage: $0 start|stop" >&2
+	exit 3
+	;;
+esac

Property changes on: tareas_puppet/servidores_aula/squeeze/apagado-terminales/files/halt-terminales
___________________________________________________________________
Added: svn:executable
## -0,0 +1 ##
+*
\ No newline at end of property
Index: tareas_puppet/servidores_aula/squeeze/apagado-terminales/leeme.txt
===================================================================
--- tareas_puppet/servidores_aula/squeeze/apagado-terminales/leeme.txt	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/apagado-terminales/leeme.txt	(revision 454)
@@ -0,0 +1,48 @@
+BREVE DESCRIPCION DE LA EJECUCION DEL MODULO
+--------------------------------------------
+
+Destino: Servidores de aula.
+
+Acción:   * Copia el script apagaterminales.sh con permisos 750 a /usr/sbin
+   	  * Instala el paquete dsh, necesarios para que el script funcione.
+   	  * Crea las claves pública y privada de root en cada servidor de terminales, 
+        si no han sido creadas aún, dejando vacía la "passphrase".
+	  * Añade la clave pública de root en el servidor de terminales (/root/.ssh/id_rsa.pub)
+	    al fichero authorized_keys de la imagen de los terminales y regenera la imagen.
+	  * Añade la llamada al script apagaterminales.sh al fichero /etc/gdm/PostSession/Default
+	    para que los terminales de alumno se apagen cuando el profesor cierre la sesión.
+	  * Añade un script de inicio llamado "halt-terminales" a /etc/init.d y crea dos enlaces en:
+            /etc/rc0.d/K01aapaga-terminales y /etc/rc6.d/K01aapaga-terminales para apagar los terminales
+            cuando se apague o reinicie el servidor.
+
+Función:  * apagaterminales.sh -> Apaga los terminales de un aula
+	  * El script hace uso de dsh y ssh-keyscan para cumplir con su función.
+	  * Está pensado para ejecutar el comando de apagado tan sólo sobre las máquinas que se detecten encendidas
+	  * pero al mismo tiempo, va construyendo una lista con las ips de los terminales que se van detectando en cada uso.
+	  * Hace uso de ssh-keyscan para obtener las claves rsa de los terminales encendidos y añadirlas al fichero 
+	    /root/.ssh/known_hosts del servidor de terminales. 
+
+Notas:    El script apagaterminales.sh se ejecuta:
+          * Cuando el profesor cierra la sesión.
+          * Cuando se reinicia el servidor de terminales.
+          * Cuando se apaga el servidor de terminales.
+
+IMPORTANTE: Incluir el paquete dsh en el fichero mayhave del ltspserver:
+            /etc/puppet/files/mayhave.ltspserver
+            
+
+INSTRUCCIONES DE INSTALACION DEL MODULO
+---------------------------------------
+
+1) Desempaquetar en /etc/puppet/modules
+
+2) Incluir la linea include "nombre_modulo" en /etc/puppet/manifests/classes/clase-especifica.pp
+
+------------------------------------------------
+
+
+Creado por:
+
+Esteban M. Navas Martín
+Administrador informático del IES Valle del Jerte.
+03-Febrero-2011
Index: tareas_puppet/servidores_aula/squeeze/apagado-terminales/manifests/init.pp
===================================================================
--- tareas_puppet/servidores_aula/squeeze/apagado-terminales/manifests/init.pp	(nonexistent)
+++ tareas_puppet/servidores_aula/squeeze/apagado-terminales/manifests/init.pp	(revision 454)
@@ -0,0 +1,59 @@
+class apagado-terminales {
+
+   file { 
+      "/usr/sbin/apagaterminales.sh" :
+      source => "puppet://puppetinstituto/apagado-terminales/apagaterminales.sh",
+      owner => root, group => root, mode => 750
+   }
+
+   file {
+      "/opt/ltsp/i386/root/.ssh" :
+      ensure => directory, owner => root,  group => root, mode => 700,
+   }
+
+   file { "/root/.ssh/id_rsa.pub":
+           ensure => file, owner => "root", group => "root", mode => "644",
+   }
+
+   file {
+      "/root/.ssh/known_hosts" :
+      ensure => file, owner => root,  group => root, mode => 644,
+   }
+
+   exec { "/usr/bin/ssh-keygen -q -t rsa -N '' -f /root/.ssh/id_rsa":
+        unless => "/usr/bin/test -f /root/.ssh/id_rsa",
+        notify => Exec["copy-publickey"]
+   }
+
+   exec { "copy-publickey":
+        command => "/bin/cat /root/.ssh/id_rsa.pub >> /opt/ltsp/i386/root/.ssh/authorized_keys",
+	require => [File["/root/.ssh/id_rsa.pub"], File["/opt/ltsp/i386/root/.ssh"]],
+        unless => '/bin/grep "$fqdn" /opt/ltsp/i386/root/.ssh/authorized_keys 2>/dev/null',
+        notify => Exec["update-image"]
+   }
+
+   exec { "update-image":
+        command => "/usr/sbin/ltsp-update-image --arch i386",
+        path => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
+        refreshonly => true
+       }
+
+   exec { '/bin/sed -i -e "s/exit 0/\/usr\/sbin\/apagaterminales.sh \&\n\nexit 0/g" /etc/gdm3/PostSession/Default':
+        unless => '/bin/grep "apagaterminales" /etc/gdm3/PostSession/Default 2>/dev/null'
+   }
+
+   file {
+      "/etc/init.d/halt-terminales" :
+      source => "puppet://puppetinstituto/apagado-terminales/halt-terminales",
+      owner => root, group => root, mode => 750
+   }
+
+   exec { "/bin/ln -sf /etc/init.d/halt-terminales /etc/rc0.d/K01aapaga-terminales":
+      unless => "/usr/bin/test -L /etc/rc0.d/K01aapaga-terminales"
+   }
+
+   exec { "/bin/ln -sf /etc/init.d/halt-terminales /etc/rc6.d/K01aapaga-terminales":
+      unless => "/usr/bin/test -L /etc/rc6.d/K01aapaga-terminales"
+   }
+
+}
Index: tareas_puppet/servidores_aula/squeeze/apagado-terminales.tar.gz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream

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