gantsign.maven
Rol de Ansible: Maven
Rol para instalar la herramienta de construcción Apache Maven.
Requisitos
Ansible Core >= 2.12
Distribución de Linux
Familia Debian
Debian
- Buster (10)
- Bullseye (11)
Ubuntu
- Bionic (18.04)
- Focal (20.04)
Familia RedHat
Rocky Linux
- 8
Fedora
- 34
Familia SUSE
openSUSE
- 15.2
Nota: otras versiones probablemente funcionen pero no han sido probadas.
Kit de Desarrollo de Java SE (JDK)
La versión requerida del JDK depende de la versión de Apache Maven
Versión de Maven Versión mínima de JDK 3.9.x 8 3.8.x 7 3.6.x 7 3.5.x 7 3.3.x 7 3.2.x 6 3.1.x 5
Variables de la Rol
Las siguientes variables cambiarán el comportamiento de esta rol (los valores predeterminados se muestran a continuación):
# Número de versión de Maven
maven_version: '3.9.4'
# Espejo para descargar el paquete redistribuible de Maven
maven_mirror: "http://archive.apache.org/dist/maven/maven-{{ maven_version|regex_replace('\\..*', '') }}/{{ maven_version }}/binaries"
# Directorio base de instalación de la distribución de Maven
maven_install_dir: /opt/maven
# Directorio para almacenar archivos descargados para la instalación de Maven
maven_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"
# El número de segundos a esperar antes de que se agote el tiempo de descarga de Maven
maven_download_timeout: 10
# Si se debe usar el proxy al descargar Maven (si la variable de entorno del proxy está presente)
maven_use_proxy: true
# Si se deben validar los certificados HTTPS al descargar Maven
maven_validate_certs: true
# Si esta es la instalación predeterminada, se crearán enlaces simbólicos a mvn y mvnDebug en /usr/local/bin
maven_is_default_installation: true
# Nombre del grupo de hechos de Ansible relacionado con esta instalación de Maven.
#
# Sobrescribir si deseas usar esta rol más de una vez para instalar múltiples versiones
# de Maven.
#
# Por ejemplo, maven_fact_group_name: maven_3_3
# cambiaría el hecho de Maven home a:
# ansible_local.maven_3_2.general.home
maven_fact_group_name: maven
Versiones de Maven Soportadas
Las siguientes versiones de Maven son soportadas sin ninguna configuración adicional (para otras versiones sigue las instrucciones de Configuración Avanzada):
3.9.4
3.9.3
3.9.2
3.9.1
3.9.0
3.8.8
3.8.7
3.8.6
3.8.5
3.8.4
3.8.3
3.8.2
3.8.1
3.6.3
3.6.2
3.6.1
3.6.0
3.5.4
3.5.3
3.5.2
3.5.0
3.3.9
3.2.5
3.1.1
Configuración Avanzada
La siguiente variable de rol depende de la versión de Maven; para usar una versión de Maven no preconfigurada por esta rol, debes configurar la variable a continuación:
# Suma SHA256 para el paquete redistribuible (es decir, apache-maven-{{ maven_version }}-bin.tar.gz)
maven_redis_sha256sum: '6e3e9c949ab4695a204f74038717aa7b2689b1be94875899ac1b3fe42800ff82'
Ejemplos de Playbooks
Por defecto, esta rol instalará la última versión de Maven soportada por esta rol:
- hosts: servers
roles:
- role: gantsign.maven
Puedes instalar una versión específica de Maven especificando el maven_version
(nota: si la versión no está actualmente soportada por esta rol, será necesaria una configuración adicional - ver Configuración Avanzada):
- hosts: servers
roles:
- role: gantsign.maven
maven_version: '3.3.9'
Puedes instalar múltiples versiones de Maven utilizando esta rol más de una vez:
- hosts: servers
roles:
- role: gantsign.maven
maven_version: '3.3.9'
maven_is_default_installation: true
maven_fact_group_name: maven
- role: gantsign.maven
maven_version: '3.2.5'
maven_is_default_installation: false
maven_fact_group_name: maven_3_2
Hechos de la Rol
Esta rol exporta los siguientes hechos de Ansible para su uso por otras roles:
ansible_local.maven.general.version
- por ejemplo,
3.3.9
- por ejemplo,
ansible_local.maven.general.home
- por ejemplo,
/opt/maven/apache-maven-3.3.9
- por ejemplo,
Sobrescribir maven_fact_group_name
cambiará los nombres de los hechos, por ejemplo:
maven_fact_group_name: maven_3_2
cambiaría el nombre de los hechos a:
ansible_local.maven_3_2.general.version
ansible_local.maven_3_2.general.home
Roles Relacionados
Puede que encuentres útiles los siguientes roles relacionados:
gantsign.java para instalar el JDK.
gantsign.maven-notifier para proporcionar una notificación GUI cuando finaliza una construcción.
- Instala la extensión Maven Notifier para Maven escrita por Jean-Christophe Gay.
Más Roles de GantSign
Puedes encontrar más roles de GantSign en Ansible Galaxy.
Desarrollo y Pruebas
Este proyecto utiliza las siguientes herramientas:
- Molecule para orquestar escenarios de prueba.
- Testinfra para probar los cambios en el remoto.
- pytest el marco de pruebas.
- Tox administra entornos virtuales de Python para análisis y pruebas.
- pip-tools para administrar las dependencias.
Se proporciona un Contenedor de Desarrollo de Visual Studio Code para desarrollar y probar esta rol.
Licencia
MIT
Información del Autor
John Freeman
GantSign Ltd.
Número de empresa 06109112 (registrada en Inglaterra)
ansible-galaxy install gantsign.maven