
Alfresco 5.1.g
Hace un par de meses fue liberada la versión 5.1.g de Alfresco Community, la última entrega de la rama 5.1 y de la que ya hemos realizado muchas implantaciones con éxito. Nuestro servidor corporativo para Alfresco funciona con Ubuntu 12.04, por lo que habíamos estado esperando para actualizar a 14.04 / 16.04 antes de realizar la actualización de Alfresco. Al final las contingencias han hecho que hayamos descartado realizar la actualización de sistema operativo por el momento, por lo que la actualización ha sido únicamente del software de Alfresco.
Situación inicial
- Disponemos de una instalación de Alfresco CE 5.0.c sobre PostgreSQL 9.3 corriendo en un servidor Ubuntu 12.04
- El servidor dispone de 8 Gb de RAM: 4 dedicados para Alfresco y el resto disponibles para PostgreSQL, LibreOffice y sistema operativo
- El tamaño del repositorio es de 60 Gb y alberga más de 150.000 documentos
- La autenticación está integrada con nuestro OpenLDAP corporativo
- Disponemos de diferentes módulos AMP de personalización
- Existe un proceso de backup personalizado
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 5.0.d $ sudo service alfresco stop $ sudo mv /opt/alfresco /opt/alfresco-old $ cd /opt/alfresco/postgresql/bin/ $ ./pg_dump alfresco > /tmp/exportFile.dmp # Install 201605 GA (5.1.g) $ wget http://dl.alfresco.com/release/community/201605-build-00010/alfresco-community-installer-201605-linux-x64.bin $ chmod +x alfresco-community-installer-201605-linux-x64.bin $ sudo mkdir /opt/alfresco $ sudo apt-get install libice6 libsm6 libxt6 libxrender1 libfontconfig1 libcups2 libxinerama1 libglu1-mesa $ sudo ./alfresco-community-installer-201605-linux-x64.bin 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] :n 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]: ecm.alfresco.es 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]: ---------------------------------------------------------------------------- Alfresco FTP Port Choose a port number for the integrated Alfresco FTP server. Port: [21]: ---------------------------------------------------------------------------- Admin Password Specify a password for the Alfresco 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]: n ---------------------------------------------------------------------------- Warning This environment is not configured optimally for Alfresco - review this list before continuing. While these issues won’t prevent Alfresco from functioning, some product features might not be available, or the system might not perform optimally. CPU clock speed is too slow (2.0 GHz+): 1.9 GHz SMTP TCP port in use : 25 Press [Enter] to continue: ---------------------------------------------------------------------------- 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 # Restore 5.0.d AMPs and configuration $ cd /opt/alfresco/amps $ sudo cp /opt/alfresco-old/amps/*.amp . $ cd .. $ cd amps_share $ sudo cp /opt/alfresco-old/amps_share/*.amp . $ sudo /opt/alfresco/bin/apply-amps.sh $ sudo vi /opt/alfresco/tomcat/shared/classes/alfresco-global.properties ############################### ## Common Alfresco Properties # ############################### dir.root=/opt/alfresco/alf_data alfresco.context=alfresco alfresco.host=ecm.alfresco.es alfresco.port=443 alfresco.protocol=https share.context=share share.host=ecm.alfresco.es share.port=443 share.protocol=https aos.baseUrlOverwrite=https://ecm.alfresco.es/alfresco/aos ### database connection properties ### db.driver=org.postgresql.Driver db.username=alfresco db.password=XXXXXXXX db.name=alfresco db.url=jdbc:postgresql://localhost:5432/${db.name} # Note: your database must also be able to accept at least this many connections. Please see your database documentation for instructions on how to configure this. db.pool.max=275 db.pool.validate.query=SELECT 1 # The server mode. Set value here # UNKNOWN | TEST | BACKUP | PRODUCTION system.serverMode=PRODUCTION ### FTP Server Configuration ### ftp.port=21 ftp.enable=true ### RMI registry port for JMX ### alfresco.rmi.services.port=50500 ### External executable locations ### ooo.exe=/opt/alfresco/libreoffice/program/soffice.bin ooo.enabled=true ooo.port=8100 img.root=/opt/alfresco/common img.dyn=${img.root}/lib img.exe=${img.root}/bin/convert jodconverter.enabled=false jodconverter.officeHome=/opt/alfresco/libreoffice jodconverter.portNumbers=8100 ### Initial admin password ### alfresco_user_store.adminpassword=XXXXXXXXXXXXXXXXX ### E-mail site invitation setting ### notification.email.siteinvite=false ### License location ### dir.license.external=/opt/alfresco ### Solr indexing ### index.subsystem.name=solr4 dir.keystore=${dir.root}/keystore solr.host=localhost solr.port.ssl=9443 solr.secureComms=none solr.port=9080 ### Allow extended ResultSet processing security.anyDenyDenies=false ### Smart Folders Config Properties ### smart.folders.enabled=true ### Remote JMX (Default: disabled) ### alfresco.jmx.connector.enabled=false synchronization.autoCreatePeopleOnLogin=false synchronization.import.cron=0 0/15 * * * ? authentication.chain=alfinst:alfrescoNtlm,ldap-ad1:ldap-ad ntlm.authentication.sso.enabled=false ## Transformers ## content.transformer.OpenOffice.mimeTypeLimits.docx.pdf.maxSourceSizeKBytes=10768 content.transformer.OpenOffice.mimeTypeLimits.ppt.pdf.maxSourceSizeKBytes=10768 content.transformer.OpenOffice.mimeTypeLimits.pptx.pdf.maxSourceSizeKBytes=10768 content.transformer.OpenOffice.Pdf2swf.mimeTypeLimits.doc.swf.maxSourceSizeKBytes=10256 content.transformer.OpenOffice.Pdf2swf.mimeTypeLimits.docx.swf.maxSourceSizeKBytes=10256 content.transformer.OpenOffice.Pdf2swf.mimeTypeLimits.ppt.swf.maxSourceSizeKBytes=10256 content.transformer.OpenOffice.Pdf2swf.mimeTypeLimits.pptx.swf.maxSourceSizeKBytes=10256 # Outbound email mail.host=127.0.0.1 mail.port=25 mail.username=anonymous mail.password= mail.from.default=alfresco@keensoft.es mail.smtp.auth=false # LDAP ldap.authentication.active=true ldap.authentication.allowGuestLogin=false ldap.authentication.userNameFormat=uid\=%s,ou\=People,dc\=keensoft,dc\=es ldap.authentication.java.naming.provider.url=ldap://127.0.0.1:389 ldap.authentication.java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory ldap.authentication.java.naming.security.authentication=simple ldap.synchronization.java.naming.security.principal=uid=alfrescobind,ou=NoPeople,dc=keensoft,dc=es ldap.synchronization.java.naming.security.credentials=XXXXXX ldap.authentication.escapeCommasInUid=false ldap.authentication.defaultAdministratorUserNames= ldap.synchronization.groupQuery=(objectclass\=posixGroup) ldap.synchronization.groupDifferentialQuery=(objectclass\=posixGroup) ldap.synchronization.personQuery=(objectclass\=account) ldap.synchronization.personDifferentialQuery=(objectclass\=account) ldap.synchronization.groupSearchBase=ou\=Groups,dc\=keensoft,dc\=es ldap.synchronization.userSearchBase=ou\=People,dc\=keensoft,dc\=es ldap.synchronization.modifyTimestampAttributeName=modifyTimestamp ldap.synchronization.timestampFormat=yyyyMMddHHmmss'Z' ldap.synchronization.userIdAttributeName=uid ldap.synchronization.userFirstNameAttributeName=uid ldap.synchronization.defaultHomeFolderProvider=userHomesHomeFolderProvider ldap.synchronization.groupIdAttributeName=cn ldap.synchronization.groupType=posixGroup ldap.synchronization.personType=account ldap.synchronization.groupMemberAttributeName=memberUid ldap.synchronization.enableProgressEstimation=true ldap.synchronization.userEmailAttributeName=mail # Required for user groups synchronization ldap.synchronization.attributeBatchSize=0 # Configure SOLR4 by using HTTP $ sudo vi /opt/alfresco/solr4/workspace-SpacesStore/conf/solrcore.properties alfresco.secureComms=none $ sudo vi solr4/archive-SpacesStore/conf/solrcore.properties alfresco.secureComms=none $ sudo service alfresco start # Installing AOS $ sudo service alfresco stop $ unzip alfresco-aos-module-1.1.zip $ sudo cp _vti_bin.war /opt/alfresco/tomcat/webapps/ $ sudo cp alfresco-aos-module-1.1.amp /opt/alfresco/amps $ cd /opt/alfresco/bin $ sudo ./apply_amps.sh -force $ sudo service alfresco start # Restoring database dump $ sudo service alfresco stop $ sudo /opt/alfresco/postgresql/scripts/ctl.sh start $ sudo su - postgres $ 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.dmp # Restoring content store data $ cd /opt/alfresco/alf_data $ sudo rm -rf contentstore $ sudo rm -rf contentstore.deleted $ cd solr4/ $ sudo rm -rf * $ cd .. $ sudo mv /opt/alfresco-old/alf_data/contentstore contentstore $ sudo mv /opt/alfresco-old/alf_data/contentstore.deleted contentstore.deleted $ sudo service alfresco start
Este proceso ha sido ejecutado en algo menos de 1 hora y, dado que no hemos restaurado los índices de SOLR de la copia de seguridad, ha pasado 1 hora más (dedicada al indexado de metadatos y contenidos) hasta que el sistema ha estado completamente disponible.
Por qué hemos actualizado
Además de las nuevas funcionalidades disponibles en 5.1, para nuestra organización lo más relevante es que en esta última entrega la integración con Microsoft Office 2016 es completa tanto para clientes Windows como para clientes Mac. No obstante, esta funcionalidad requiere que Alfresco utilice protocolo HTTPs, por lo que para realizar esta configuración quizá sea interesante seguir la guía que publicamos en nuestro blog hace algunos meses.
Alfresco está trabajando para que los procesos de actualización sean incluso más sencillos, aunque siguiendo el orden adecuado la actualización del software se realiza de un modo fluido.
Saludos:
Tengo problemas con la actualización. Siguiendo exactamente los mismos pasos que publicas obtengo siempre el mismo error:
2016-11-09 18:22:00,170 ERROR [org.alfresco.repo.admin.ConfigurationChecker] [localhost-startStop-1] CONTENT INTEGRITY ERROR: System content not found in content store.
2016-11-09 18:22:00,170 ERROR [org.alfresco.repo.admin.ConfigurationChecker] [localhost-startStop-1] Ensure that the ‘dir.root’ property ‘/opt/alfresco-community/alf_data’ is pointing to the correct data location.
2016-11-09 18:22:00,183 ERROR [org.springframework.web.context.ContextLoader] [localhost-startStop-1] Context initialization failed
org.alfresco.error.AlfrescoRuntimeException: 10090001 Ensure that the ‘dir.root’ property ‘/opt/alfresco-community/alf_data’ is pointing to the correct data location.
at org.alfresco.repo.admin.ConfigurationChecker.check(ConfigurationChecker.java:256)
at org.alfresco.repo.admin.ConfigurationChecker.access$0(ConfigurationChecker.java:191)
at org.alfresco.repo.admin.ConfigurationChecker$1$1.doWork(ConfigurationChecker.java:179)
at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:548)
at org.alfresco.repo.admin.ConfigurationChecker$1.execute(ConfigurationChecker.java:175)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:457)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:345)
at org.alfresco.repo.admin.ConfigurationChecker.onBootstrap(ConfigurationChecker.java:185)
at org.springframework.extensions.surf.util.AbstractLifecycleBean.onApplicationEvent(AbstractLifecycleBean.java:56)
at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEventInternal(SafeApplicationEventMulticaster.java:207)
at org.alfresco.repo.management.SafeApplicationEventMulticaster.multicastEvent(SafeApplicationEventMulticaster.java:178)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:334)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:950)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:410)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:306)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
at org.alfresco.web.app.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:63)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5524)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:672)
at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1859)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Si reinstalo la BD y el contentstore originales de la instalación nueva, el sistema sí funciona correctamente y no lanza dicho error.
Agradeceré cualquier ayuda que me puedas aportar. Mi sistema es un Linux Centos 7. Uso el paquete alfresco-community-installer-201605-linux-x64.bin para instalar la última versión. La anterior que tengo en producción es una 5.0.d
No has restaurado la base de datos o lo has hecho de una manera incorrecta: el error indica que la base de datos y el sistema de ficheros (contentstore en alf_data) no coinciden.
[…] 5.0.c a 5.1.g (201605) […]