Version information
This version is compatible with:
- Puppet Enterprise 2025.3.x, 2025.2.x, 2025.1.x, 2023.8.x, 2023.7.x, 2023.6.x, 2023.5.x, 2023.4.x, 2023.3.x, 2023.2.x, 2023.1.x, 2023.0.x, 2021.7.x, 2021.6.x, 2021.5.x, 2021.4.x, 2021.3.x, 2021.2.x, 2021.1.x, 2021.0.x, 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, 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
- Puppet >= 3.8.1
- , ,
Start using this module
Add this module to your Puppetfile:
mod 'bstopp-aem', '2.0.0'
Learn more about managing modules with a PuppetfileDocumentation
aem - Adobe Experience Manager
Table of Contents
- Overview - What is the AEM module?
- Module Description - What does the module do?
- Setup - The basics of getting started with AEM module
- Usage - How to use the module
- Reference - AEM Module type and providers
- Limitations - OS compatibility, etc.
- Development - Contributing to the module
Overview
The AEM module installs, configures and manages an AEM instance.
Module Description
The AEM module introduces the aem::instance
resource which is used to manage and configure an installation of AEM utilizing the Puppet DSL.
Setup
What AEM affects
- AEM Installations may be modified by using this module. See warnings, for how existing instances are affected by enabling a this module.
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',
}
See Useage and Reference for options and detailed explanations.
Usage
AEM Resource
The aem::instance
resource definition is used to install and manage an AEM instance. An AEM installation is considered complete when the following steps have occurred:
- Unpacking the source file (See [documentation](https://docs.adobe.com/docs/en/aem/6-1/deploy/custom-standalone-install.html#Further options available from the Quickstart file).)
- Configuring the start script (See documentation.)
- Starting & Stopping the server, creating base repository. This does not create a service.
Configuring an AEM installation where an unmanaged one exists is undefined.
Minimal Definition
This is the minimal required aem::instance
resource definition to install AEM. The default property values will be used, and the installation user:group will be aem:aem
. This user and group will be created. The AEM instance will be installed to /opt/aem
, which will also be created.
aem::instance { 'aem' :
source => '/path/to/aem-quickstart.jar',
}
Specific User/Group Example
You can optionally specify either a user and/or group to own the installation. This user and/or group will be used when executing the installation process. (Normal policies apply, see Puppet Provider execute(*args) DSL defintion.)
aem::instance { 'aem' :
source => '/path/to/aem-quickstart.jar',
user => 'vagrant',
group => 'vagrant',
}
Specify type Example
You can specify the type of AEM installation to create. This is either author
or publish
. Although changing the defintion will update the associated configuration script, it will have no impact on the operation of the AEM instance. (See [AEM documentation](https://docs.adobe.com/docs/en/aem/6-1/deploy/configuring/configure-runmodes.html#Installation Run Modes))
aem::instance { 'aem' :
source => '/path/to/aem-quickstart.jar',
type => 'publish',
}
Specify port Example
You can specify the port on which AEM will listen. (See [AEM documentation](https://docs.adobe.com/docs/en/aem/6-1/deploy/custom-standalone-install.html#Changing the Port Number by Renaming the File))
aem::instance { 'aem' :
source => '/path/to/aem-quickstart.jar',
port => 8080,
}
Specify runmodes Example
You can specify additional runmodes for the AEM instance. (See [AEM documentation](https://docs.adobe.com/docs/en/aem/6-1/deploy/configuring/configure-runmodes.html#Customized Run Modes))
aem::instance { 'aem' :
source => '/path/to/aem-quickstart.jar',
runmodes => ['dev', 'server', 'mock'],
}
Specify samplecontent Example
You can disable the sample content (Geometrixx) that comes with AEM. (See [AEM documentation](https://docs.adobe.com/docs/en/aem/6-1/deploy/configuring/configure-runmodes.html#Using samplecontent and nosamplecontent))
aem::instance { 'aem' :
source => '/path/to/aem-quickstart.jar',
sample_content => false,
}
Specify License Example
This is an example for defining an AEM instance, and a license.
# Add Instance
aem::instance { 'aem' :
source => '/path/to/aem-quickstart.jar',
sample_content => false,
}
# Add License
aem::license { 'aem' :
customer => 'Customer Name',
home => '/opt/aem',
license_key => 'enter-your-key-here',
version => '6.1.0',
}
# Ensure Instance before License (home must exist)
Aem::Instance['aem'] -> Aem::License['aem']
Reference
Public Defines
Define: aem::instance
This type enables you to manage AEM instances within Puppet. Declare one aem::instance
per managed AEM server desired.
Parametrs within aem::instance
:
name
Namevar. Required. Specifies the name of the AEM instance.
ensure
Optional. Changes the state of the AEM instance. Valid values are present
or absent
. Default: present
.
context_root
Optional. Specifies the URL context root for the AEM application. Sling documentation. 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 system 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 -XX:MaxPermSize=256M
.
jvm_opts
Optional. Specifies options to pass to the JVM. Valid options: any valid JVM parameter string. Default: None, but the following value 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
.
port
Optional. Specifies the port on which AEM will listen. Valid options: any valid port. Default: 4502. [AEM documentation](https://docs.adobe.com/docs/en/aem/6-1/deploy/custom-standalone-install.html#Changing the Port Number by Renaming the File)
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](https://docs.adobe.com/docs/en/aem/6-1/deploy/configuring/configure-runmodes.html#Using samplecontent and nosamplecontent).
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 file.
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
.
type
Optional. Specifies the AEM installation type. Valid options: author
or publish
. Default: author
. [AEM documentation](https://docs.adobe.com/docs/en/aem/6-1/deploy/configuring/configure-runmodes.html#Installation Run Modes)
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
This type enables you to manage AEM license. Declare one aem::license
per managed AEM server.
Parametrs within aem::license
:
name
Namevar. Required. Specifies the name of the AEM license.
ensure
Optional. Changes the state of the AEM license. Valid values are present
or absent
. Default: present
.
customer
Optional. Specifies the customer name for the license file.
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 system path.
license_key
Required. Sets the license key for AEM. Valid options: any string.
user
Optional. Sets the user for 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.
Private Defines
Define: aem::package
This define unpacks the AEM Quickstart jar for prepartion to configure.
Define: aem::config
This define sets up the start templates to ensure the AEM instance executes with the correct state.
Private Types
Type: aem_installer
This custom type starts the AEM instance to create the base repository, monitors for it's initalization, then shuts the system down.
Limitations
OS Compatibility
This module has been tested on:
- CentOS 6, 7
- Ubuntu 12.04, 14.04
- Debian 6.0, 7.8
AEM Compatibility
This module has been tested with the following AEM versions:
- 6.0
- 6.1
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.
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.
Types in this module release
##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.x)
Puppet AEM Module - Manage your AEM Instances. Copyright 2015 Bryan Stopp (bryan.stopp@gmail.com) 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.