Nuestro camino desde Alfresco CE 5.1.g hasta Alfresco 201701

por / Miércoles, 15 Febrero 2017 / Publicado enBlog
Actualizando Alfresco de 201701 a 201702
1 de Marzo: BeeCon 2017 warm up session at Etopia

El mes pasado fue liberada la primera versión productiva para Alfresco Community 5.2. Tras el cambio de denominación realizado por Alfresco, esta versión corresponde a la 201701, que incluye los siguientes componentes:

  • 5.2.e for Alfresco Platform
  • 5.2.d for Alfresco Share

Esta versión incluye muchas novedades, que ya repasamos en “Descubre todo lo que traerá Alfresco 5.2”

A continuación se describe el proceso de actualización de nuestro servidor corporativo, en el disponíamos de un Alfresco CE 5.1.g con SOLR 4 y que hemos actualizado a un Alfresco CE 201701 con SOLR 6.

Situación inicial

  • Disponemos de una instalación de Alfresco CE 5.1.g sobre PostgreSQL 9.4 corriendo en un servidor Ubuntu 14.04
  • El servidor dispone de 12 Gb de RAM: 6 dedicados para Alfresco y el resto disponibles para PostgreSQL, LibreOffice y sistema operativo
  • El tamaño del repositorio es de 38 Gb y alberga más de 100.000 documentos
  • La autenticación está integrada con nuestro OpenLDAP corporativo
  • Disponemos de diferentes módulos AMP de personalización
$ cd /opt/alfresco/alf_data/contentstore
$ sudo du --max-depth=1 -h
3.0G    ./2013
14G     ./2014
6.4G    ./2015
14G     ./2016
866M    ./2017
38G     .

Ejecución del proceso

Nota Los pasos que incluimos a continuación pueden no ser adecuados para vuestro entorno, se incluyen únicamente como referencia para vuestros propios procesos.

Backup de la base de datos

Para esta instalación utilizamos el wizard de Alfresco, por lo que el software de PostgreSQL está instalado en la misma carpeta que Alfresco. Paramos Alfresco (lo que incluye una parada de PostgreSQL), arrancamos la base de datos y realizamos la copia de seguridad.


$ sudo service alfresco stop

$ sudo su - postgres

$ cd /opt/alfresco/postgresql/bin
$ ./pg_ctl start

$ ./pg_dump alfresco > /tmp/exportFile-20170214.dmp
Password:

$ ./pg_ctl stop
$ exit

Backup del repositorio

Antes de comenzar, realizamos una copia del repositorio actual completo. De esta manera durante el proceso de instalación podremos ir recuperando los recursos necesarios (ficheros, índices, configuración, addons…)


$ mv /opt/alfresco /opt/alfresco-old

Instalar dependencias de LibreOffice

La nueva versión de Alfresco incluye una versión LibreOffice 5.2.1, por lo que son requeridas nuevas dependencias en el sistema operativo.


$ sudo apt-get install ttf-mscorefonts-installer fonts-droid libxinerama1 libglu1-mesa 

No obstante, a pesar de verificar que todas las dependencias están disponibles el instalador de Alfresco sigue quejándose al arrancar de que no están todas las necesarias. Hemos ignorado este error, considerando que se trata de un error del propio instalador de Alfresco. Adicionalmente, tras realizar el proceso completo, hemos verificado que LibreOffice funciona correctamente.

Instalar la nueva versión de Alfresco (201701)

Utilizaremos el instalador (disponible en 201701) para realizar una implantación limpia de la nueva versión, que configuramos por el puerto 9080 para mantener la compatibilidad con los servicios que tenemos integrados.


$ sudo ./alfresco-community-installer-201701-linux-x64.bin
Some or all of the libraries needed to support LibreOffice were not found on your system: fontconfig libSM libICE libXrender libXext libcups libGLU libcairo2 libgl1-mesa-glx
You are strongly advised to stop this installation and install the libraries.
For more information, see the LibreOffice documentation at http://docs.alfresco.com/search/site/all?keys=libfontconfig

Do you want to continue with the installation? [y/N]: y

Language Selection

Please select the installation language
[1] English - English
[2] French - Français
[3] Spanish - Español
[4] Italian - Italiano
[5] German - Deutsch
[6] Japanese - 日本語
[7] Dutch - Nederlands
[8] Russian - Русский
[9] Simplified Chinese - 简体中文
[10] Norwegian - Norsk bokmål
[11] Brazilian Portuguese - Português Brasileiro
Please choose an option [1] : 1
----------------------------------------------------------------------------
Welcome to the Alfresco Community Setup Wizard.

----------------------------------------------------------------------------
Installation Type

[1] Easy - Install using the default configuration.
[2] Advanced - Configure server ports and service properties.: Choose optional components to install.
Please choose an option [1] : 2

----------------------------------------------------------------------------
Select the components you want to install; clear the components you do not want
to install. Click Next when you are ready to continue.

Java [Y/n] :Y

PostgreSQL [Y/n] :Y

LibreOffice [Y/n] :Y

Alfresco Community : Y (Cannot be edited)

Solr1 [y/N] : n

Solr4 [Y/n] :Y

Alfresco Office Services [Y/n] :Y

Web Quick Start [y/N] : n

Google Docs Integration [Y/n] :n

Is the selection above correct? [Y/n]: Y

----------------------------------------------------------------------------
Installation Folder

Choose a folder to install Alfresco Community.

Select a folder: [/opt/alfresco-community]: /opt/alfresco

----------------------------------------------------------------------------
Database Server Parameters

Enter the port of your database.

Database Server Port: [5432]:

----------------------------------------------------------------------------
Tomcat Port Configuration

Enter your Tomcat configuration parameters.

Web Server Domain: [127.0.0.1]:

Tomcat Server Port: [8080]: 9080

Tomcat Shutdown Port: [8005]: 9005

Tomcat SSL Port: [8443]: 9443

Tomcat AJP Port: [8009]: 9009

----------------------------------------------------------------------------
LibreOffice Server Port

Enter the port that the LibreOffice Server will listen to.

LibreOffice Server Port: [8100]:

----------------------------------------------------------------------------
FTP Port

Choose a port number for the integrated FTP server.

Port: [21]:

----------------------------------------------------------------------------
Admin Password

Specify a password for the Alfresco Content Services administrator account.

Admin Password: :
Repeat Password: :
----------------------------------------------------------------------------
Install as a service

If you register Alfresco Community as a service it will automatically start
Alfresco Community on machine startup.

Install Alfresco Community as a service? [Y/n]: y

----------------------------------------------------------------------------
Setup is now ready to begin installing Alfresco Community on your computer.

Do you want to continue? [Y/n]: Y

----------------------------------------------------------------------------
Please wait while Setup installs Alfresco Community on your computer.

Installing
0% ______________ 50% ______________ 100%
#########################################

----------------------------------------------------------------------------
Setup has finished installing Alfresco Community on your computer.

View Readme File [Y/n]: n

Launch Alfresco Community [Y/n]: n

Hemos seleccionado SOLR 4 porque el instalador no permite todavía utilizar SOLR 6, pero después realizaremos la configuración para poder utilizar la nueva integración con SOLR 6.

Restaurar la configuración de la versión anterior (5.1.g)

Copiamos el fichero de configuración alfresco-global.properties de la 5.1.g a la 201701


$ sudo mv /opt/alfresco/tomcat/shared/classes/alfresco-global.properties /opt/alfresco/tomcat/shared/classes/alfresco-global.properties.install
$ sudo cp /opt/alfresco-old/tomcat/shared/classes/alfresco-global.properties /opt/alfresco/tomcat/shared/classes/

Copiamos los AMPs de repo y share de la 5.1.g a la 201701 y los aplicamos.


$ sudo cp /opt/alfresco-old/amps/* /opt/alfresco/amps
$ sudo cp /opt/alfresco-old/amps_share/* /opt/alfresco/amps_share
$ sudo /opt/alfresco/bin/apply_amps.sh

Configurar SOLR 6

Eliminamos la instalación de SOLR 4 realizada por el wizard de Alfresco.


$ sudo rm -rf /opt/alfresco/solr4
$ sudo rm -rf /opt/alfresco/alf_data/solr4

$ sudo rm /opt/alfresco/tomcat/conf/Catalina/localhost/solr4.xml

$ sudo rm /opt/alfresco/tomcat/webapps/solr4.war

Descargamos Alfresco Solr 6 Integration 1.0.b y lo descomprimimos en la carpeta de Alfresco.

$ sudo mkdir /opt/alfresco/solr6
$ sudo cp alfresco-search-services-1.0.b.zip /opt/alfresco/solr6
$ sudo unzip /opt/alfresco/solr6/alfresco-search-services-1.0.b.zip
$ sudo rm /opt/alfresco/solr6/alfresco-search-services-1.0.b.zip

En nuestro caso, Alfresco está corriendo por el puerto 9080, así que necesitamos modificar las propiedades de la plantilla de core que utiliza Alfresco para que sean creados con esta propiedad, ya que por defecto apuntan al puerto 8080.

$ cd /opt/alfresco
$ cd /opt/alfresco/solr6/solrhome/templates/rerank/conf
$ sudo vi solrcore.properties

alfresco.port=9080
alfresco.port.ssl=9443

Se lanza Alfresco por primera vez indicándole que cree los dos cores requeridos para Alfresco.

$ sudo solr/bin/solr start -force -a -Dcreate.alfresco.defaults=alfresco,archive

Una vez lanzado, la consola de SOLR estará disponible en http://localhost:8983/solr y podemos configurar Alfresco para que utilice este motor de indexación.

### Solr indexing ###
index.subsystem.name=solr6
solr.host=localhost
solr.port=8983
solr.port.ssl=8984
solr.secureComms=none

Declaramos SOLR 6 como servicio para ajustar los parámetros de memoria en el arranque y para que sea iniciado en el boot del sistema.

# cat solr6
#!/bin/sh
#
# chkconfig: 2345 80 30
# description: Alfresco Community SOLR6
#
### BEGIN INIT INFO
# Provides:          solr6
# Required-Start:    $local_fs $remote_fs
# Required-Stop:     $local_fs $remote_fs
# Should-Start:      $all
# Should-Stop:       $all
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Start/stop Alfresco SOLR6
# Description:       Start/stop Alfresco SOLR6
### END INIT INFO

RETVAL=0

start () {
    /opt/alfresco/solr6/solr/bin/solr start -m 2G -force "$2"
    RETVAL=$?
    if [ -d "/var/lock/subsys" ] && [ `id -u` = 0 ] && [ $RETVAL -eq 0 ] ; then
        touch /var/lock/subsys/solr6
    fi

}

stop () {
    /opt/alfresco/solr6/solr/bin/solr stop -all "$2"
    RETVAL=$?
}


case "$1" in
    start)
        start "$@"
        ;;
    stop)
        stop "$@"
        ;;
    restart)
        stop "$@"
        start "$@"
        ;;
    *)
        /opt/alfresco/solr6/solr/bin/solr "$@"
        RETVAL=$?
esac
exit $RETVAL


$ service solr6 stop

$ service solr6 start

Si queréis probar SOLR 6 con nuestras imágenes Docker, lo hemos actualizado en nuestra plantilla de GitHub 201701-GA-solr6

Restaurar los datos de la versión anterior (5.1.g)

Movemos todo los contenidos del repositorio anterior al nuevo Alfresco.

$ rm -R /opt/alfresco/alf_data/contentstore
$ sudo mv /opt/alfresco-old/alf_data/contentstore /opt/alfresco/alf_data

Restauramos el backup de base de datos que hemos salvado previamente.


$ sudo su - postgres

$ /opt/alfresco/postgresql/scripts/ctl.sh start

$ cd /opt/alfresco/postgresql/bin

$ ./psql

postgres=# drop database alfresco;
DROP DATABASE
postgres=# CREATE DATABASE alfresco
postgres-# WITH OWNER = alfresco
postgres-# ENCODING = 'UTF8'
postgres-# TABLESPACE = pg_default
postgres-# CONNECTION LIMIT = -1
postgres-# TEMPLATE template0;
CREATE DATABASE
postgres=# \q

$ exit

$ sudo /opt/alfresco/postgresql/bin/psql -U alfresco alfresco < /tmp/exportFile-20170214.dmp
$ sudo /opt/alfresco/postgresql/scripts/ctl.sh stop

Arranque del sistema

Una vez realizados estos pasos, nuestro Alfresco 201701 contiene todos los datos y personalizaciones de Alfresco 5.1.g.

Adicionalmente podrían restaurarse los índices de SOLR, aunque en nuestro caso no es aplicable porque estamos cambiando de SOLR 4 a SOLR 6 y porque el tiempo de indexado completo del repositorio es pequeño.

Tras arrancar el servicio, ya tenemos acceso a la nueva pantalla naranja de login de Alfresco Share.


$ service alfresco start

Notas

En este artículo se describe un ejemplo de actualización desde Alfresco 5.1.g a Alfresco 201701. No obstante, vuestro caso puede ser diferente y es posible que necesitéis realizar pasos intermedios. Asimismo, los comandos se incluyen a modo de ejemplo: no se garantiza que funcionen correctamente en vuestro servidor.

Responsable tecnológico para soluciones de gestión documental en keensoft. Especialista en Alfresco y en implantaciones de Administración Electrónica.

Etiquetado bajo: ,

2 Responses to “Nuestro camino desde Alfresco CE 5.1.g hasta Alfresco 201701”

  1. Antonio dice: Responder

    Hola Angel,

    Antes de nada, agradecerte el estupendo trabajo que haces. Desde donde puedo modificar los ajuste de Alfresco para cambiar los motores de indexación ?

  2. Estos parámetros

    ### Solr indexing ###
    index.subsystem.name=solr6
    solr.host=localhost
    solr.port=8983
    solr.port.ssl=8984
    solr.secureComms=none

    se incluyen en el fichero alfresco-global.properties.

Deja un comentario

SUBIR