CONGA - Usage
Preparations
Make sure you have installed:
- Java 8 or higher
- Apache Maven 3.3 or higher
Example project can be found at: https://github.com/wcm-io-devops/conga/tree/develop/tooling/conga-maven-plugin/src/it/example
Definitions
CONGA differentiates between role/template definitions and environment definitions. Although it is possible to put them all together into one single Maven project it is recommended to separate them, because they are usually maintained by separated people, see general concepts.
In this example they are separated, start with building the definitions:
cd definitions
mvn clean install
This produces an maven artifact io.wcm.devops.conga.example.definitions-1-SNAPSHOT.jar
which is installed in the local maven repository as well. It contains role definitions and file templates. It is recommended to deploy it to a central maven repository within your organization.
The role files can be found in src/main/roles
, you can also see there what configuration parameters are possible and what are their default values.
The file templates are located at src/main/templates
in folders per role. They are written using the Handlebars scripting language.
Environments
To build the real configuration files switch go to the environments folder:
cd environments
mvn clean package
This builds all configuration files for all nodes defined in the environment files. The definitions from the previous step are referenced as maven dependency.
You find the generated files at target/configuration
, they are packed as well in a ZIP file located at target
. Those files can be uploaded to the destination system (ideally in an automated fashion by using a deployment automation tool).
Next steps
- Read the general concepts
- Learn about the definition YAML files syntax in YAML definitions
- Get a quickstart introduction to Handlebars: Handlebars quickstart
Using from command line
It is possible to use CONGA outside Maven from the command line using this prepackaged JAR with all dependencies:
CONGA Command Line Interface |
This mode lacks some features like building definition artifacts, versioning etc. So it is recommended to use the Maven plugin whenever possible.