-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into add_local_type
- Loading branch information
Showing
1 changed file
with
53 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,6 +10,10 @@ It's based on the [AEM Compose](https://github.com/wttech/aemc) tool and aims to | |
|
||
Published in [Terraform Registry](https://registry.terraform.io/providers/wttech/aem/latest/docs). | ||
|
||
# References | ||
|
||
* Talk at AdaptTo 2024 Conference - [First-ever IaC Providers for AEM](https://adapt.to/2024/schedule/lightning-talks/first-ever-iaac-providers-for-aem) by [Krystian Panek](mailto:[email protected]) | ||
|
||
## Purpose | ||
|
||
The main purpose of this provider is to enable users to: | ||
|
@@ -26,6 +30,55 @@ The main purpose of this provider is to enable users to: | |
- Seamless integration with Terraform for infrastructure provisioning | ||
- Based on the powerful [AEM Compose](https://github.com/wttech/aemc) tool | ||
|
||
## Overview | ||
|
||
Provides an AEM instance resource to set up one or more AEM instances on virtual machines in the cloud or bare metal machines. | ||
Below configuration is a generic example of how to use the provider: | ||
|
||
```hcl | ||
resource "aem_instance" "single" { | ||
depends_on = [] // for example: [aws_instance.aem_single, aws_volume_attachment.aem_single_data] | ||
// see available connection types: https://github.com/wttech/terraform-provider-aem/blob/main/internal/client/client_manager.go | ||
client { | ||
type = "<type>" // 'aws-ssm' or 'ssh' | ||
settings = { | ||
// type-specific values goes here | ||
} | ||
credentials = { | ||
// type-specific values goes here | ||
} | ||
} | ||
system { | ||
bootstrap = { | ||
inline = [ | ||
// commands to execute only once on the machine (not idempotent) | ||
] | ||
} | ||
} | ||
compose { | ||
create = { | ||
inline = [ | ||
// commands to execute before launching AEM instances (idempotent) | ||
// for downloading AEM files, etc. | ||
] | ||
} | ||
configure = { | ||
inline = [ | ||
// commands to execute after launching AEM instances (idempotent) | ||
// for provisioning AEM instances: setting replication agents, installing packages, etc. | ||
] | ||
} | ||
} | ||
} | ||
output "aem_instances" { | ||
value = aem_instance.single.instances | ||
} | ||
``` | ||
|
||
## Quickstart | ||
|
||
The easiest way to get started is to review, copy and adapt provided examples: | ||
|