Skip to content
This repository has been archived by the owner on Oct 21, 2020. It is now read-only.

Alfresco Components

Enzo Rivello edited this page Aug 30, 2016 · 2 revisions

For each component, chef-alfresco may include external Chef cookbooks and/or change some attribute's defaults; the logic is implemented in the Chef-Alfresco default recipe

tomcat

Installs and configures Apache Tomcat using a fork of Tomcat community cookbook:

  • Supports single multi-homed installations (default), allowing Alfresco Repository, Share and Solr to run on 3 (or 2) different Java virtual machines
  • Supports versions 6 and 7 (default), depending on Alfresco version
  • Standard Apache Tomcat installation using apt-get or yum repositories
  • Configurable SSL keystore/truststore in server.xml

The complete list of configurable attributes can be found in tomcat attributes; java configuration is included in the default attribute file

mysql

Installs and configures a local instance MySQL 5.6 Community Server, creates a database and a granted user; hereby the default configuration:

"alfresco" : {
  "db" : {
    "repo_hosts" : "%",
    "root_user": "root",
    "server_root_password" : "ilikerandompasswords"
  },
  "properties" : {
    "db.prefix": "mysql",
    "db.dbname" : "alfresco",
    "db.host": "localhost",
    "db.port" : "3306",
    "db.username" : "alfresco",
    "db.password" : "alfresco"
  }
}

repo

Installs Alfresco Repository within a given Servlet container; the following features are provided.

WAR installation

Fetch Alfresco WAR from a public/private Maven repository, URL or file-system (using artifact-deployer); by default, Chef Alfresco will fetch Alfresco Repository 5.1.1 WAR, but you can override Maven coordinates to fetch your custom artifact (or define a url/path , check artifact-deployer docs); since the WAR already includes log4j.properties and alfresco-global.properties, we need to disable the file generation features

"artifacts": {
  "alfresco": {
    "groupId": "com.acme.alfresco",
    "artifactId": "alfresco-enterprise-foundation",
    "version": "1.0.2"
  }
}
AMP installation

Resolve (and apply) Alfresco AMP files (as above, using artifact-deployer)

"artifacts": {
  "my-amp": {
      "enabled": true,
      "path": "/mypath/my-amp/target/my-amp.amp",
      "destination": "/var/lib/tomcat7/amps",
      "owner": "tomcat7"
  }
}
alfresco-global.properties generation

Generates alfresco-global.properties depending on attribute values:

"alfresco": {
  "properties": {
    "db.host"               : "db.mysql.demo.acme.com",
    "dir.license.external"  : "/alflicense",
    "index.subsystem.name"  : "lucene"
  }
}

You can disable this feature (i.e. if you ship alfresco-global.properties within your WAR) by defining the following attribute:

"alfresco": {
  "generate.global.properties": false
}
repo-log4j.properties generation

Generates repo-log4j.properties depending on attribute values:

"alfresco": {
  "repo-log4j": {
    "log4j.rootLogger"                                : "error, File",
    "log4j.appender.File"                             : "org.apache.log4j.DailyRollingFileAppender",
    "log4j.appender.File.Append"                      : "true",
    "log4j.appender.File.DatePattern"                 : "'.'yyyy-MM-dd",
    "log4j.appender.File.layout"                      : "org.apache.log4j.PatternLayout",
    "log4j.appender.File.layout.ConversionPattern"    : "%d{ABSOLUTE} %-5p [%c] %m%n"
  }
}

You can disable this feature (i.e. if you ship a log4j.properties within your WAR) by defining the following attribute:

"alfresco": {
  "generate.repo.log4j.properties": false
}
JDBC Drivers

The JDBC driver JAR is downloaded and placed into the Tomcat lib folder, depending on node['alfresco']['properties']['db.prefix'] attribute; currently mysql and psql are supported.

share

Installs Alfresco Share application within a given Servlet container; the following features are provided:

share-config-custom.xml filtering

Generates (by default) shared/classes/alfresco/web-extension/share-config-custom.xml from a standard template, configuring CSRF origin/referer and endpoints pointing to Alfresco Repository:

"alfresco": {
  "shareproperties": {
    "alfresco.host"         : "my.repo.host.com",
    "alfresco.port"         : "80"
  }
}

You can optionally patch an existing share-config-custom.xml replacing all @@key@@ (term delimiters are configurable) occurrences with attribute values of node['alfresco']['shareproperties'] values; to enable this feature you must define the following attributes:

"alfresco": {
  "patch.share.config.custom" : false,
  "generate.share.config.custom" : true
  }
}

solr

Installs Alfresco Solr application within a given Servlet container; the following features are provided:

solrcore.properties generation

Generate solr/workspace-SpacesStore/conf/solrcore.properties and solr/archive-SpacesStore/conf/solrcore.properties depending on attribute values:

"alfresco": {
  "solrproperties": {
    "alfresco.host"         : "my.repo.host.com",
    "alfresco.port"         : "80"
  }
}
log4j-solr.properties generation

Generates log4j-solr.properties depending on attributes defined in node['alfresco']['solr-log4j']

transform

Uses alfresco::transformations Chef recipe to install the following packages:

  • openoffice
  • imagemagick
  • swftools

media

Installs and configures Alfresco media-management; since the feature is currently only available via Alfresco Customer Success website, you must download it first to a known Maven Repo or HTTP location and override the following attributes:

"alfresco" : {
  "components" : ['haproxy','nginx','tomcat','transform','repo','share','solr','mysql','rm','googledocs','media']
}
"media" : {
  # "url" : "<url_to_media_zip_distro>",
  "groupId" : "my_media_group_id",
  "artifactId" : "my_media_distribution",
  "version" : "0.0.1",
  "type" : "zip"
}

analytics

Installs and configures Alfresco analytics; as per media, you must download the zip distribution package and serve it via HTTP or Maven repo; attribute values are shown below:

attributes: {
  "alfresco" : {
    "components" : ['haproxy','nginx','tomcat','transform','repo','share','solr','mysql','rm','googledocs','analytics'],
  "artifacts" : {
    "analytics" : {
      "url" : "<url_to_analytics_alfresco_zip_distro>"
    },
    "alfresco-pentaho" : {
      "url" : "<url_to_alfresco_pentaho_zip_distro>"
    }
  }
}

rm

Installs Alfresco Records Management, using Alfresco RM 2.3 AMP,

googledocs

Installs Alfresco Googledocs, using Alfresco Googledocs 3.0.2 repo and share AMPs,

haproxy

HAproxy is installed as OS package (using haproxy community cookbook) and configured using attributes defined in haproxy.rb attribute file

This component will also install Rsyslog server, used to dump haproxy logs into /var/log/haproxy/haproxy/log

nginx

Nginx is installed as OS package (using nginx community cookbook) and configured using attributes defined in nginx.rb attribute file

rsyslog

Configures and runs an rsyslog standalone installation, which logs locally by default; you can set node['rsyslog']['server_ip'] to configure the remote server to send logs to; for more info check the rsyslog community cookbook

logstash-forwarder

Configures and runs an logstash-forwarder to ship logs to a remote logstash server; you can set node['logstash-forwarder']['logstash_servers'] to configure the remote server to send logs to; for more info check the logstash community cookbook