-
Notifications
You must be signed in to change notification settings - Fork 24
Alfresco Components
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
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
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"
}
}
Installs Alfresco Repository within a given Servlet container; the following features are provided.
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"
}
}
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"
}
}
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
}
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
}
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.
Installs Alfresco Share application within a given Servlet container; the following features are provided:
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
}
}
Installs Alfresco Solr application within a given Servlet container; the following features are provided:
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"
}
}
Generates log4j-solr.properties depending on attributes defined in node['alfresco']['solr-log4j']
Uses alfresco::transformations
Chef recipe to install the following packages:
- openoffice
- imagemagick
- swftools
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"
}
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>"
}
}
}
Installs Alfresco Records Management, using Alfresco RM 2.3 AMP,
Installs Alfresco Googledocs, using Alfresco Googledocs 3.0.2 repo and share AMPs,
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 is installed as OS package (using nginx community cookbook) and configured using attributes defined in nginx.rb attribute file
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
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