wcm_io_devops.conga_maven
wcm_io_devops.conga_maven
Este rol genera la configuración para un entorno CONGA ejecutando Maven. El rol puede utilizar una definición de configuración (por ejemplo, en el mismo repositorio que la configuración de Ansible) o un repositorio Git de configuración, que el rol clonará y actualizará según sea necesario.
Este rol fue desarrollado como parte de la Automatización Ansible DevOps de wcm.io para AEM para integrar Ansible con CONGA.
Requisitos
Este rol requiere que Maven esté instalado y opcionalmente Git si deseas que el rol utilice un repositorio Git para la configuración. Tanto Maven como Git deben estar correctamente preconfigurados para poder acceder a los repositorios y artefactos utilizados en la configuración de CONGA. Actualmente, este rol debe ejecutarse en el host de Ansible (es decir, localhost) ya que wcm_io_devops.conga_facts se implementa como un plugin de acción que siempre se ejecuta de forma local. Por lo tanto, para que el plugin pueda leer la configuración generada por este rol, este rol también debe ejecutarse localmente.
Variables del rol
Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml
):
# Nombre del entorno CONGA para el cual generar la configuración
conga_environment
Por defecto, el rol utiliza la variable conga_environment
para compilar únicamente la configuración para el entorno especificado por esta variable. Sin embargo, la idea general es que uses esta variable en toda tu configuración Ansible-CONGA para dirigirte a un solo entorno.
# Directorio base de la configuración de CONGA
conga_basedir
Cuando no se utiliza un repositorio de configuración Git, la variable conga_basedir
debe apuntar al directorio base de la definición de configuración de CONGA (donde se encuentra el pom.xml). De lo contrario, se construye automáticamente a partir de las variables conga_maven_git_root
y conga_maven_root
.
# URI del repositorio Git de configuración
conga_maven_git_repo: "https://github.com/wcm-io-devops/conga.git"
# Directorio para clonar la configuración
conga_maven_git_root: /tmp/git
# Rama a clonar
conga_maven_git_branch: develop
Si deseas utilizar un repositorio de configuración Git, necesitas al menos establecer la variable conga_maven_git_repo
. Si no se establece, se omitirá la parte de Git del rol y deberás establecer la variable conga_basedir
manualmente.
# Ruta raíz de la configuración de CONGA
conga_maven_root: configuration
# Comando Maven a ejecutar
conga_maven_cmd: mvn
# Opciones de Maven (ejecutar en modo por lotes, actualizar instantáneas y compilar solo un entorno)
conga_maven_opts: "-B -U -Dconga.environments={{ conga_environment }}"
# Ruta de un archivo de configuración personalizado para usar al ejecutar Maven
conga_maven_settings: ~/.m2/settings.xml
# Ruta al archivo de contraseña de Vault, predeterminado a la configuración de Ansible
conga_maven_vault_password_file: "{{ lookup('config', 'DEFAULT_VAULT_PASSWORD_FILE') }}"
Estas variables te permiten personalizar la forma en que se ejecuta Maven, por ejemplo, proporcionando una ruta completa para el ejecutable de Maven o proporcionando un archivo de configuración personalizado.
Dependencias
Este rol no depende directamente de otros roles, pero se supone que se utilizará en combinación con el rol/plugin wcm_io_devops.conga_facts que analiza el modelo de configuración de CONGA y lo expone como variables de Ansible. Para que esto funcione, la variable conga_basedir
debe apuntar a la raíz del directorio de configuración de CONGA.
Ejemplo de Playbook
Generar una configuración de ejemplo de CONGA para el entorno
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 }
Generar configuración de CONGA para el entorno
dev
desde el directorio 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