martes, 12 de octubre de 2010

Ubuntu Enterprise Cloud 10.10

Ubuntu

Muchos han sido los artículos publicados el día 10 junto con la publicación de Ubuntu Maverick Meerkat (10.10) pero también junto con la versión del escritorio tenemos la versión de servidor destinada a empresas aunque para un entorno de producción es más recomendable usar la versión LTS (10.04) por el mayor tiempo de soporte que posee. Además de la tradicional versión para instalar como servidor también se puede instalar para construir una nube (que tan de moda está) privada o en una nube pública utilizando los recursos de la nube de Amazon.

La Ubuntu Enterprise Cloud (UEC) está formado por un controlador de la nube y uno o varios nodos controladores de las instancias. La nube de Ubuntu se basa en el software Eucalyptus.

El proceso de instalación de una nube privada de Ubuntu se inicia como cualquier instalación de otro sistema operativo introduciendo el CD o mediante una memoria USB (para hacer las pruebas lo más recomendables es utilizar una máquina virtual como Vitrtualbox u otras similares).


Una vez iniciamos el sistema seleccionaremos el lenguaje de la instalación y en vez de seleccionar la opción «Instalar Ubuntu Server» seleccionamos «Instalar Ubuntu Enterprise Cloud», los pasos para completar la instalación son similares a los pasos de instalación de un servidor normal, seleccionaremos el particionado de los discos, la distribución del teclado, el usuario y contraseña para el usuario root, se descargan algunos paquetes, etc... Una vez haya finalizado la instalación y se haya reiniciado el sistema podremos acceder a la consola de administración del nodo controlador de la nube. Para ello tendremos que conocer su dirección IP, lo podemos saber iniciado sesión en el servidor y ejecutando el comando:

$ ifconfig | more

Nos fijaremos en el campo «Direc. inet» de la interfaz br0 si como yo lo estáis probando en una máquina virtual de Virtualbox con una red no NAT sino adaptador puente (no la por defecto NAT).


Una vez conocida la dirección IP abriremos el navegador, la introduciremos en la barra de direcciones y accederemos a la consola de administración donde podremos ver algunos de los parámetros de la nube que estamos creando. El usuario y contraseña por defecto para acceder a la consola de administración es «admin» tanto para el usuario como para la contraseña. Estas son algunas capturas de las opciones de la consola de administración.





En la pestaña Store podremos seleccionar las imágenes que queremos instalar y en las que se instalarán los servicios que propocionará nuestra nube. También podremos subir nuevas imágenes a la nube para servicios personalizados.


Una vez hayamos instalado correctamente una imagen procederemos a iniciarla desde el controlador de la nube, iniciamos sesión en el y lo primero que haremos será obtener las credenciales con:

$ mkdir -p ~/.euca
$ chmod 700 ~/.euca
$ cd ~/.euca
$ sudo euca_conf --get-credentials mycreds.zip
$ unzip mycreds.zip
$ ln -s ~/.euca/eucarc ~/.eucarc
$ cd -

Ahora generaremos la clave privada con un pequeño script con el siguiente contenido:

if [ ! -e ~/.euca/mykey.priv ]; then
    mkdir -p -m 700 ~/.euca
    touch ~/.euca/mykey.priv
    chmod 0600 ~/.euca/mykey.priv
    euca-add-keypair mykey > ~/.euca/mykey.priv
fi


Permitimos el acceso mediante SSH a las instancias que es como nos conectaremos a la consola de cada una de ellas:

$ euca-authorize default -P tcp -p 22 -s 0.0.0.0/0

Arrancaremos una instancia con:

euca-run-instances $EMI -k mykey -t m1.small


Donde $EMI lo sustituiremos por el Id de una imagen de la pestaña Images. En mi caso el Id del emi asignado es «emi-DF56106F».

Cuando la instancia este arrancada nos podremos conectar a ella con:

$ EMI=emi-DF56106F
$ IPADDR=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $4}')
$ ssh -i ~/.euca/mykey.priv ubuntu@$IPADDR

Para parar la instancia usamos el comando:

$ EMI=emi-DF56106F
$ INSTANCEID=$(euca-describe-instances | grep $EMI | grep running | tail -n1 | awk '{print $2}')
$ euca-terminate-instances $INSTANCEID

Si estamos probando Ubuntu Enterprise Cloud en una máquina virtual como Virtualbox y reiniciamos la máquina virtual deberemos modificar el archivo ./.euca/.eucarc y las variables S3_URL y EC2_URL con la nueva IP que se le asigne a la máquina que será la misma que hemos obtenido con el comand if config de unos cuantos pasos antes. Una vez modificado el archivo ejecutamos los siguiente para recargar las variables:

$ . ~/.euca/eucarc


O le cambiamos a la interfaz de red la IP a la que tiene el archivo ./.euca/.eucarc con el comando:

$ ifconfig br0 85.84.32.71

Referencia:
http://www.ubuntu.com/cloud
https://help.ubuntu.com/community/UEC
https://help.ubuntu.com/community/UEC/CDInstall
http://www.eucalyptus.com/
Eucalyptus beginners guide
5 opciones de hosting para aplicaciones Java