wcm_io_devops.conga_maven
wcm_io_devops.conga_maven
Diese Rolle erzeugt die Konfiguration für eine CONGA Umgebung, indem sie Maven ausführt. Die Rolle kann entweder eine Konfigurationsdefinition verwenden (z.B. im selben Repository wie das Ansible-Setup) oder ein Konfigurations-Git-Repository, das die Rolle klonen und bei Bedarf aktualisieren kann.
Diese Rolle wurde im Rahmen der wcm.io DevOps Ansible Automation für AEM entwickelt, um Ansible mit CONGA zu integrieren.
Voraussetzungen
Diese Rolle erfordert die Installation von Maven und optional Git, falls die Rolle ein Git-Repository für die Konfiguration nutzen soll. Sowohl Maven als auch Git müssen richtig vorkonfiguriert sein, um auf die in der CONGA-Installation verwendeten Repositories und Artefakte zugreifen zu können. Aktuell muss diese Rolle auf dem Ansible-Host (d.h. localhost) ausgeführt werden, da wcm_io_devops.conga_facts als Aktions-Plugin implementiert ist, das immer lokal ausgeführt wird. Damit das Plugin die von dieser Rolle generierte Konfiguration lesen kann, muss auch diese Rolle lokal ausgeführt werden.
Rollenvariablen
Verfügbare Variablen sind unten aufgeführt, zusammen mit ihren Standardwerten (siehe defaults/main.yml
):
# Name der CONGA-Umgebung, für die die Konfiguration generiert werden soll
conga_environment
Standardmäßig verwendet die Rolle die Variable conga_environment
, um nur die Konfiguration für die von dieser Variable angegebene Umgebung zu kompilieren. Die allgemeine Idee ist jedoch, dass Sie diese Variable in Ihrem gesamten Ansible-CONGA-Setup verwenden, um auf eine einzelne Umgebung abzuzielen.
# Basisverzeichnis der CONGA-Konfiguration
conga_basedir
Wenn kein Git-Konfigurationsrepository verwendet wird, muss die Variable conga_basedir
auf das Basisverzeichnis der CONGA-Konfigurationsdefinition (wo sich die pom.xml befindet) zeigen. Andernfalls wird es automatisch aus den Variablen conga_maven_git_root
und conga_maven_root
erstellt.
# URI des Konfigurations-Git-Repos
conga_maven_git_repo: "https://github.com/wcm-io-devops/conga.git"
# Verzeichnis, in das die Konfiguration geklont werden soll
conga_maven_git_root: /tmp/git
# Branch, der ausgecheckt werden soll
conga_maven_git_branch: develop
Wenn Sie ein Git-Konfigurationsrepository verwenden möchten, müssen Sie mindestens die Variable conga_maven_git_repo
festlegen. Wenn sie nicht festgelegt ist, wird der Git-Teil der Rolle übersprungen und Sie müssen die Variable conga_basedir
manuell festlegen.
# Stammverzeichnis der CONGA-Konfiguration
conga_maven_root: configuration
# Maven-Befehl, der ausgeführt werden soll
conga_maven_cmd: mvn
# Maven-Optionen (im Batch-Modus ausführen, Snapshots aktualisieren und nur eine einzelne Umgebung kompilieren)
conga_maven_opts: "-B -U -Dconga.environments={{ conga_environment }}"
# Pfad zu einer benutzerdefinierten Einstellungsdatei, die bei der Ausführung von Maven verwendet werden soll
conga_maven_settings: ~/.m2/settings.xml
# Pfad zur Vault-Passwortdatei, standardmäßig auf die Ansible-Konfiguration
conga_maven_vault_password_file: "{{ lookup('config', 'DEFAULT_VAULT_PASSWORD_FILE') }}"
Diese Variablen ermöglichen es Ihnen, die Art und Weise zu ändern, wie Maven ausgeführt wird, z.B. einen vollständigen Pfad für die Maven-Binärdatei anzugeben oder eine benutzerdefinierte Einstellungsdatei bereitzustellen.
Abhängigkeiten
Diese Rolle hängt nicht direkt von anderen Rollen ab, sondern soll in Kombination mit der Rolle/Plugin wcm_io_devops.conga_facts verwendet werden, das das CONGA-Konfigurationsmodell analysiert und es als Ansible-Variablen bereitstellt. Damit dies funktioniert, muss die Variable conga_basedir
auf das Root-Verzeichnis der CONGA-Konfigurationsverzeichnis zeigen.
Beispiel-Playbook
Generiere die CONGA-Beispielkonfiguration für die Umgebung
prod
:- hosts: localhost vars: conga_environment: prod roles: - { role: wcm_io_devops.conga_maven, conga_maven_git_repo: "https://github.com/wcm-io-devops/conga.git", conga_maven_git_branch: master, conga_maven_root: example }
Generiere die CONGA-Konfiguration für die Umgebung
dev
aus dem lokalen Verzeichnisconfig-definition
:- hosts: localhost vars: conga_environment: dev roles: - { role: wcm_io_devops.conga_maven, conga_basedir: config-definition }
ansible-galaxy install wcm_io_devops.conga_maven