Recuperando grub

Esto está explicado en muchos sitios, pero bueno, no viene de más reptirlo. Si por alguna razón hemos perdido grub de nuestro arranque (MBR) podemos recuperarlo desde un livecd (de Ubuntu por ejemplo) con los siguientes comandos (suponiendo que nuestra raiz, /, está en sda1):

sudo mkdir /target

sudo mount /dev/sda1 /target/

Si sda1 es donde tenemos nuestra instalación de GNU/Linux

sudo grub-install --root-directory=/target '(hd0)'

Si tenemos /boot en otra partición lo que deberemos hacer es montar la particíon de /boot de la manera anterior.

Si en vez de instalar grub en el MBR , preferimos hacerlo en una partición tan solo hay que cambiar el último parámetro hd0 por hd0,2 por ejemplo

Como instalar windows XP sobre Xen 3.0 en Ubuntu

Últimamente estoy bastante «enganchado» al mundo de la virtualización. Lo último que he leido es que gracias a las nuevas capacidades de virtualización de los microprocesadores (en este caso se habla de los AMD) han logrado arrancar un Windows XP usando Xen. Hay un árticulo que explica como hacerlo sobre una Ubuntu Dapper. A ver si saco tiempo y escribo un post un poco profundo sobre la virtualización a día de hoy.

Nuevo vecino en ciudad virtual

Perdon si el titulo es un poco confuso 🙂 Pero es que tenemos un nuevo vecino en el mundo de la virtualización: OpenVZ. que hace ya un tiempo se anunció su liberación . De esta manera SWsoft sacaba una versión libre de su software para virtualización de servidores Virtuozzo.

Si sois fan de la distro de la espiral 2 cosas: Hay disponibles unas templates para poder correr una Debian Sarge y también hay un jautu en howtoforge sobre Como construir un servidor privado virtual con OpenVZ sobre Debian Sarge.
La cosa esta movidita en el mundo de la virtualización. Si XEN empieza a tener un nicho en el mundo del hosting (por ejemplo meneneame corre, o corría, sobre un xen, como ha comentado galli en alguna ocasión) y swsoft libera openvz vmware tiene que mover ficha. Y así a sido. Vmware a sacado una versión de VMware Server «pa gratis» (que dirían los Pixies).

Balanceo de carga

Por motivos de curro necesitaba balancear las conexiones a un arbol LDAP (que el solo se merece un post otro día). Buscando info sobre balanceo con DNS (que era lo primero que ha venido a la cabeza), me encuentro en bulma un post sobre pen. Muy espartana la web (old unix style : ) pero en el howto enseguida veo el ejemplo que justo necesito. Así que me animo a probarlo y el resultado a sido satisfactorio por el momento.
Entrando un poco en detalle, pen es un sencillo balanceador para conexiones de tipo TCP. Básicamente se encarga de redirigir un puerto local a varios puertos en distintas máquinas que nostros le indiquemos. Como diferencias significativas a la solución de DNS tenemos que:

  • No usa el típico algoritmo de round robin, sinó que siempre manda al mismo cliente al mismo servidor (útil por ejemplo para webapps que mantienen sesiones).
  • Es capaz de gestionar máquinas no disponibles (gran problema de la solución de balanceo con DNS).

Sencillo pero eficaz. Solo falta un script en el init.d y hacer que se cargue al arrancar la máquina.

Autocompletado en bash

ShellComo sysadmin (o ratón de consola que diría alguno) una de las herramientas que más me ayuda es el autocompletado en el interprete de comandos bash.

Para habilitarlo solo hay que editar /etc/bash.bashrc y descomentar las 3 últimas lineas:

# enable bash completion in interactive shell
if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi

Y ya tenemos bash completion la próxima vez que nos logeemos en el sistema. De esta manera usar apt se vuelve aún mas sencillo:

apt-get insTABULADOR apacheTABULADORTABULADOR

Y, además de autocompletar la opción install de apt-get, tendremos a la vista la lista de paquetes cuyo nombre empieza por apache esperando a ser instalados por apt.

Además de autocompletar los párametros de apt también lo hace con unos cuantos más. También asocia tipos de ficheros con comandos. Así si tabulamos despues de escribir mplayer solo nos completara los ficheros cuyo tipo esté asociado a mplayer. A veces sucede que no tenemos asociado un tipo de fichero(extesión) concreto y que bash_completion en vez de ayudar nos dificuta el trabajo. Esto podemos arreglarlo usando el comando complete:

complete -G "*.txt" gedit

Y nos asociará a gedit todos los ficheros .txt.

Vía linux.com. También en linuca.

Monitorización de sistemas en GNU/Linux

Monit, ladrandole a los demoniosPor motivos laborales, tenía que monitorizar un par de equipos: ver que estan arriba (conectdos a la red) que tienen cirtos servicios activos, etc.

La primera idea fue nagios claro. Pero buscando info sobre nagios en debian me encuentro con una pequeña joya: monit. Además el slogan/logo mola un huevo 😛

Nagios está muy bien. Es tremendamente versatil y escalable. Pero por ello es bastante grande y complejo. Para mi caso me bastaba con algo mucho mas sencillo y monit me esta resolviendo la papeleta de momento. En un principio mi único objetivo es comprobar la conectividad a una máquina y en caso de fallo reiniciar la VPN. Si no tiene exito necesito que me avise para darme por enterado y arreglarlo a mano. En 5 minutos lo tenía funcionando:

  • apt-get install monit
  • editar el fichero de configuración para ajustar los párametros por defecto (periocidad, mail donde enviar las alertas, servidor de correo,…)
  • Añadir una entrada para la máquina a vigilar tal que:

check host weko with address 172.16.0.6
if failed icmp type echo count 3 with timeout 3 seconds then exec /usr/local/bin/openvpnreset.sh

  • Poner a 1 la variable startup en el fichero  /etc/default/monit
  • Reiniciar el demonio y voila!

Incluso tiene una pequeña interfaz web para echar un rápido vistazo a los servicos monitorizados. Claro que de cara a dar un poco mas de seriedad a los sistemas de nuestra empresa (últimamente han pasado por un bajón de calidad 🙁 ) voy a tener que empezar a mirar nagios, para sacar logs de tiempo en servicio y demás que permitan evaluar el funcionamiento de los sistemas.