Proyecto

General

Perfil

« Anterior | Siguiente » 

Revisión 166

Modificada tarea apagado-terminales para apagar los terminales mediante ssh

Ver diferencias:

tareas_puppet/servidores_aula/apagado-terminales/manifests/init.pp
ensure => directory, owner => root, group => root, mode => 700,
}
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"]
tareas_puppet/servidores_aula/apagado-terminales/files/apagaterminales.sh
# 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
avahi-browse -trpk -d local _workstation._tcp 2>/dev/null | grep 192.168.0. | grep -v '_pro\|\-pro'| cut -d";" -f8 | sed 's/.local//' > /tmp/terminalesUp
# 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
# Añadimos las ips de las nuevas máquinas detectadas a /etc/dsh/machines.list.all para guardar una lista de todos los terminales
sort -o /etc/dsh/machines.list.all -u -m /tmp/terminalesUp /etc/dsh/machines.list
sort -o /etc/dsh/machines.list.all -m /tmp/terminalesUp /etc/dsh/machines.list
sort -o /etc/dsh/machines.list.all -u /etc/dsh/machines.list.all
# Creamos la lista de máquinas encendidas para no ejecutar el comando sobre máquinas apagadas
cat /tmp/terminalesUp > /etc/dsh/machines.list
......
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 -u -m /tmp/rsaterminalesUp /root/.ssh/known_hosts
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 y cargamos en /etc/dsh/machines.list la lista completa de terminales detectados en algún momento
dsh -a /sbin/poweroff -hp 2>null; cat /etc/dsh/machines.list.all > /etc/dsh/machines.list
# Apagamos los terminales
dsh -a /sbin/poweroff -fp & 2>null
# y cargamos en /etc/dsh/machines.list la lista completa de terminales detectados en algún momento
cat /etc/dsh/machines.list.all > /etc/dsh/machines.list
tareas_puppet/servidores_aula/apagado-terminales/files/halt-terminales
do_stop () {
# Apagamos los terminales
/usr/sbin/apagaterminales.sh
/usr/sbin/apagaterminales.sh &
}
case "$1" in
tareas_puppet/servidores_aula/apagado-terminales/leeme.txt
Destino: Servidores de aula.
Acción: * Copia el script apagaterminales.sh con permisos 750 a /usr/sbin
* Instala el paquete dsh, necesario 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 del servidor de terminales (/root/.ssh/id_rsa.pub)
* 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.
......
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.
* Está pensado para ejecutar el comando de apagado tan sólo sobre las máquinas que se detecten encendidas.
* 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.
......
* 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
---------------------------------------
......
Esteban M. Navas Martín
Administrador informático del IES Valle del Jerte.
03-Febrero-2011
Fecha creación: 03-Febrero-2011
Fecha última modificación: 11-Mayo-2011
Última modificación:
29-Abril-2011

Exportar a: Unified diff