Packer AEM is a set of Packer templates for creating Adobe Experience Manager (AEM) machine and container images, which include the following components:
author
- contains AEM Authorpublish
- contains AEM Publishdispatcher
- contains AEM Dispatcherjava
- contains Oracle JDK, to be used for running AEM Orchestrator and Chaos Monkeyauthor-publish-dispatcher
- contains AEM Author, AEM Publish, and AEM Dispatcher
The AMIs produced by Packer AEM will then be used by AEM AWS Stack Builder to create an AEM environment on AWS.
Learn more about Packer AEM:
- Installation
- Configuration
- Usage
- Testing
- AWS Resources
- AWS System Tags
- Customisation Points
- Frequently Asked Questions
- Upgrade Guide
Packer AEM is part of AEM OpenCloud platform.
-
Either clone Packer AEM
git clone https://github.com/shinesolutions/packer-aem.git
or download one of the released versions -
Install the following required tools:
Alternatively, you can use AEM Platform BuildEnv Docker image version 1.3.0 or later to run Packer AEM build targets.
-
Resolve the Puppet modules, Ruby gems, and Python packages dependencies by running
make deps
- Set up the required AWS resources
- Create configuration file
- Create the AMIs by running
make <platform>-<component> version=<version> config_path=<path/to/config/dir>
, for example:make aws-author version=1.2.3 config_path=stage/user-config/aws-rhel7-aem64/
To retrieve the latest AMI IDs for all AEM AWS Stack Builder components, run the command make ami-ids config_path=<path/to/config/dir>
, and the AMI IDs will be written into stage/stack-builder-configs/<aem_profile>-<os_type>-stack-builder-ami-ids.yaml
file(s). These files can then be dropped in to AEM AWS Stack Builder configuration path.
You can run integration test for creating the AMIs for all components using the command make test-integration test_id=<sometestid>
, which downloads the dependencies from the Internet.
If you're working on the dependencies of Packer AEM and would like to test them as part of machine images creation before pushing the changes upstream, you need to:
- Clone the dependency repos Puppet AEM Resources, Puppet AEM Curator, Puppet Amazon SSM Agent, AEM Hello World Custom Image Provisioner, AEM Hello World Config at the same directory level as Packer AEM
- Make your code changes against those dependency repos
- Run
make test-integration-local test_id=<sometestid>
for integration testing using local dependencies, which copies those local dependency repos to Packer AEM and uses them as part of the test
If you want to jump on the environment that Packer launched and you want to debug/troubleshoot it, you can modify the Makefile
and set Packer to build in debug mode by replacing packer build
command with packer build -debug
, and then run the image creation again. With debug enabled, Packer will prompt you before terminating the EC2 instance / Docker container, giving you the chance to check it.
When running in debug mode, Packer will make the private key available on the repo directory for you to use, e.g. ssh -i ec2.pem ec2-user@<ip-address>
Please read Packer Debugging for further information.