Páginas

domingo, 26 de mayo de 2013

Alfresco Community 4.2.c indexando en Solr

Introducción

En esta entrada vamos a detallar cómo instalar y configurar alfresco-community (versión 4.2.c) para que utilice Solr como motor de indexación. Cada uno de los dos aplicativos correrá en su propia instancia de Tomcat, simulando así un entorno de producción donde se intenta evitar que la sobrecarga de los procesos de indexación de documentos afecten al rendimiento de Alfresco.

Descargas

Descargar las aplicaciones
  • Alfresco. Lo descargamos de la URL: 
    https://process.alfresco.com/ccdl/?file=release/community/build-04576/alfresco-community-4.2.c.zip
  • Solr. Lo descargamos de la URL: 
    https://process.alfresco.com/ccdl/?file=release/community/build-04576/alfresco-community-solr-4.2.c.zip

Descargar el entorno de trabajo

Para conocer los requisitos de funcionamiento de la versión 4.2.c de Alfresco se ha consultado la documentación ofrecida en el siguiente enlace: http://wiki.alfresco.com/wiki/Alfresco_Community_4.2.c_Release_Notes.
  • BBDD. Elegimos PostgreSQL 9.1
  • JDK. Elegimos jdk-7u7-linux-i586.tar.gz
  • Servidor. Elegimos Tomcat 7.0.30

Instalacion del entorno

Instalación de PostgreSQL 9.1

Descargamos 'PostgreSQL 9.1' y la consola de administración 'pgAdmin III' mediante los comandos:

    sudo apt-get postgresql
    sudo apt-get pgadmin3


Iniciamos pgadmin3 mediante el comando:

    $ pgadmin3

Definimos una nueva conexión con la BBDD recien instalada, haciendo clic en la opción Añadir servidor del menú Archivo:
  • Nombre de la conexión: localhost
  • Servidor: 127.0.0.1
  • Puerto: 5432
  • Usuario: postgres
  • Password: <SIN PASSWORD>
Hacemos doble clic sobre el nuevo servidor localhost y:
  • Haciendo clic con el botón derecho del ratón sobre la opción Login Roles definimos un nuevo rol de login alfresco/alfresco con privilegios Supersuer 
  • Haciendo clic con el botón derecho del ratón sobre la opción Databases definimos una nueva BBDD:
        - Nombre: alfresco
        - Propietario: alfesco
        - Encoding: UTF-8
        - Collation: en_GB.utf8
        - Character type: en_GB.utf8

Instalación del JDK 1.7.0 u7
  • Descargamos el 'JDK 1.7.0 u7' de la URL: http://download.oracle.com/otn/java/jdk/7u7-b10/jdk-7u7-linux-i586.tar.gz
  • Descomprimimos el fichero 'jdk-7u7-linux-i586.tar.gz' en la carpeta /opt/jdk1.7.0_07
Instalación de la instancia Tomcat 7.0.30 para Alfreco
  • Descargamos 'Tomcat 7.0.30' de la URL: http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.30/bin/apache-tomcat-7.0.30.tar.gz
  • Creamos la carpeta /opt/alfresco
  • Descomprimimos el fichero 'apache-tomcat-7.0.30.tar.gz' en la carpeta /opt/alfresco/apache-tomcat-7.0.30
  • Renombramos la carpeta /opt/apache-tomcat-7.0.30 como /opt/alfresco/tomcat
  • Ajustamos el Tomcat según las instrucciones de la página de Alfresco: http://wiki.alfresco.com/wiki/Install_Tomcat6
        - Creamos las carpetas /opt/alfresco/tomcat/shared/classes/
        - Creamos las carpetas /opt/alfresco/tomcat/shared/lib/
        - Ajustamos la propiedad 'shared.loader' del fichero /opt/tomcat-alfresco/conf/catalina.properties con el valor:

            shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
  • Ajustamos el fichero /opt/alfresco/tomcat/bin/startup.sh añadiendo las siguientes líneas al inicio del mismo
            export JAVA_HOME=/opt/jdk1.7.0_07             
            export ALF_HOME=.            
            export JAVA_OPTS='-Xmx512m -Xmx1024m -Xss256k -XX:MaxPermSize=256m -XX:NewSize=256m -server'             
            export JAVA_OPTS="${JAVA_OPTS} -Dalfresco.home=${ALF_HOME} -Dcom.sun.management.jmxremote"             
            export JAVA_OPTS="${JAVA_OPTS} -Dsun.security.ssl.allowUnsafeRenegotiation=true"
  • Ajustamos el fichero /opt/alfresco/tomcat/conf/tomcat-users.xml añadiendo dentro del bloque <tomcat-users> los siguiente:
            <role rolename="manager-gui"/>             
            <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

Instalación de la instancia Tomcat 7.0.30 para Solr
  • Ya tenemos descargado 'Tomcat 7.0.30' del paso anterior
  • Creamos la carpeta /opt/solr
  • Descomprimimos el fichero 'apache-tomcat-7.0.30.tar.gz' en la carpeta /opt/solr/apache-tomcat-7.0.30
  • Renombramos la carpeta /opt/apache-tomcat-7.0.30 como /opt/solr/tomcat
  • Ajustamos el fichero /opt/solr/tomcat/bin/startup.sh añadiendo las siguientes líneas al inicio del mismo
            export JAVA_OPTS="-Dsun.security.ssl.allowUnsafeRenegotiation=true"
  • Ajustamos el fichero /opt/solr/tomcat/conf/server.xml
        - Cambiar 8005 por 9005 en la línea:
       
            <Server port="8005" shutdown="SHUTDOWN">

        - Cambiar 8080 por 9080 y 8443 por 9443 en el bloque:

            <Connector port="8080" protocol="HTTP/1.1"
                connectionTimeout="20000"
                redirectPort="8443" />


        - Cambiar 8009 por 9009 y 8443 por 9443 en al bloque:
       
            <Connector port="9009" protocol="AJP/1.3" redirectPort="9443" />
       
  • Ajustamos el fichero /opt/alfresco/tomcat/conf/tomcat-users.xml añadiendo dentro del bloque <tomcat-users> los siguiente:
        <role rolename="manager-gui"/>
        <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>


Instalación y ajuste de Alfresco
  • Extraemos el contenido del zip de alfresco (alfresco-community-4.2.c.zip) en /opt/alfresco
  • Copiamos el contenido de /opt/alfresco/web-server en /opt/alfresco/tomcat (permitiendo merge all y replace all)
  • Ajustamos el propietario de /opt/alfresco con:
        sudo chown -R alfresco:alfresco /opt/alfresco
  • Creamos el fichero
        /opt/alfresco/tomcat/shared/classes/alfresco-global.properties

    a partir del fichero

        /opt/alfresco/tomcat/shared/classes/alfresco-global.properties.sample
  • En el fichero /opt/alfresco/tomcat/shared/classes/alfresco-global.properties añadimos/descomentamos/ajustamos lo siguientes:
        dir.root=/opt/alfresco/alf_data
        alfresco.port=8080
        share.port=8080
        avm.rmi.service.port=50501
        avmsync.rmi.service.port=50502
        attribute.rmi.service.port=50503
        authentication.rmi.service.port=50504
        repo.rmi.service.port=50505
        action.rmi.service.port=50506
        wcm-deployment-receiver.rmi.service.port=50507
        monitor.rmi.service.port=50508
        db.name=alfresco
        db.host=localhost
        db.port=5432
        db.driver=org.postgresql.Driver
        db.url=jdbc:postgresql://${db.host}:${db.port}/${db.name}


  •  Creamos el fichero
         /opt/alfresco/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml

    a partir del fichero

        /opt/alfresco/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml.sample
  • En el fichero /opt/alfresco/tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml descomentamos el primer bloque (ojo que hay dos) <config evaluator="string-compare" condition="Remote">
  • Arrancamos el tomcat de alfresco con:
        /opt/alfresco/tomcat/bin/startup.sh
  • Monitorizamos la consola con:
        tail -f /opt/alfresco/tomcat/logs/catalina.out
  • Probamos que todo funciona accediendo a las URL:
        http://localhost:8080/share (admin/admin)
        http://localhost:8080/alfresco/faces/jsp/login.jsp (admin/admin)

Instalación y ajuste de Solr
  • Extraemos el contenido del zip de solr (alfresco-community-solr-4.2.c.zip) en /opt/solr
  • Ajustamos el propietario de /opt/solr con:       
        sudo chown -R alfresco:alfresco /opt/solr
  • Copiamos el fichero
        /opt/solr/alfresco-community-solr-4.2.c/solr-tomcat-context.xml
    
    creando las carpetas necesarias, en

        /opt/solr/tomcat/conf/Catalina/localhost/solr.xml 
  • Editamos el fichero /opt/solr/tomcat/conf/Catalina/localhost/solr.xml y remplazamos las dos apariciones de @@ALFRESCO_SOLR_DIR@@ por /opt/solr
  • Creamos la carpeta /opt/solr/solrdata
  • Editamos el fichero /opt/solr/workspace-SpacesStore/conf/solrcore.properties y reemplazamos @@ALFRESCO_SOLR_DIR@@ por /opt/solr/solrdata
  • Editamos el fichero /opt/solr/archive-SpacesStore/conf/solrcore.properties y reemplazamos @@ALFRESCO_SOLR_DIR@@ por /opt/solr/solrdata

Ajustes SSL para Alfresco
  • Creamos la carpeta /opt/alfresco/alf_data/keystore
  • Copiamos el contenido de
            /opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/keystore

        en


            /opt/alfresco/alf_data/keystore
  • Editamos el fichero /opt/alfresco/tomcat/conf/tomcat-users.xml añadiendo lo siguiente al bloque <tomcat-users>:
            <user username="CN=Alfresco Repository Client, OU=Unknown,
            O=Alfresco Software Ltd., L=Maidenhead, ST=UK, C=GB"
            roles="repoclient" password="null"/>

  • Editamos el fichero /opt/alfresco/tomcat/conf/server.xml añadiendo en el nodo <Service name="Catalina"> lo siguiente:
            <Connector port="8443"
                protocol="org.apache.coyote.http11.Http11Protocol"
                SSLEnabled="true"
                maxThreads="150"
                scheme="https"
                keystoreFile="/opt/alfresco/alf_data/keystore/ssl.keystore"
                keystorePass="kT9X6oe68t"
                keystoreType="JCEKS"
                secure="true"
                connectionTimeout="240000"
                truststoreFile="/opt/alfresco/alf_data/keystore/ssl.truststore"
                truststorePass="kT9X6oe68t"
                truststoreType="JCEKS"
                clientAuth="false"
                sslProtocol="TLS"
                allowUnsafeLegacyRenegotiation="true"
            />

  • Ajustamos el fichero /opt/alfresco/tomcat/shared/classes/alfresco-global.properties añadiendo/modificando/descomentado:
            dir.keystore=${dir.root}/keystore
            index.subsystem.name=solr
            solr.port.ssl=9443
            solr.port=9080
            solr.secureComms=https


Ajustes SSL para Solr
  • Creamos la carpeta /opt/solr/keystore
  • Copiamos el contenido de
            /opt/alfresco/tomcat/webapps/alfresco/WEB-INF/classes/alfresco/keystore

        en

            /opt/solr/keystore
  • Editamos el fichero /opt/solr/tomcat/conf/tomcat-users.xml añadiendo lo siguiente al bloque <tomcat-users>:
            <user username="CN=Alfresco Repository, OU=Unknown,
            O=Alfresco Software Ltd., L=Maidenhead, ST=UK, C=GB"
            roles="repository" password="null"/>

  • Editamos el fichero /opt/solr/tomcat/conf/server.xml añadiendo en el nodo  <Service name="Catalina"> lo siguiente:
            <Connector port="8443"
                protocol="org.apache.coyote.http11.Http11Protocol"
                SSLEnabled="true"
                maxThreads="150"
                scheme="https"
                keystoreFile="/opt/solr/keystore/ssl.keystore"
                keystorePass="kT9X6oe68t"
                keystoreType="JCEKS"
                secure="true"
                connectionTimeout="240000"
                truststoreFile="/opt/solr/keystore/ssl.truststore"
                truststorePass="kT9X6oe68t"
                truststoreType="JCEKS"
                clientAuth="false"
                sslProtocol="TLS"
                allowUnsafeLegacyRenegotiation="true"
            />


Puesta en marcha y verificación del funcionamiento

Para poner en marcha lo anterior deberemos arrancar solr y alfresco:

/opt/solr/tomcat/bin/startup.sh
/opt/alfresco/tomcat/bin/startup.sh

Una vez levantados ambos servidores, verificamos el número de ficheros de los índices en Solr:

/opt/solr/solrdata/workspace/SpacesStore/index

Accedemos al portal http://localhost:8080/share, entrando con admin/admin, accedemos al espacio de invitado del repositorio y añadimos algún documento.

Si todo va bien deberíamos ver que el número de ficheros de la carpeta de índices del solr ha variado.

No hay comentarios:

Publicar un comentario