lunes, 1 de septiembre de 2014

Migración de ownCloud entre Ubuntu y Manjaro

Nuevamente, nos encontramos ante el dilema de tener que migrar los servicios de ownCloud que ya teníamos funcionando en Ubuntu, donde se instaló utilizando el backend SQLite, hacia Manjaro, donde se pretende que todo siga funcionando exáctamente igual que antes.
A nivel estructural, en Ubuntu el servicio pendía del mismo Apache, y su directorio era /var/www/owncloud.
En Manjaro los directorios del servidor web no penden de /var/www, sino de /srv/http, esto debe ser un punto a tener en cuenta.
Otro punto fundamental es que la versión de ownCloud de Ubuntu era la 6, mientras que en Manjaro cuando se implemente por medio de su gestor de paquetes (pacman) se implementará la 7.
Ahora bien, cuando pensamos en una migración debemos tener en cuenta que sus usuarios no deben notar la diferencia entre la anterior modalidad de trabajo y la nueva, por lo que hay que considerar lo siguiente:

  • Los usuarios y sus claves deben conservar tal y como estaban. Si estábamos utilizando un backend SQLite, tendremos que respetar su información. En el futuro veremos la forma, una vez migrado este producto, de pasar de una base de datos SQLite a una MySQL, pero por ahora, consideraremos que nuestras bases siempre estarán en SQLite.
  • Los espacios sincronizados deben ser los mismos.
  • La información de versionado debe conservarse.
  • La información de archivos borrados debe conservarse.
  • Los add-ons de ownCloud usados en la anterior versión deben estar presentes en la nueva. Esta parte puede ser complicada, ya que nada ni nadie nos asegurará que los mismos add-ons estén disponibles para una u otra versión de ownCloud.

El primer punto de todo esto será la instalación de Apache y PHP, cosa que si bien excede este artículo, es bien sencillo gracias al uso del mismo gestor de paquetes de Manjaro, antes mencionado.
Una vez que estos paquetes estén instalados, procederemos a la implementación del paquete de ownCloud en sí mismo, usando pacman:

pacman -S owncloud php-pear php-sqlite php-intl
pear install MDB2

En el proceso de implementación no se solicitará ningún tipo de confirmación de ninguna índole, por lo que el trabajo duro quedará todo de nuestro lado.
Un punto importante a tener en cuenta: Manjaro instala archivos de este paquete no en /srv/http, sino en /usr/share/webapps/owncloud.
Mucho cuidado a la hora de configurar espacios, ya que no olvidemos que la información de los usuarios de ownCloud es guardada en el subdirectorio data de este producto, así como la configuración se encontrará en el subdirectorio config. Si los datos de los usuarios son en extremos voluminosos, podemos agotar nuestro espacio en disco.
Así es que me dispuse a hacer un tar de los archivos existentes en data y config de mi vieja instalación de ownCloud sobre Ubuntu, para des-tarear todo en el nuevo espacio, /usr/share/webapps/owncloud, considerando que mi vieja instalación se encontraba montada en /viejo_disco:

cd /viejo_disco/var/www/owncloud
tar zcvf /usr/share/webapps/owncloud/dataconfig.tgz ./data ./config (remarco de nuevo el tema del espacio en disco!)
cd /etc/webapps/owncloud/config
cp config.sample.php config.sample.php.original
cd /usr/share/webapps/owncloud
tar zxvf dataconfig.tgz

Ahora, a configurar archivos, que tanto nos gusta:

cp /etc/webapps/owncloud/apache.example.conf /etc/httpd/conf/extra/owncloud.conf
vi /etc/httpd/conf/httpd.conf

agregar, al final del archivo, la entrada siguiente:

Include conf/extra/owncloud.conf

Cambiamos permisos:

chown -R http:http /usr/share/webapps/owncloud/

Cambiar un parámetro de la configuración:

vi /usr/share/webapps/owncloud/config/config.php

...y modificar la línea siguiente para que quede así:

'datadirectory' => '/usr/share/webapps/owncloud/data',

Entonces bajamos y subimos httpd:

systemctl stop httpd
systemctl start httpd

Listo!
Cuando ingresemos de nuevo a nuestro sitio de owncloud encontraremos una ventana que nos indica que debemos seguir adelante con la conversión de la aplicación a la nueva versión:




Obviamente, presionamos "Start update". Luego de unos minutos, tendremos listo nuestro ownCloud en Manjaro, casi sin dolor.

Felicidades, a vivir los nuevos niveles de performance!