Version information
This version is compatible with:
- Puppet Enterprise 2019.8.x, 2019.7.x, 2019.5.x, 2019.4.x, 2019.3.x, 2019.2.x, 2019.1.x, 2019.0.x, 2018.1.x, 2017.3.x
- Puppet >= 5.0.0 < 7.0.0
- , ,
Start using this module
Add this module to your Puppetfile:
mod 'bstopp-aem', '3.0.0'
Learn more about managing modules with a PuppetfileDocumentation
aem - Adobe Experience Manager
Table of Contents
Module Description
Adobe Experience Manager (also known as AEM, formerly CQ5) is an enterprise content management system offered by Adobe. This puppet module provides a set of tools to ease the tasks of installing, configuring and maintaining AEM instances.
Setup
What the AEM Puppet module affects:
- AEM Installation files and directories
- Service configuration and startup files
- Listened-to ports
Note: This module modifies AEM installation directories and configuration files, overwriting any existing configurations. AEM configurations should be managed by Puppet, as unmanaged configuration files may cause unexpected behaviour.
Setup Requirements
AEM uses Ruby-based providers, so you must enable pluginsync. Java is also required to be installed on the system. Finally, due to the AEM platform being proprietary, this module does not provide the installation jar file; it must be provided by the consumer.
Beginning with AEM
A minimal AEM configuration is specified as:
aem::instance { 'aem' :
source => '/path/to/aem-quickstart.jar',
}
For more options and detailed explanations, please see the Puppet AEM Wiki.
Reference
- Public Classes
- Public Defines
- Define: aem::agent::replication
- Define: aem::agent::replication::flush
- Define: aem::agent::replication::publish
- Define: aem::agent::replication::reverse
- Define: aem::agent::replication::static
- Define: aem::crx::package
- Define: aem::dispatcher::farm
- Define: aem::instance
- Define: aem::license
- Define: aem::osgi::config
- Define: aem::service
- Public Types
- Private Defines
- Private Types
Public Classes
Class: aem::dispatcher
Installs and configures a specified AEM Dispatcher module. For more details and examples see the wiki.
Note: Currently only Apache HTTP is supported by this module.
ensure
Optional. Changes the state of the dispatcher configuration. Valid options: present
or absent
. Default: present
.
decline_root
Optional. Sets the DispatcherDelcineRoot value for the dispatcher configuration. Valid options: 0
, 1
, off
or on
. Default: off
.
dispatcher_name
Optional. Sets the name of the dispatcher in the root dispatcher farm file. Valid options: any string.
group
Optional. Sets the group for file ownership. Valid options: any valid group. Default: Apache's root group.
log_file
Optional. Sets the name and location of the dispatcher log file. Valid options: any fully qualified file name. Default: /dispatcher.log.
log_level
Optional. Sets the log level for dispatcher logging. Valid options: 0
, 1
, 2
, 3
, 4
, error
, warn
, info
, debug
, trace
. Default: warn
.
module_file
Required. Specifies which dispatcher module will be loaded. Valid options: any absolute path to file.
pass_error
Optional. Sets the DispatcherPassError value for the dispatcher configuration. Valid options: any string. Default: 0
.
use_processed_url
Optional. Sets the DispatcherUseProcessedURL value for the dispatcher configuration. Valid options: 0
, 1
, off
or on
. Default: off
.
user
Optional. Sets the user for file ownership. Valid options: any valid user. Default: root
.
Public Defines
Define: aem::agent::replication
Creates a replication Agent. Provides support for all AEM Replication agent options. For more details and examples, see the wiki. For information on AEM Replications agents, see the documentation.
name
Namevar. Required. Specifies the name of this replication agent. The name must only contain letters and numbers. This will be the node name when it is created.
title
Required. The title of the replication agent. This can be different than the name
.
ensure
Optional. Changes the state of the replication agent. Valid options: present
or absent
. Default: present
.
agent_user
Optional. The AEM/System user which is used to perform the replication actions.
batch_enabled
Optional. Sets the replication batch enabled flag. Valid options: true
or false
.
batch_max_wait
Optional. Sets the replication batch wait time. Valid options: any positive integer.
batch_trigger_size
Optional. Sets the replication batch trigger size. Valid options: any positive integer.
description
Optional. Set's the description for the agent. The default value is always part of the value. Default: **Managed by Puppet. Any changes made will be overwritten**
enabled
Optional. Sets whether or not the agent is enabled. Valid options: true
or false
. Default: true
.
force_passwords
Optional. Set's whether or not to overwrite the current password values. For more details, see the Sling Resource type's force_paswords parameter. Password properties for this type are proxy_password
and transfport_pasword
. Valid options: true
or false
. Default: false
.
home
Required. Sets the directory in which AEM exists. Valid options: any absolute path.
log_level
Optional. Sets the log level of the agent. Valid options: debug
, info
, error
. Default: info
.
password
Required. The password for authenticating to AEM.
protocol_close_conn
Optional. Sets the connection close flag . Valid options: true
or false
.
protocol_conn_timeout
Optional. Sets the connection timeout. Valid options: any positive integer.
protocol_http_headers
Optional. Sets the list of additional headers for the HTTP Request. Valid options: String or Array of Strings.
protocol_http_method
Optional. Sets the HTTP method to use for the replication request.
protocol_interface
Optional. Sets the network interface to use for the replication request.
protocol_sock_timeout
Optional. Sets the socket timeout. Valid options: any positive integer.
protocol_version
Optional. Sets the HTTP version (e.g. 1.1) to use for the replication request.
proxy_host
Optional. Sets the host for a proxy connection.
proxy_ntlm_domain
Optional. Sets the NLTM Domain for a proxy connection.
proxy_ntlm_host
Optional. Sets the NLTM host for a proxy connection.
proxy_password
Optional. Sets the password for a proxy connection.
proxy_port
Optional. Sets the port for a proxy connection. Valid options: any positive integer.
proxy_user
Optional. Sets the user for a proxy connection.
resource_type
Required. The Sling resource type for this replication agent.
retry_delay
Optional. Sets the retry delay. Valid options: any positive integer.
reverse
Optional. Sets whether or not this is a reverse replication agent. Valid options: true
or false
.
runmode
Required. Sets the runmode for persisting the Replication agent.
serialize_type
Required if ensure
is present. Sets the serialization type.
static_directory
Optional. Sets the directory for the output of a static replication agent. Valid options: any absolute path.
static_definition
Optional. Sets the static replication agent's configuration.
template
Required if ensure
is present. Sets the template resource for this replication agent.
timeout
Optional. Sets the timeout, in seconds, when waiting for a response. Valid options: any positive integer. Default: 60
.
trans_allow_exp_cert
Optional. Sets whether or not to allow expired certs on the connection. Valid options: true
or false
.
trans_ntlm_domain
Optional. Sets the transport NLTM domain.
trans_ntlm_host
Optional. Sets the transport NLTM host.
trans_password
Optional. Sets the password for authentication to the remote system.
trans_ssl
Optional. Sets whether or to enable SSL on the transport. Valid options: true
or false
.
trans_uri
Opional. Sets the URI for the remote system.
trans_user
Optional. Sets the user for authentication to the remote system.
trigger_ignore_def
Optional. Sets the Ignore default flag. Valid options: true
or false
.
trigger_no_status
Optional. Sets the No Status Update flag. Valid options: true
or false
.
trigger_no_version
Optional. Sets the No Versioning flag. Valid options: true
or false
.
trigger_on_dist
Optional. Sets the On Distribute flag. Valid options: true
or false
.
trigger_on_mod
Optional. Sets the On Modification flag. Valid options: true
or false
.
trigger_on_receive
Optional. Sets the On Receive flag. Valid options: true
or false
.
trigger_onoff_time
Optional. Sets the On/Off Time reached flag. Valid options: true
or false
.
username
Required. The username for authenticating to AEM.
Define: aem::agent::replication::flush
Creates a Flush replication agent. This definition has a limited property set based on the parameters typically required for this type of agent. For more details and examples, see the wiki. For information on AEM Replications agents, see the documentation.
name
Namevar. Required. Specifies the name of this replication agent. The name must only contain letters and numbers. This will be the node name when it is created.
title
Required. The title of the replication agent. This can be different than the name
.
ensure
Optional. Changes the state of the replication agent. Valid options: present
or absent
. Default: present
.
agent_user
Optional. The AEM/System user which is used to perform the replication actions.
description
Optional. Set's the description for the agent. The default value is always part of the value. Default: **Managed by Puppet. Any changes made will be overwritten**
enabled
Optional. Sets whether or not the agent is enabled. Valid options: true
or false
. Default: true
.
force_passwords
Optional. Set's whether or not to overwrite the current password values. For more details, see the Sling Resource type's force_paswords parameter. Password properties for this type are proxy_password
and transfport_pasword
. Valid options: true
or false
. Default: false
.
home
Required. Sets the directory in which AEM exists. Valid options: any absolute path.
log_level
Optional. Sets the log level of the agent. Valid options: debug
, info
, error
. Default: info
.
password
Required. The password for authenticating to AEM.
protocol_http_headers
Optional. Sets the list of additional headers for the HTTP Request. Valid options: String or Array of Strings. Default: [ 'CQ-Action:{action}', 'CQ-Handle:{path}', 'CQ-Path: {path}' ]
.
protocol_http_method
Optional. Sets the HTTP method to use for the replication request. Default: GET
runmode
Required. Sets the runmode for persisting the Replication agent.
timeout
Optional. Sets the timeout, in seconds, when waiting for a response. Valid options: any positive integer. Default: 60
.
trans_allow_exp_cert
Optional. Sets whether or not to allow expired certs on the connection. Valid options: true
or false
.
trans_password
Optional. Sets the password for authentication to the remote system.
trans_ssl
Optional. Sets whether or to enable SSL on the transport. Valid options: true
or false
.
trans_uri
Opional. Sets the URI for the remote system.
trans_user
Optional. Sets the user for authentication to the remote system.
trigger_ignore_def
Optional. Sets the Ignore default flag. Valid options: true
or false
.
trigger_no_status
Optional. Sets the No Status Update flag. Valid options: true
or false
.
trigger_no_version
Optional. Sets the No Versioning flag. Valid options: true
or false
.
trigger_on_dist
Optional. Sets the On Distribute flag. Valid options: true
or false
.
trigger_on_mod
Optional. Sets the On Modification flag. Valid options: true
or false
.
trigger_on_receive
Optional. Sets the On Receive flag. Valid options: true
or false
.
trigger_onoff_time
Optional. Sets the On/Off Time reached flag. Valid options: true
or false
.
username
Required. The username for authenticating to AEM.
Define: aem::agent::replication::publish
Creates a Publish replication agent. This definition has a limited property set based on the parameters typically required for this type of agent. For more details and examples, see the wiki. For information on AEM Replications agents, see the documentation.
name
Namevar. Required. Specifies the name of this replication agent. The name must only contain letters and numbers. This will be the node name when it is created.
title
Required. The title of the replication agent. This can be different than the name
.
ensure
Optional. Changes the state of the replication agent. Valid options: present
or absent
. Default: present
.
agent_user
Optional. The AEM/System user which is used to perform the replication actions.
description
Optional. Set's the description for the agent. The default value is always part of the value. Default: **Managed by Puppet. Any changes made will be overwritten**
enabled
Optional. Sets whether or not the agent is enabled. Valid options: true
or false
. Default: true
.
force_passwords
Optional. Set's whether or not to overwrite the current password values. For more details, see the Sling Resource type's force_paswords parameter. Password properties for this type are proxy_password
and transfport_pasword
. Valid options: true
or false
. Default: false
.
home
Required. Sets the directory in which AEM exists. Valid options: any absolute path.
log_level
Optional. Sets the log level of the agent. Valid options: debug
, info
, error
. Default: info
.
password
Required. The password for authenticating to AEM.
runmode
Required. Sets the runmode for persisting the Replication agent.
timeout
Optional. Sets the timeout, in seconds, when waiting for a response. Valid options: any positive integer. Default: 60
.
trans_allow_exp_cert
Optional. Sets whether or not to allow expired certs on the connection. Valid options: true
or false
.
trans_password
Optional. Sets the password for authentication to the remote system.
trans_ssl
Optional. Sets whether or to enable SSL on the transport. Valid options: true
or false
.
trans_uri
Opional. Sets the URI for the remote system.
trans_user
Optional. Sets the user for authentication to the remote system.
trigger_ignore_def
Optional. Sets the Ignore default flag. Valid options: true
or false
.
trigger_no_status
Optional. Sets the No Status Update flag. Valid options: true
or false
.
trigger_no_version
Optional. Sets the No Versioning flag. Valid options: true
or false
.
trigger_on_dist
Optional. Sets the On Distribute flag. Valid options: true
or false
.
trigger_on_mod
Optional. Sets the On Modification flag. Valid options: true
or false
.
trigger_on_receive
Optional. Sets the On Receive flag. Valid options: true
or false
.
trigger_onoff_time
Optional. Sets the On/Off Time reached flag. Valid options: true
or false
.
username
Required. The username for authenticating to AEM.
Define: aem::agent::replication::reverse
Creates a Reverse replication agent. This definition has a limited property set based on the parameters typically required for this type of agent. For more details and examples, see the wiki. For information on AEM Replications agents, see the documentation.
name
Namevar. Required. Specifies the name of this replication agent. The name must only contain letters and numbers. This will be the node name when it is created.
title
Required. The title of the replication agent. This can be different than the name
.
ensure
Optional. Changes the state of the replication agent. Valid options: present
or absent
. Default: present
.
agent_user
Optional. The AEM/System user which is used to perform the replication actions.
description
Optional. Set's the description for the agent. The default value is always part of the value. Default: **Managed by Puppet. Any changes made will be overwritten**
enabled
Optional. Sets whether or not the agent is enabled. Valid options: true
or false
. Default: true
.
force_passwords
Optional. Set's whether or not to overwrite the current password values. For more details, see the Sling Resource type's force_paswords parameter. Password properties for this type are proxy_password
and transfport_pasword
. Valid options: true
or false
. Default: false
.
home
Required. Sets the directory in which AEM exists. Valid options: any absolute path.
log_level
Optional. Sets the log level of the agent. Valid options: debug
, info
, error
. Default: info
.
password
Required. The password for authenticating to AEM.
protocol_http_method
Optional. Sets the HTTP method to use for the reverse replication request. Default: GET
runmode
Required. Sets the runmode for persisting the Replication agent.
timeout
Optional. Sets the timeout, in seconds, when waiting for a response. Valid options: any positive integer. Default: 60
.
trans_allow_exp_cert
Optional. Sets whether or not to allow expired certs on the connection. Valid options: true
or false
.
trans_password
Optional. Sets the password for authentication to the remote system.
trans_ssl
Optional. Sets whether or to enable SSL on the transport. Valid options: true
or false
.
trans_uri
Opional. Sets the URI for the remote system.
trans_user
Optional. Sets the user for authentication to the remote system.
username
Required. The username for authenticating to AEM.
Define: aem::agent::replication::static
Creates a Static replication agent. This definition has a limited property set based on the parameters typically required for this type of agent. For more details and examples, see the wiki. For information on AEM Replications agents, see the documentation.
name
Namevar. Required. Specifies the name of this replication agent. The name must only contain letters and numbers. This will be the node name when it is created.
title
Required. The title of the replication agent. This can be different than the name
.
ensure
Required. Changes the state of the replication agent. Valid options: present
or absent
. Default: present
.
agent_user
Optional. The AEM/System user which is used to perform the replication actions.
definition
Optional. Sets the static replication agent's configuration.
description
Optional. Set's the description for the agent. The default value is always part of the value. Default: **Managed by Puppet. Any changes made will be overwritten**
directory
Optional. Sets the directory for the output of a static replication agent. Valid options: any absolute path.
enabled
Optional. Sets whether or not the agent is enabled. Valid options: true
or false
. Default: true
.
home
Required. Sets the directory in which AEM exists. Valid options: any absolute path.
log_level
Optional. Sets the log level of the agent. Valid options: debug
, info
, error
. Default: info
.
password
Required. The password for authenticating to AEM.
retry_delay
Optional. Sets the retry delay. Valid options: any positive integer.
runmode
Required. Sets the runmode for persisting the Replication agent.
username
Required. The username for authenticating to AEM.
Define: aem::crx:package
Manages an AEM CRX Package; allows for saving packages via a file (in the crx-quickstart/install directory) or posted to the CRX Package Manager API. For examples, see the wiki.
name
Namevar. Required.
ensure
Required. Changes the state of this CRX Package.
present
: Uploaded but not installed; if installed will uninstall.installed
: Uploaded and installed; Equivalent topresent
when type ==file
. (Default)purged
: Uninstalled, then removed from the package manager. Equivalent toabsent
when type ==file
.absent
: Removed from the package manager.
group
Optional. Sets the group for file ownership. Valid options: any valid group. Default: aem
.
home
Required. Sets the directory in which AEM exists. Valid options: any absolute path.
pkg_group
Required if type == api
. The CRX Package group.
pkg_name
Required if type == api
. The CRX Package name.
pkg_version
Required if type == api
. The CRX Package group.
password
Required if type == api
. Sets the password of the CRX Package Manager API user. Valid options: any valid password.
source
Required. Sets the source package file to use. Valid options: any absolute path to file.
type
Required. Sets the means by which to persist the package. Valid options: api
or file
. api
will use API client to the CRX Package Manager. file
will copy the package file in the crx-quickstart/install folder.
user
Optional. Sets the user for file ownership. Valid options: any valid user. Default: aem
.
username
Required if type == api
. Sets the user for accessing the CRX Package Manager API. Valid options: any valid user.
manage_rubygems
Optional. Setting to false will stop this define managing the Ruby and rubygems installs. This is necessary if these are managed via another way, like systempackages for example.
Default: true
.
timeout
Optional. Timeout value for AEM to finish the install and reply with an OK state. Default: 60(seconds).
Define: aem::dispatcher::farm
Configures a single farm instance within the Dispatcher. For more details and examples, see the wiki.
ensure
Required. Changes the state of this dispatcher farm configuration. Valid options: present
or absent
. Default: present
.
allow_authorized
Optional. Sets the cache /allowAuthorized rule. Valid options: 0
or 1
.
allowed_clients
Optional. Sets the cache /allowedClients section. Valid options: Hash, or Array of Hashes. Default:
{
'type' => 'allow',
'glob' => '*',
}
auth_checker
Optional. Sets the /auth_checker section. Valid options: Hash. Example
{
url => '/bin/permissioncheck',
filter => [
{
'type' => 'allow',
'glob' => '*',
}
],
headers => [
{
'type' => 'allow',
'glob' => '*',
}
],
}
cache_headers
Optional. Sets the cache /headers section. Valid options: String or Array of Strings.
cache_rules
Optional. Sets the cache /rules section. Valid options: Hash, or Array of Hashes. Default:
{
'type' => 'deny',
'glob' => '*',
}
cache_ttl
Optional. Sets the cache /enableTTL rule. Valid options: 0
or 1
.
client_headers
Optional. Sets the /clientheaders rule. Valid options: String or Array of Strings. Default: *
docroot
Required. Sets the cache /docroot rule. Valid options: any absolute path.
failover
Optional. Sets the /failover rule. Valid options: 0
or 1
.
filters
Optional. Sets the /fiters section. Valid options: Hash, or Array of Hashes. Default:
{
'type' => 'allow',
'glob' => '*',
}
grace_period
Optional. Sets the cache /grace rule. Valid options: any positive integer.
ignore_parameters
Optional. Sets the cache /ignoreUrlParams section. Valid options: Hash, or Array of Hashes.
invalidate
Optional. Sets the cache /invalidate section. Valid options: Hash, or Array of Hashes. Default:
[
{
'type' => 'allow',
'glob' => '*',
}
]
invalidate_handler
Optional. Sets the cache /invalidateHandler rule. Valid options: any absolute path to file.
priority
Optional. Defines a priority for the resulting farm configuration to be included in the global dispatcher farm configuration. Farms with a lower priority will be included first. Farms with the same priority will be included in alphabetical order. Valid options are integers from 0
to 99
. Default value: 0
propagate_synd_post
Optional. Sets the /propagateSyndPost rule. Valid options: 0
or 1
.
renders
Optional. Sets the /renders section. Valid options: Hash, or Array of Hashes. Default:
{
'hostname' => 'localhost',
'port' => 4503,
}
retries
Optional. Sets the /numberOfRetries rule. Valid options: any positive integer.
retry_delay
Optional. Sets the /retryDelay rule. Valid options: any positive integer.
serve_stale
Optional. Sets the cache /serveStaleOnError rule. Valid options: 0
or 1
.
session_management
Optional. Sets the /sessionmanagement section. Valid options: Hash of values.
stat_file
Optional. Sets the cache /statfile rule. Valid options: any absolute path to file.
stat_files_level
Optional. Sets the cache /statfileslevel rule. Valid options: any integer >= 0.
statistics
Optional. Sets the /statistics section. Valid options: Hash of values.
sticky_connections
Optional. Sets the /stickyConnectionsFor rule or /stickyConnectionsFor section based on value.. Valid options: String or Array of Strings.
unavailable_penalty
Optional. Sets the /unavailablePenalty rule. Valid options: any positive integer.
vanity_urls
Optional. Sets the /vanity_urls section. Valid options: Hash of values.
virtualhosts
Optional. Sets the /virtualhosts section. Valid options: String or Array of Strings. Default: *
.
Define: aem::instance
Installs an AEM instance into your system. For more details and examples see the wiki.
When this type is declared with the default options, Puppet:
- Unpacks the specified AEM jar file.
- Configures the AEM start scripts with the default configuration options.
- Starts AEM for the first time to ensure repository creation.
- Shuts AEM down to create a consistent state.
- Defines and starts an AEM Service for the instance.
See Beginning with AEM for the minimum configuration required to create an AEM installation. It is suggested that you customize the AEM definion with the following parameters, as the default parameters are not recommended for production.
Parameters within aem::instance
:
name
Namevar. Required. Specifies the name of the AEM instance.
ensure
Optional. Changes the state of the AEM instance. Valid options: present
or absent
. Default: present
.
context_root
Optional. Specifies the URL context root for the AEM application. Sling documentation. Valid options: any valid URI path. Defaults to /
.
debug_port
Optional. Specifies the port on which to listen for remote debugging connections. Setting this will add the following JVM options: -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<<port>>
Valid options: any port number.
group
Optional. Sets the group for installation. Valid options: any valid group. Default: aem
.
home
Optional. Sets the directory in which AEM will be installed. Valid options: any absolute path. Default: /opt/aem
.
jvm_mem_opts
Optional. Specifies options for the JVM memory. This is separated from the JVM opts to simplify configurations. Valid options: any valid JVM parameter string. Default: -Xmx1024m
.
jvm_opts
Optional. Specifies options to pass to the JVM. Valid options: any valid JVM parameter string. Default: None. The following string is always passed, and cannot be overwritten: -server -Djava.awt.headless=true
manage_group
Optional. Sets whether or not this instance will manage the defined group. Valid options: true
or false
. Default: true
.
manage_home
Optional. Sets whether or not this instance will manage the defined home directory. Valid options: true
or false
. Default: true
.
manage_user
Optional. Sets whether or not this instance will manage the defined user. Valid options: true
or false
. Default: true
.
osgi_configs
Optional. Creates file type definitions of aem::osgi::config
which will be applied prior to initial AEM start. The structure can either be a hash of the properties, or a Hash specifying the pid and the properties. If only properties are specified, the key is expected to be the pid. Valid options: Hash or Array of Hash configurations.
port
Optional. Specifies the port on which AEM will listen. Valid options: any valid port. Default: 4502. Sling documentation
runmodes
Optional. Sets the array of runmodes to apply to the AEM instance. Do not use this to set options available via type
configuration, or a sample_content
state. Valid options: any string array. AEM documentation.
sample_content
Optional. Sets whether or not to include the sample content (e.g. Geometrixx). Valid options: true
or false
. Default: true
. AEM Documentation.
service_options
Optional. Hash. Sets the service options, pretty much only used for the systemd implementation. Default:
{
'TimeoutStopSec' => '4min',
'KillSignal' => 'SIGCONT',
'PrivateTmp' => true
}
snooze
Optional. Sets the wait period between checks for installation completion. When monitoring the system for up state, this is the wait period between checks. Value is specified in seconds. Valid options: any number. Default: 10
.
source
Required. Sets the source jar file to use, provided by user. Valid options: any absolute path to file.
status
Optional. Changes the state of the service on the system, defining whether or not the service starts at system boot and/or is currently running. Valid options:
enabled
: Start at boot & currently running (Default)disabled
: Not started at boot & not currently running.running
: Not started at boot but is currently running.unmanaged
: Don't manage it with service manager, running state is arbitrary.
timeout
Optional. Sets the timeout allowed for startup monitoring. If the installation doesn't finish by the timeout, an error will be generated. Value is specified in seconds. Valid option: any number. Default: 600
(10 minutes).
type
Optional. Specifies the AEM installation type. Valid options: author
or publish
. Default: author
. AEM documentation
user
Optional. Sets the user for installation. Valid options: any valid user. Default: aem
.
version
Optional. Sets the version of AEM. Informational only, does not affect installation or resource management. Valid options: any semantic version.
Define: aem::license
Manages an AEM License file. Provides a convenient tool for managing the license file contents without needing to know the structure. For examples, see the wiki.
Parameters within aem::license
:
name
Namevar. Required. Specifies the name of the AEM license.
ensure
Optional. Changes the state of the AEM license. Valid options: present
or absent
. Default: present
.
customer
Optional. Specifies the customer name for the license file. Valid options: any string
group
Optional. Sets the group for file ownership. Valid options: any valid group. Default: aem
.
home
Required. Sets the directory in which the license will be placed. Valid options: any absolute path.
license_key
Required. Sets the license key for AEM. Valid options: any string.
user
Optional. Sets the user for file ownership. Valid options: any valid user. Default: aem
.
version
Optional. Sets the version of AEM for the license file contents. Valid options: any string.
Define: aem::osgi::config
Manages an AEM OSGi Configuration; allows for saving Service/Component configurations via a file or posted to the Felix Web Console. For examples, see the wiki.
Parameters within aem::osgi::config
:
name
Namevar. Required. Specifies the name of the AEM OSGi Configuration. This should be the Service PID. Apache Felix Documentation
ensure
Optional. Changes the state of the AEM OSGi configuration. A value of absent
will delete the configuration. Valid options: present
or absent
. Default: present
.
group
Optional. Sets the group for file ownership. Valid options: any valid group. Default: aem
.
handle_missing
Required if type == console
. Determine how to handle properties which are configured in the console, but not provided. See wiki for examples. Valid options: merge
or remove
.
home
Required. Sets the directory in which AEM exists. Valid options: any absolute path.
password
Required if type == console
. Sets the password of the OSGI console user. Valid options: any valid password.
properties
Required. Sets the configuration properties to persist. Valid options: a hash of values.
type
Required. Sets the means by which to persist the configuration. Valid options: console
or file
. console
will use API calls to the OSGi Web Console. file
will persist to a properties file in the crx-quickstart/install folder.
user
Optional. Sets the user for file ownership. Valid options: any valid user. Default: aem
.
username
Required if type == console
. Sets the user for accessing the OSGI console. Valid options: any valid user.
Define: aem::service
Manages the AEM daemon. Creating a definition for this is not necessary unless the aem::instance
's manage_service is false. For examples, see the wiki
Parameters within aem::service
:
name
Namevar. Required. Specifies the name of the AEM Service.
ensure
Optional. Changes the state of the AEM Service within puppet. Valid options: present
or absent
. Default: present
.
group
Optional. Sets the group for file ownership. Valid options: any valid group. Default: aem
.
home
Required. Sets the directory in which the AEM instance exists, necessary for service configuration definition. Valid options: any absolute path.
status
Optional. Changes the state of the service on the system, defining whether or not the service starts at system boot and/or is currently running. Valid options:
enabled
: Start at boot & currently running (Default)disabled
: Not started at boot & not currently running.running
: Not started at boot but is currently running.unmanaged
: Don't manage it with service manager, running state is arbitrary.
user
Optional. Sets the user for file ownership. Valid options: any valid user. Default: aem
.
Public Types
Type: `Aem_Sling_Resource'
name
Namevar. Required. The name of this resource. A unique name or the fully qualified path to the resource in the repository.
ensure
Required. Changes the state of the Sling resource definition. Valid options: present
or absent
.
force_passwords
Optiona. Flag to specify whether or not to update password properties, they are submitted regardless of current state. Setting this will cause an update each time the agent runs.
### handle_missing
Optional. Determine how to handle properties which are specified in the repository, but not not provided. See wiki for examples. Valid options: ignore
or remove
. Default: ingore
.
home
Required. Sets the directory in which AEM exists. Valid options: any absolute path.
ignored_properties
Optional. Properties to ignore when comparing repository values against those provided. Valid options: Array of values. Default: ['jcr:created', 'jcr:createdBy', 'cq:lastModified', 'cq:lastModifiedBy']
path
Optional. Specifies the fully qualified path to the resource in the repository.
password
Required. The password for authentication to AEM.
password_properties
Optional. List of resource properties which should be ignored as passwords unless force_passwords
is true. Valid options: Array of values.
protected_properties
Optional. List of properties which cannot be updated. They will be persisted when creating, but ignored during updates. Valid options: Array of values. Default: ['jcr:primaryType']
.
username
Required. The username for authentication to AEM.
properties
Optional. Hash of properties to store in the repository. Sub hashes are created as children nodes. Hashes can be nested to an arbitrary depth. See wiki for examples. Valid options: Hash of values.
timeout
Optional. Sets the timeout, in seconds, when waiting for a response. Valid options: any positive integer. Default: 120
.
Private Defines
Define: aem::config
This define sets up the start templates to ensure the AEM instance executes with the correct state.
Define: aem::crx::package::file
This define is used to manage CRX Packages which are of type file
.
Define: aem::osgi::config::file
This define is used to manage OSGi Configurations which are of type file
.
Define: aem::package
This define unpacks the AEM Quickstart jar for preparation to configure.
Private Types
Type: aem_crx_package
This custom type manages CRX Packages which are of type api
.
Type: aem_installer
This custom type starts the AEM instance to create the base repository, monitors for it's initialization, then shuts the system down.
Type: aem_osgi_config
This custom type manages OSGi Configurations which are of type console
.
Limitations
Dependencies
The aem::dispatcher
class requires the Puppet Apache module; however since the use of this class is optional, this dependency is not declared explicitly.
OS Compatibility
This module has been tested on:
- CentOS 7, 7.2
- Ubuntu 12.04*, 14.04
- Debian 7.8*, 8.2
See Known Issues
AEM Compatibility
This module has been tested with the following AEM versions:
- 6.0
- 6.1
- 6.2
Minimum Ruby Requirement
Using the OSGi Configuration options require a Minimum ruby version of 1.9.x.
Warnings
It is up to the consumer to ensure that the correct version of Java is installed based on the AEM version. See AEM Documentation for compatibility.
Defining an AEM resource as absent will remove the instance from the system, regardless of whether or not it was originally managed by puppet.
Known Issues
Ubuntu 12.04 ships with Ruby 1.8.x; therefore the OSGi configurations acceptance tests fail.
There is an oddity with the aem::service
support on Debian: even though specifying a valid status sends the correct parameters to the underlying service resource, the service is not enabled, nor do state changes occur correctly. Acceptance tests on those Virtual Machines fail for issues with service management. See issue #36.
Development
This module in its early stages, any updates or feature additions are welcome.
Please make sure you do not include any AEM Installer jars in PRs.
Running Acceptance Tests
I ask that prior to creating PR for a new feature, unit and acceptance tests exist to ensure it's operation. Running all of the AEM acceptance tests take time, so be prepared. To assist with acceptance testing, there are a number of Beaker configurations. For more information, see the Beaker project's documentation.
To run the AEM acceptance tests, for all features against all boxes:
$ spec/acceptance/runall_aem.sh
Use the Dispatcher w/o SSL
To run just the Dispatcher acceptance tests:
$ bundle exec rspec spec/accpetance/dispatcher_acceptance_spec.rb
2017-01-26 - Release 3.0.0
Summary
Major Changes
- Dropping support for Puppet 4.x
- Adding support for Puppet 6.x and 5.x
Minor changes
- Added #108: SELinux Support
- Added #128: Systemd Service options
2019-11-02 - Release 2.6.1
Summary
Minor bug fixes:
- #124: Puppet re-run takes some time.
- #126: Search for quickstart with static lookup
- #127: AEM Installer fails if quickstart has a load version
Note: This release did not go through the standard acceptance tests typically run as that capability is currently being redesigned
2018-09-10 - Release 2.6.0
Summary
Adding Minor new features
- #117: Dispatcher secure renderers
- #119: Support invalidate and invalidate cache handler in dispatcher
- #112: Dispatcher permissions sensitive caching support
- #109: AEM Standby type support - cold standby
Note: This release did not go through the standard acceptance tests typically run as that capability is currently being redesigned
2017-10-07 - Release 2.5.0
Summary
- #97: CRX Package Timeout
- #96: Ruby Gem management flag
- #90: Literal values in OSGi Config
Bug Fixes
- #95: Provider property setup
2017-01-26 - Release 2.4.1
Summary
Bug fix release.
- Fixed #80: Multiple packages are not supported.
2017-01-19 - Release 2.4.0
Summary
- Minimum Puppet version 4.2
- Support for CRX Packages via file or API.
- Bug fix for Apache restart every Agent run when multiple farms.
- Bug fixes for Apache bindings.
- Bug fixes for Replication Agents
- Amazon Linux Service configuration
- Use new packer boxes for testing.
- Updating rubocop issues.
- Documentation updates.
Features:
- Dispatcher farms now have
priority
attribute for load ordering. - CRX Package upload, installation, removal support.
2016-06-12 - Release 2.3.2
Summary
Update to support new features in Dispatcher v4.2.
2016-06-12 - Release 2.3.1
Summary
Update to notify the Apache Service when a change occurs in any of the dispatcher files.
2016-06-12 - Release 2.3.0
Summary
Adding support for arbitrary Sling Resource creation. Also support for Replication agents; with custom type helpers.
Features:
- New
aem_sling_resource
Type for managing Sling Resources. - New
aem::agent::replication
defines for managing Replication agents with support for all attributes. - New
aem::agent::replication::publish
defines for managing Publish replication agents. - New
aem::agent::replication::flush
defines for managing Flush replication agents. - New
aem::agent::replication::reverse
defines for managing Reverse replication agents. - New
aem::agent::replication::static
defines for managing Static replication agents.
2016-01-26 - Release 2.2.1
Summary
Added ability to specify PID when configuring OSGi items. This allows multiple definitions, when more than one AEM instance exists on a server.
2016-01-12 - Release 2.2.0
Summary
Added support for Dispatcher module, Dispatcher Farms, and OSGi configurations. Significant testing updates. Also significant updates to documentation and examples.
Features:
- New
aem::dispatcher
Class for managing Dispatcher module - New
aem::dispatcher::farm
defines for defining a Dispatcher farm instance - New
aem::osgi::config
defines for creating and managing OSGi Configurations
2015-10-01 - Release 2.1.0
Summary
Adding service support; AEM instances are now automatically service enabled and started. All license types are included in resource lifecycle.
Features:
- New
aem::instance
property: status. - New
aem::service
defines. See documentation on use.
2015-09-24 - Release 2.0.1
Summary
Bug fix release.
Features:
Moved start file to templates folder to fix issue with module build.
2015-09-17 - Release 2.0.0
Summary
Fully functional AEM installation module management. Installs and allows changing of standard AEM run configuration options.
Features:
Now works in Master/Agent environment. Redesigned implementation to use DSL over custom types.
2015-07-28 - Release 1.0.0
Summary
Fully functional AEM installation module management. Installs and allows changing of standard AEM run configuration options.
Features:
- README Updates.
- Significant unit test implementations.
- Support parameters:
context_root
,debug_port
,group
,jvm_mem_opts
,jvm_opts
,port
,runmodes
,samplecontent
,snooze
,timeout
,user
,version
. - Numerous bug fixes.
2015-07-29 - Release 0.1.0
Summary
Initial release of functionality supporting definition and management of an AEM Installation.
Features:
- Specify
type
anduser
.
Dependencies
- puppetlabs/stdlib (>=4.6.0 <6.0.0)
- puppetlabs/selinux_core (>=1.0.0)
Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. "Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. "Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. "Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. "Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. "Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). "Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. "Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." "Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. 2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. 3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. 4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and (b) You must cause any modified files to carry prominent notices stating that You changed the files; and (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. 5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. 6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. 7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. 8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. 9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. END OF TERMS AND CONDITIONS APPENDIX: How to apply the Apache License to your work. To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.