No todas las herramientas que uno quiere utilizar en la nube se han desarrollado en base a las APIs especÃficas, con lo cual puede ser necesario montar capas intermedias de adaptación para que al usuario final le resulte igual de cómodo.
Una de las opciones más interesantes es Guacamole, un paquete que encapsula de forma eficiente el acceso a un servicio X11. Una vez instalado, el usuario se autentica y puede disponer de un escritorio remoto como si fuese local. Eso sÃ, conviene delimitar sus posibilidades para que no lo utilice con fines ajenos a la aplicación.
La instalación de guacamole en Ubuntu es relativamente sencilla:
# instalar servidor VNC apt-get install tightvncserver # instalar dependencias del servidor Guacamole apt-get install libjpeg-turbo8-dev libcairo2-dev libossp-uuid-dev libpng12-dev libvncserver-dev tomcat6 # "compilar" el servidor cd guacamole-server-0.9.9/ ./configure --with-init-dir=/etc/init.d make -j 4 make install # añadir a /etc/bash.bashrc export LD_LIBRARY_PATH=/usr/local/lib export GUACAMOLE_HOME=/etc/guacamole # instalar dependencias del cliente Guacamole apt-get install maven2 # instalar cliente cd guacamole-client-0.9.9/ mvn package cp guacamole/target/guacamole-0.9.9.war /var/lib/tomcat6/webapps/ # configuración básica guacamole # guacamole.properties guacd-hostname: localhost guacd-port: 4822 ## Auth provider class (authenticates user/pass combination, needed if using the provided login screen) auth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider basic-user-mapping: /etc/guacamole/user-mapping.xml # user-mapping.xml - cambiar USERNAME, PASSWORD y VNCPASS ;-) <user-mapping> <authorize username="USERNAME" password="PASSWORD"> <protocol>vnc</protocol> <param name="hostname">localhost</param> <param name="port">5900</param> <param name="password">VNCPASS</param> </authorize> </user-mapping> # configurar el conector de Tomcat en /etc/tomcat6/server.xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" address="127.0.0.1" redirectPort="8443" /> # arrancar demonio guacamole y reiniciar Tomcat /etc/init.d/guacd restart /etc/init.d/tomcat6 restart # instalar "escritorio ligero" apt-get install lxde # arrancar servidor VNC vncserver -localhost # configurar el proxy en apache ProxyPass /guacamole/ http://localhost:8080/guacamole-0.9.9/ flushpackets=on ProxyPassReverse /guacamole/ http://localhost:8080/guacamole-0.9.9/
En caso de problemas, puede obtenerse información adicional en los ficheros /var/log/tomcat6/catalina.out, /var/log/syslog, ~/.vnc/HOSTNAME.log
En «create a Guacamole appliance» vienen cómo configurar la autenticación contra una base de datos MySQL.
La guÃa de usuario de Guacamole está bastante completa.
Otras opciones son novnc (que parece menos maduro) y x2go (bastante potente, pero de momento require modificar el equipo cliente, aunque sólo sea para instalar el plugin para el navegador…) Dentro del software commercial: Remote visualization, de Adaptive Computing.