Usted está aquí: Inicio Dokumentazio Irekia Manuales Apagar de forma remota servidores Linux y Windows
Acciones de Documento

Apagar de forma remota servidores Linux y Windows

Nota: Ésta es la vista de impresión del Manual de referencia completo en una sola página. Si lo prefiere puede encontrar la versión original aquí.

Te explicamos como apagar en remoto servidores Linux y Windows

1. Introducción

La razón de ser de este manual

Este manual viene a responder a un problema que tenemos. Cada vez tenemos más servicios, y en consecuencia cada vez necesitamos de más servidores.

Por desgracia, Iberdrola nos corta la luz cuatro o cinco veces al año. Da igual que haya tormenta o no. A veces en invierno, otras en verano, a veces cuando hace frío, otras cuando hace calor, otras cuando no hace ni frío ni calor. Da igual, cuando "les apetece".

En este tipo de situaciones a veces los cortes duran 10 minutos. Otras una hora, hora y media, ..., lo que haga falta. Cuando los cortes son largos, las UPS se descargan y nos vemos obligados a apagar los servidores.

Para esto existen herramientas "profesionales": Cuando la carga de la UPS baja de un umbral determinado, lanzan la orden de apagado, pero por ahora no tenemos implantado este tipo de control (lo tenemos en la lista de cosas para hacer). Por ahora, cuando se va la luz, tenemos que apagar los servidores a mano y a prisa, antes de que se agoten las UPS.

Para mejorar este proceso, hemos preparado una pequeña automatización. Objetivo: aunque lo hagamos manualmente, que el apagado de los servidores de la red sea lo más rápido posible.

Aqui explicamos como lo hacemos. Si te sirve de algo, nosotros contentos.    ;-)

2. Arquitectura de red

Datos que vamos a utilizar en este ejemplo

Vamos a imaginar que en nuestra red tenemos 6 servidores, de los cuales 5 son Linux y el sexto es Windows (a que esperas para migrarlo ;) )

Vamos a ponerles nombre:

  • LinuxZerb01: IP 192.168.5.1  (Servidor principal)
  • LinuxZerb02: IP 192.168.5.2
  • LinuxZerb03: IP 192.168.5.3
  • LinuxZerb04: IP 192.168.5.4
  • LinuxZerb05: IP 192.168.5.5
  • WindowsZerb01: IP 192.168.5.6
Para poder apagar el servidor Windows necesitaremos un usuario con permisos suficientes, y como no, su password. Vamos a imaginar que estos son los datos necesarios:
  • usuario: admin
  • password: miclave

3. Apagando los servidores Linux

Aqui veremos como apagar en remoto los servidores linux

Objetivo: Ejecutando un único script en el servidor principal, apagaremos el resto de servidores linux.

Manos a la obra.

Es importante que el scritp de apagado no nos pida password. Si lo hiciera nunca podríamos automatizarlo (si el día de mañana queremos que se ejecute de forma desatendida ante un aviso de la UPS)

Generamos las claves SSH en el servidor

El servidor principal utilizará SSH para apagar el resto de servidores, o mejor dicho, abrirá una conexión ssh para ejecutar en remoto un script de apagado.

Lo primero que vamos a hacer es crear una clave ssh en la carpeta /root/gakoak (si lo prefieres hazlo en /root/claves, pero en el manual haremos referencia a /root/gakoak). Al crear la clave nos pedirá que introduzcamos una passpharse (clave), pero pulsaremos ENTER (dos veces) sin introducir clave alguna.

[root@LinuxZerb01]# mkdir /root/gakoak
[root@LinuxZerb01]# cd /root/gakoak/
[root@LinuxZerb01 rsync]# ssh-keygen -t dsa -b 2048 -f /root/gakoak/LinuxZerb01-rsync-key
Generating public/private dsa key pair.
Enter passphrase (empty for no passphrase): <-- No metas nada, simplemente pulsa ENTER
Enter same passphrase again: <-- No metas nada, simplemente pulsa ENTER
Your identification has been saved in /root/gakoak/LinuxZerb01-rsync-key.
Your public key has been saved in /root/gakoak/LinuxZerb01-rsync-key.pub.
The key fingerprint is:
67:9a:c3:27:ea:36:19:46:bd:31:bd:9b:82:4c:83:52  root@LinuxZerb01.niredominioa.com

Con esto hemos creado dos claves: la privada (LinuxZerb01-rsync-key) y la pública (LinuxZerb01-rsync-key.pub).

La privada la guardaremos bien sin dársela a nadie, y la pública la iremos repartiendo por los servidores que queremos configurar. En este caso la copiaremos en el servidor LinuxZerb02 vía scp:

[root@LinuxZerb01]#  scp LinuxZerb01-rsync-key.pub root@192.168.5.2:/root/

Una  vez copiado, nos conectamos al servidor vía ssh con el usuario root, y ponemos la clave pública en el sitio que le corresponde.

Si no existe la carpeta /root/.ssh la creamos

LinuxZerb02:~# cd /root
LinuxZerb02:~#  mkdir .ssh
LinuxZerb02:~#  chmod 700 .ssh
LinuxZerb02:~#  mv LinuxZerb01-rsync-key.pub .ssh

Ahora introducimos la clave pública en el fichero authorized_keys. Si no existía, primero lo creamos.

LinuxZerb02:~#  cd ~/.ssh
LinuxZerb02:~#  touch authorized_keys
LinuxZerb02:~#  chmod 600 authorized_keys
LinuxZerb02:~#  cat LinuxZerb01-rsync-key.pub >> authorized_keys

Repasando: hemos introducido en el fichero authorized_keys la clave pública que previamente habíamos generado. Al hacer esto, y teniendo en cuenta que al general la clave no le hemos asignado password, podremos conectarnos a este servidor desde cualquier otro siempre que dispongamos de la clave privada. De ahí la importanica de proteger bien la clave privada.

Hagamos una prueba. Vamos al servidor principal Linux y lanzamos este comando:

LinuxZerb01:~#   ssh -i /root/gakoak/ LinuxZerb01-rsync-key 192.168.5.2

Si todo ha ido bien, nos habremos conectado al servidor LinuxZerb02 (192.168.5.2).

Si, pero con esto establecemos la conexión, no apagamos el servidor, verdad ? tranquilo, que ahora viene esa parte.

Estando conectados al LinuxZerb02, vamos a /root y creamos un scritp que se llama itzali.sh (si quieres puedes llamarlo apagado.sh, pero en el manual hacemos referencia a itzali.sh). Puedes utilizar el editor que más te guste, yo lo hago con nano.

LinuxZerb02:~# cd /root
LinuxZerb02:~# nano itzali.sh 

En el script escribe estas dos líneas:

#!/bin/bash
halt

Ahora guarda el fichero y vamos a asignar los permisos adecuados:

LinuxZerb02:~#  chmod 744 itzali.sh 

LinuxZerb02:~#  chmod 744 itzali.sh 

Ya está, con esto ya tenemos preparado el script que va a apagar el servidor.

Volvamos al servidor principal (LinuxZerb01).

Antes hemos visto que utilizando las claves pública y privada podemos conectarnos directamente al otro servidor. Utilizando la misma técnica esta vez apagaremos el servidor LinuxZerb02 desde el servidor principal. Cuidado, ten en cuenta que vamos a apagar el servidor !!

LinuxZerb01:~#   ssh -i /root/gakoak/ LinuxZerb01-rsync-key 192.168.5.2   /root/itzali.sh

Si te fijas verás que es el mismo comando que hemos utilizado antes con la diferencia de que al final le damos el pequeño script de dos líneas que hemos preparado para apagar el servidor. Realmente estamos utlizando la conexión ssh para ejecutar un script remoto.

Ahora tendremos que repetir los pasos para el resto de servidores Linux (LinuxZerb03, LinuxZerb04, LinuxZerb05), y una vez hecho esto preparamos en el servidor principal el script para apagarlos todos, que se llamará SarekoZerbitzariakItzali.sh (puedes llamarlo ApagarServidoresRed.sh, aunque en el manual haremos referencia a SarekoZerbitzariakItzali.sh).

root@LinuxZerb01:~# cd /root
root@LinuxZerb01:~# nano SarekoZerbitzariakItzaki.sh 

Copiamos estas líneas en el script:


ssh -i /root/gakoak/ LinuxZerb01-rsync-key  192.168.5.2 /root/itzali.sh
ssh -i /root/gakoak/ LinuxZerb01-rsync-key  192.168.5.3 /root/itzali.sh
ssh -i /root/gakoak/ LinuxZerb01-rsync-key  192.168.5.4 /root/itzali.sh
ssh -i /root/gakoak/ LinuxZerb01-rsync-key  192.168.5.5 /root/itzali.sh

Ahora asignamos los permisos adecuados al scritp:

root@LinuxZerb01:~# chmod 744 SarekoZerbitzariakItzaki.sh 

Ya está, ya tenemos preparado el script para apagar todos los servidores linux






4. Apagando los servidores windows

Ahora apagaremos el servidor windows desde linux

Lo que nos falta por acabar es apagar nuestro servidor Windows desde Linux. Para hacerlo utilizaremos samba. Si no lo tienes instalado:

LinuxZerb01:~#  apt-get install samba

Recordemos los datos que teníamos del servidor Windows:

Dirección IP: 192.168.5.6

Usuario con permisos: admin

Password del usuario: miclave

Con estos datos, formamos el siguiente comando:

net rpc SHUTDOWN -C "Estamos apagando el servidor" -f -I 192.168.5.6 -U admin%miclave

Cuidado, al hacer esto vamos a apagar el servidor Windows !!!

Ahora solo nos falta volver al servidor principal y añadir esta línea al script principal.

root@LinuxZerb01:~# cd /root
root@LinuxZerb01:~# nano SarekoZerbitzariakItzaki.sh 
Añadimos la línea:

net rpc SHUTDOWN -C "Zerbitzaria itzaltzen ari gara" -f -I 192.168.5.6 -U admin%nirepasahitza
ssh -i /root/gakoak/ LinuxZerb01-rsync-key  192.168.5.2 /root/itzali.sh
ssh -i /root/gakoak/ LinuxZerb01-rsync-key  192.168.5.3 /root/itzali.sh
ssh -i /root/gakoak/ LinuxZerb01-rsync-key  192.168.5.4 /root/itzali.sh
ssh -i /root/gakoak/ LinuxZerb01-rsync-key  192.168.5.5 /root/itzali.sh
Todo listo. Ahora si desde el servidor principal ejecutamos el scritp /root/SarekoZerbitzariakItzaki.sh , apagaremos el resto de servidores de la red.

5. Créditos y licencia

Autor y licencia de este documento

Autor: Pedro Arreitunandia
Fecha: 2009-ko urtarrilaren 20a
Licencia: Creative Commons by-sa/2.0

Para contactar conmigo: parreitu [abildua] gmail.com

Te puedes imaginar lo que significa [abildua] en euskera.  ;)


6. Encuesta final sobre el curso

Una encuesta para recoger tus impresiones sobre el curso. Nos ayudará a mejorar. Muchas gracias por rellenarla

6.1. Tus comentarios al manual / Curso

Agradeceríamos te tomaras un par de minutos para rellenar esta mini-encuesta que nos ayudará a mejorar.

Recomienda al IMH
Zerikasi
Zerikasi: Aprendizaje a lo largo de la vida
Gobierno Vasco - Departamento de Educación, Universidades e Investigación. Ir a su web
Ciclos Formativos - Heziketa Zikloak
Ciclos Formativos - Heziketa Zikloak
Contacto

IMH en las Redes Sociales
Siguenos en Twitter Siguenos en Facebook Siguenos en Tuenti Siguenos en Linkedin Siguenos en nuestro canal de Youtube Siguenos en Flickr Siguenos en SlideShare
Ingenieria en Alternancia en las Redes Sociales
Siguenos en Twitter Siguenos en Facebook Siguenos en nuestro canal de Youtube Siguenos en Tuenti Follow us on Flickr Follow us on Picasa