viernes, agosto 28, 2009

Usar WebDAV en Alfresco bajo Linux (Una solución para editar scripts con Eclipse)

Cuando se quieren editar Scripts y WebScripts con Eclipse en Windows, se pueden realizar utilizando para ello los llamados "File Servers" que Alfresco pone a nuestra disposición bajo los nombres NombreMaquinaA o NombreMaquina_A (según la versión de Alfresco) como recursos CIFS.

En Linux también es posible mediante un cliente SMB (SAMBA) siempre y cuando tengamos acceso a los puertos necesarios (445 para TCP/IP y 137 al 139 para NetBIOS). Estos puertos quedan por debajo del 1024 por lo que si levantamos el servidor de aplicaciones con un usuario que no es root; o realizamos un "forwarding" entre los puertos por encima del 1024 a los que son en realidad, para lo que se necesitarían dos tarjetas de red, o utilizamos otro protocolo que nos permita acceder de forma parecida o similar.

Otro protocolo usado por Alfresco junto con CIFS y FTP es WebDAV. Este último puede utilizarse en Linux directamente, poniendo en el sistema de ventanas la dirección correcta. Por ejemplo, en el "Nautilus" de Ubuntu en la barra de Lugar (dirección) podemos poner:

dav://servidor:puerto/contexto_o_alias

Concretamente si tenémos instalado un Alfresco en nuestro propio ordenador podríamos acceder a este como:

dav://localhost:8080/alfresco/webdav

Pero, ¿y si queremos montar un directorio WebDAV directamente con el comando mount?, de esta forma podríamos acceder desde cualquier aplicación o editor a ese directorio (recurso), podríamos montarlo automáticamente desde /etc/fstab, etc.

En mi caso para poder editar directamente los ficheros de JavaScript y WebScripts en Alfresco utilizo este último sistema. Para ello me ayudo de mount.davfs2 concretamente.

Primero hay que instalar davfs2 si aún no está instalado usando aptitude o apt-get:

sudo aptitude install davfs2

Una vez instalado ya podemos montar unidades directamente como root (antes vamos a crear un directorio como punto de montaje), por ejemplo:

mkdir /home/fegor/WEBDAVscripts
sudo mount.davfs 'http://localhost:8080/alfresco/webdav' /home/fegor/WEBDAVscripts/

(Nos pedirá el usuario y la contraseña)

Ahora ya accedemos a Alfresco vía WebDAV, el problema es que los permisos de creación de este punto de montaje son del root.

Bien, si deseamos montar nosotros mismos (como usuarios) las unidades WebDAV, haremos lo siguiente:

sudo dpkg-reconfigure davfs2

Debemos contestar que Si (Yes) para que se nos permita montar las unidades como usuarios. Además debemos dar de alta nuestro usuario en el grupo davfs2 como:

sudo adduser fegor davfs2

Seguidamente introducimos la cadena necesaria para el montaje en /etc/fstab, por ejemplo:

http://localhost:8080/alfresco/webdav /home/fgonzalez/workspace/WEBDAValfresco davfs user,rw,nolocks,noauto 0 0

El parámetro por defecto para bloqueos viene fijado pero da problemas con Alfresco así que las desactivo (parámetro nolocks).

Ahora a montar la unidad con nuestro própio usario:

mount /home/fegor/WEBDAValfresco

Y ya no tendremos problemas de permisos de escritura, etc.

Para más información sobre davfs2 podéis visitar las siguientes URLs:

http://www.linuxquestions.org/linux/answers/Applications_GUI_Multimedia/Setting_up_davfs2_with_the_Ubuntu_package
http://sysblogd.wordpress.com/2007/09/09/ubuntu-mounting-remote-filesystem-using-davfs2-fuse/
http://blogdrake.net/node/13162