martes, 22 de febrero de 2011

Servidores virtuales por nombre con Apache (actualizado)

Para que apache sirva un sitio diferente por cada nombre de dominio con el que se accese nuestro servidor, utilizando una sola IP, es necesario agregar la opción

NameVirtualHost *:80

y entradas como las que se muestan a continuación al archivo /etc/httpd/conf/httpd.conf



<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName localhost
</VirtualHost>

<VirtualHost *:80>
DocumentRoot /var/www/prueba
ServerName serverdell.cluster
</VirtualHost>



En esta prueba sencilla, cuando el servidor es accedido con el nombre localhost, se muestra el sitio que se encuentra en /var/www/html. Cuando se accede con el nombre serverdell.cluster, se muestra el sitio que se encuentra en /var/www/prueba Recuerda reiniciar el servicio httpd con un

service httpd restart

Para que los cambios que hayas efectuado en la configuración tomen efecto. El servidor por omisión, para los dominios que no se hayan definido es el primero que aparece en la lista. También es posible agregar directivas ErrorLog y CustomLog a cada servidor virtual para separar las bitacoras de acceso y error a los mismos. Asimismo puede agregarse una directiva ServerAdmin para definir el correo electrónico del administrador del sitio.

para probarlo de forma sencilla, puedes agregar en el archivo /etc/hosts el alias serverdell.cluster  a la dirección 127.0.0.1

sábado, 19 de febrero de 2011

Libre Office

Acabo de instalar la versión 3.3 de LibreOffice, la explicación de por que se dió el fork con OpenOffice desde barrapunto, en una entrevista con Charles H. Schulz

El software puede descargarse desde el sitio oficial de Libre Office

jueves, 17 de febrero de 2011

Libros sin dominio

En este sitio encontré excelentes libros, como:

Software Libre, Sociedad Libre de RMS
La catedral y el bazar de Erick Raymond

http://biblioweb.sindominio.net/telematica/

A reserva de revisarlo con más detenimiento, todos son Libres de libertad.

Saludos.

miércoles, 16 de febrero de 2011

martes, 15 de febrero de 2011

Mujeres en la computación

Hace algunos días mientras impartía una clase sobre Software Libre, un ejercicio que estábamos realizando sobre un proyecto muy pequeñito de generación de secuencias aleatorias, necesitábamos hacer una lista de gente importante en la historia de la computación, la sorpresa que tuve fue que de 25 nombres sólo logramos anotar a dos mujeres: Ada de Lovelace y tras una búsqueda sobre los últimos ganadores del Premio Turing encontramos a Barbara Liskov.

Preocupado por encontrar una explicación a la desproporcionada cantidad de hombres famosos en computación me tope con una Conferencia en honor a Grace Hopper que cada año se dedica a celebrar los aportes que las mujeres han hecho en nuestro campo.

La ganadora de 2006 Frances Allen parece haber justificado el hecho aduciendo que (y cito textualmente): "Las mujeres se interesarán por la computación cuando sea mas relevante socialmente"

Y tu que opinas al respecto?

Tres tips para administrar tu cluster

Primero: Acceso sin password

Teclear 16 veces tu password cada vez que vas a arrancar un cluster consume demasiado tiempo asi que...

Una forma de administrar múltiples servidores mediante ssh, sin tener que dar cada vez que entramos a cada uno el password es usar pares de llaves publicas/privadas para la autentificación en estos servidores (esto sólo funciona como root).

Una vez logeados como root, primeramente deberemos generar la llave pública en el servidor "Maestro"

ssh-keygen -t rsa

En pantalla deberá aparecer algo como:

Generating public/private rsa key pair.
Enter file in which to save the key (/home/rob/.ssh/id_rsa):

Damos un para dejar los archivos por default para las llaves.

A continuación se nos pide una frase de password, la cual dejaremos en blanco para efectos de poder entrar sin password a los servidores, (pero autentificando la sesión con la llave privada que solo tendremos nosotros)

Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/rob/.ssh/id_rsa.
Your public key has been saved in /home/rob/.ssh/id_rsa.pub.
The key fingerprint is:
a6:5c:c3:fb:19:94:0d:06:a1:a6:29:58:fa:80:0a:bc usuario@localhost

Para dejar la frase en blanco solo teclea en un par de ocasiones

Con lo anterior has creado dos archivos en tu directorio .ssh, id_rsa que es tu llave privada e id_rsa.pub que es la llave pública.

Para usar este par de llaves en un servidor basta con agregar la llave pública en su archvio .ssh/authorized_keys, por ejemplo, si solo se va a acceder de nuestro equipo, podemos ejecutar:

ssh server "mkdir .ssh; chmod 0700 .ssh"
scp .ssh/id_rsa.pub server:.ssh/authorized_keys

La primera instrucción crea el directorio .ssh en la cuenta del usuario en el servidor "esclavo", la segunda instrucción, copia nuestra llave pública sobre la lista de llaves autorizadas en dicho servidor.

De aqui en adelante podremos acceder al servidor mediante ssh, en la cuenta con la que estemos trabajando en el servidor "maestro" sin necesidad de teclear el password.

La seguridad de este método será tan buena, como protegida se encuente nuestra llave privada

Para mas información puede consultarse el excelente libro "Linux Server Hacks" de Rob Flickenger publicado por O`Reilly


Segundo: Archivo con los hosts

Al arrancar pvm puede proveersele como parámetro un archivo que contiene una lista con los nombres de los nodos a agregar al cluster, de esta forma no es necesario hacer un add para cada uno de ellos.

Por ejemplo, en mi cluster el archivo se llama /root/maquinas y tiene el siguiente contenido:

maquina2
maquina3
maquina4
maquina5
maquina6
maquina7
maquina8
maquina9
maquuna10
maquina11
maquina12
maquina13
maquina14
maquina15
maquina16

nótese que la maquina1 no aparece, debido a que es el nodo maestro del cluster y desde ahi se ejecuta el comando

pvm /root/maquinas

lo cual agrega los otros 15 nodos para hacer un total de 16

Tercero: shell script para ejecutar un comando en todos los esclavos del cluster

para esto hay que grabar un archivo en /root/bin con el nombre cluster con el siguiente script:

maquinas=`cat /root/maquinas`
for HOST in $maquinas
  do
    ssh $HOST $*
  done

la primera línea tiene acentos graves y genera una variable maquinas con una lista de las computadoras contenidas en el archivo del segundo tip.

el ciclo for, recorre la lista de almacenada en maquinas y va almacenando cada una en la variable HOST.

$* equivale a todos los parámetros con los que el script haya sido ejecutado.

una vez guardado asegúrate de que el script tiene permisos de ejecución con el comando:

chmod 770 /root/bin/cluster

para probar la funcionalidad del comando puedes ejecutar:

cluster hostname

lo cual debe desplegarte el nombre de host de cada nodo en el cluster.

de esta forma, podrás por ejemplo, desactivar el cortafuego en todos los nodos antes de iniciar pvm con el comando:

cluster service iptables stop