miércoles, 12 de junio de 2013

Modificación de datos del servidor después de clonar

Buenos días,

 una entrada rápida. A más de uno nos habrán clonado un servidor virtual Red Hat desde Vmware, Xen u otra plataforma. Vamos a ver que modificaciones hemos de realizar para no duplicar servidores ni dejar rastros en la configuración.

Una vez clonado el servidor se recomienda arrancarlo con la tarjeta de red deshabilitada o en el modo "single user".

Cambio de password de root

# passwd

Cambio de hostname

Modificar la entrada de HOSTNAME.
# vi /etc/sysconfig/network
Modificar si existierá la entrada que hacé refencia a la IP y el hostname.
# vi /etc/hosts
Ejecutar el comando anterior para cambiar el hostname en caliente, sin reiniciar.
# hostname NEWHOSTNAME

Modificación del networking

Al realizar la clonación normalmente la MAC de la tarjeta de red cambia y también es posible que cambie el nombre del adaptador. La configuración de red (ip, mask, gateway) también se habrá de modificar. Se modificarán en los siguientes archivos:

# cd /etc/sysconfig/network-scripts/
# vi ifcfg-eth0
# vi ifcfg-eth1

Si cambia el rango de IP, hemos de modificar el GATEWAY en:
# vi /etc/sysconfig/network

Reiniciamos el servicio de networking:
# service network restart

Recrear las claves SSH

Para que no hayan problemas de identidad. La forma más rápida es borrarlas y reiniciar. Automáticamente se generarán unas nuevas claves unicas para el servidor. 
# cd /etc/.ssh
# rm -f *_key*
# reboot
 Las claves de usuario, por ejemplo root, también se tendrán que borrar y volver a generar si existieran.

Otras modificaciones

También se tendría que modificar si lo tuviese:
  • Otros certificados.
  • Configuración del cliente de backup.
  • Configuración de la monitorización.
  • Alta en la RHN.

Saludos!!




martes, 11 de junio de 2013

Notificaciones de Centreon en el escritorio Ubuntu

Hola,

hemos realizado un script en bash que chequea la URL del servidor de centreon y nos avisa si hubiera alguna alerta con nuestros servidores. Se aprovecha el servicio de notificaciones de Ubuntu para enviar estos mensajes al escritorio.  Para su reutilización se ha de modificar la URL target y el usuario/password ya que los del script son ficticios.

El script:
#!/bin/bash                                                                                                                                                            
# Guardar cookies                                                                                                                                                        
USERNAME=admin                                                                                                                                                      
CHECK_INTERVAL=120                                                                                                                                                      
EXCEPTIONS_FILE="/etc/notify-exceptions"                                                                                                                                
# Gets                                                                                                                                                                
check(){                                                                                                                                                              
        FILE=`mktemp`                                                                                                                                                  
        COOKIES_FILE=`mktemp`                                                                                                                                          
        EXCEPTIONS=`cat $EXCEPTIONS_FILE`                                                                                                                                
        wget --keep-session-cookies --save-cookies $COOKIES_FILE --post-data "useralias=$USERNAME&password=$PASSWORD&submit=Connect+%3E%3E" http://myserver.com/centreon/index.php -O /dev/null 2> /dev/null
        wget --load-cookies $COOKIES_FILE -p http://myserver.com/centreon/include/home/tacticalOverview/xml/ndo/tacticalOverviewXml.php -O $FILE 2> /dev/null
        cat $FILE | tr "<" "\n" |sort | uniq |grep -i "\[sucs" |cut -c9-15 > $FILE
        NUMBER_OF_HOSTS=`diff $FILE /etc/notify-exceptions | grep "^<" | cut -d " " -f2 | wc -l`
        rm $FILE $COOKIES_FILE
        echo $NUMBER_OF_HOSTS
}
# Bucle
while true
do
        RES=`check`
        if  [[ $RES  -ne 0 ]] ; then
                notify-send --urgency=low -i "terminal" "Alerta Unix" "Eventos en $RES servidores."
        fi
        sleep $CHECK_INTERVAL
done
rm $HOSTS_FILE
El resultado:



Saludos!!



viernes, 7 de junio de 2013

Raspberry Pi Doorbell

Hola,

 hace tiempo que teníaa pensado que en el timbre de mi casa sonará la "Marcha Imperial" de Star Wars. Siempre ha estado en mente, ahora con la ayuda de una Raspberry Pi, ojear unas cuantas web y los consejos de Matías se ha hecho realidad.



Aprovechando que ya tenía en casa el raspberry pi, lo he estado usando para recoger la temperatura del comedor y consultarlo desde Android, para más adelante controlar la caldera. Cuando el proyecto tenga cara y ojos ya haré otro post.

Lo que más me ha costado ha sido encontrar los cables que entraban del timbre de la puerta. Tuve que desmontar el timbre clásico a 220v.

Esquemas eléctricos del timbre a 220v

Una vez encontrados y pasados al comedor, se conecta al GPIO 17. El GPIO es el puerto de entradas y salidas digitales del Raspberry. 

GPIO Pin Schema

El programa es bastante sencillo y muy bien optimizado gracias a los consejos de Matias. Basicamente es un bucle infinito que esta comprobando el estado puerto GPIO 17 si este es "0" se activa. 

Usaremos las librerías de desarrollo de juegos para reproducir un mp3.  La librería "pygame" tiene un efecto de sonido "fadeout", así que tras 15 segundos de reproducción hace el "fadeout", queda bastante "cool". 

El script se deja ejecutando en segundo plano y se configura en el arranque.


#!/usr/bin/python
import RPi.GPIO as GPIO
from time import sleep
import pygame

GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.IN)

TIME = 15
HOME = "/home/pi/doorbell/"
TONE = "tone.mp3"

pygame.init()
while True:
    if not GPIO.input(17):
        pygame.mixer.music.load(HOME+TONE)
        pygame.mixer.music.play()
        sleep(TIME)
        pygame.mixer.music.fadeout(5000)
        pygame.mixer.stop()
    sleep(0.1)

Os dejo un video y una foto del invento:

Foto de la protoboard


Ni que decir tiene que se puede cambiar el fichero a reproducir por tu música preferida. Incluso se puede poner el sonido de un timbre clásico. :-)

Lo interesante ahora sería buscarle una caja para que quede todo dentro sin tantos cables. Pero eso para más adelante...

Saludos!!


Merge realizado con exito

Hola,

 este par de semana he dejado el blog un poco olvidado. Pero es que hemos realizado un merge de unos códigos (de ADN) y el resultado ha sido muy bueno ^__^

Durmiendo con Tux