wcm_io_devops.conga_maven
wcm_io_devops.conga_maven
Ce rôle génère la configuration pour un environnement CONGA en exécutant Maven. Le rôle peut utiliser soit une définition de configuration (par exemple, dans le même dépôt que la configuration Ansible), soit un dépôt Git de configuration que le rôle clonera et mettra à jour si nécessaire.
Ce rôle a été développé dans le cadre de l' Automatisation Ansible DevOps wcm.io pour AEM afin d'intégrer Ansible avec CONGA.
Exigences
Ce rôle nécessite que Maven soit installé et, éventuellement, Git si vous souhaitez que le rôle utilise un dépôt Git pour la configuration. À la fois Maven et Git doivent être correctement configurés pour pouvoir accéder aux dépôts et artefacts utilisés dans la configuration CONGA. Actuellement, ce rôle doit être exécuté sur l'hôte Ansible (c'est-à-dire localhost), car wcm_io_devops.conga_facts est implémenté comme un plugin d'action qui est toujours exécuté localement. Donc, pour que le plugin puisse lire la configuration générée par ce rôle, ce rôle doit également s'exécuter localement.
Variables du rôle
Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml
) :
# Nom de l'environnement CONGA pour lequel générer la configuration
conga_environment
Par défaut, le rôle utilise la variable conga_environment
pour ne compiler que la configuration pour l'environnement spécifié par cette variable. Cependant, l'idée générale est que vous utilisez cette variable dans tout votre setup Ansible-CONGA pour cibler un seul environnement.
# Répertoire de base de la configuration CONGA
conga_basedir
Lorsque vous n'utilisez pas un dépôt Git de configuration, la variable conga_basedir
doit pointer vers le répertoire de base de la définition de configuration CONGA (où se trouve le pom.xml). Sinon, il est automatiquement construit à partir des variables conga_maven_git_root
et conga_maven_root
.
# URI du dépôt Git de configuration
conga_maven_git_repo: "https://github.com/wcm-io-devops/conga.git"
# Répertoire dans lequel cloner la configuration
conga_maven_git_root: /tmp/git
# Branche à vérifier
conga_maven_git_branch: develop
Si vous souhaitez utiliser un dépôt Git de configuration, vous devez au moins définir la variable conga_maven_git_repo
. Si elle n'est pas définie, la partie Git du rôle sera ignorée et vous devrez définir la variable conga_basedir
manuellement.
# Chemin racine de la configuration CONGA
conga_maven_root: configuration
# Commande Maven à exécuter
conga_maven_cmd: mvn
# Options Maven (exécuter en mode batch, mettre à jour les snapshots et ne compiler qu'un seul environnement)
conga_maven_opts: "-B -U -Dconga.environments={{ conga_environment }}"
# Chemin d'un fichier de paramètres personnalisé à utiliser lors de l'exécution de Maven
conga_maven_settings: ~/.m2/settings.xml
# Chemin vers le fichier de mot de passe Vault, par défaut à la configuration Ansible
conga_maven_vault_password_file: "{{ lookup('config', 'DEFAULT_VAULT_PASSWORD_FILE') }}"
Ces variables vous permettent de personnaliser la façon dont Maven est exécuté, par exemple en fournissant un chemin complet pour l'exécutable Maven ou en fournissant un fichier de paramètres personnalisé.
Dépendances
Ce rôle ne dépend pas directement d'autres rôles, mais il est supposé être utilisé en combinaison avec le rôle/plugin wcm_io_devops.conga_facts qui analyse le modèle de configuration CONGA et l'expose en tant que variables Ansible. Pour que cela fonctionne, la variable conga_basedir
doit pointer vers la racine du répertoire de configuration CONGA.
Exemple de Playbook
Générer la configuration d'exemple CONGA pour l'environnement
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 }
Générer la configuration CONGA pour l'environnement
dev
à partir du répertoire localconfig-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