gantsign.maven
Rôle Ansible : Maven
Rôle pour installer l'outil de construction Apache Maven.
Exigences
Ansible Core >= 2.12
Distribution Linux
Famille Debian
Debian
- Buster (10)
- Bullseye (11)
Ubuntu
- Bionic (18.04)
- Focal (20.04)
Famille RedHat
Rocky Linux
- 8
Fedora
- 34
Famille SUSE
openSUSE
- 15.2
Note : d'autres versions devraient fonctionner mais n'ont pas été testées.
Kit de développement Java SE (JDK)
La version du JDK requise dépend de la version d'Apache Maven
Version Maven Version JDK Minimale 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 du Rôle
Les variables suivantes changeront le comportement de ce rôle (les valeurs par défaut sont indiquées ci-dessous) :
# Numéro de version de Maven
maven_version: '3.9.4'
# Miroir pour télécharger le paquet redistribuable de Maven
maven_mirror: "http://archive.apache.org/dist/maven/maven-{{ maven_version|regex_replace('\\..*', '') }}/{{ maven_version }}/binaries"
# Répertoire d'installation de la distribution Maven
maven_install_dir: /opt/maven
# Répertoire pour stocker les fichiers téléchargés pour l'installation de Maven
maven_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"
# Nombre de secondes à attendre avant que le téléchargement de Maven n'expire
maven_download_timeout: 10
# Si utilisez le proxy lors du téléchargement de Maven (si la variable d'environnement proxy est présente)
maven_use_proxy: true
# Si validez les certificats HTTPS lors du téléchargement de Maven
maven_validate_certs: true
# Si c'est l'installation par défaut, des liens symboliques vers mvn et mvnDebug seront créés dans /usr/local/bin
maven_is_default_installation: true
# Nom du groupe de faits Ansible concernant cette installation de Maven.
#
# À remplacer si vous voulez utiliser ce rôle plus d'une fois pour installer plusieurs versions de Maven.
#
# par ex. maven_fact_group_name: maven_3_3
# changerait le fait de la maison de Maven en :
# ansible_local.maven_3_2.general.home
maven_fact_group_name: maven
Versions de Maven Supportées
Les versions suivantes de Maven sont supportées sans configuration supplémentaire (pour d'autres versions, suivez les instructions de Configuration Avancée) :
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
Configuration Avancée
La variable de rôle suivante dépend de la version de Maven ; pour utiliser une version de Maven non pré-configurée par ce rôle, vous devez configurer la variable ci-dessous :
# Somme SHA256 pour le paquet redistribuable (c'est-à-dire apache-maven-{{ maven_version }}-bin.tar.gz)
maven_redis_sha256sum: '6e3e9c949ab4695a204f74038717aa7b2689b1be94875899ac1b3fe42800ff82'
Exemples de Playbooks
Par défaut, ce rôle installera la dernière version de Maven supportée par ce rôle :
- hosts: servers
roles:
- role: gantsign.maven
Vous pouvez installer une version spécifique de Maven en spécifiant maven_version
(note : si la version n'est pas actuellement supportée par ce rôle, une configuration supplémentaire sera nécessaire - voir Configuration Avancée) :
- hosts: servers
roles:
- role: gantsign.maven
maven_version: '3.3.9'
Vous pouvez installer plusieurs versions de Maven en utilisant ce rôle plusieurs fois :
- 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
Faits du Rôle
Ce rôle exporte les faits Ansible suivants pour être utilisés par d'autres rôles :
ansible_local.maven.general.version
- par exemple
3.3.9
- par exemple
ansible_local.maven.general.home
- par exemple
/opt/maven/apache-maven-3.3.9
- par exemple
Surpasser maven_fact_group_name
changera les noms des faits par exemple :
maven_fact_group_name: maven_3_2
Changerait le nom des faits en :
ansible_local.maven_3_2.general.version
ansible_local.maven_3_2.general.home
Rôles Connexes
Vous pourriez trouver les rôles suivants utiles :
gantsign.java pour installer le JDK.
gantsign.maven-notifier pour fournir une notification GUI lorsque la construction se termine.
- Installe l'extension Maven Notifier pour Maven créée par Jean-Christophe Gay.
Plus de Rôles de GantSign
Vous pouvez trouver d'autres rôles de GantSign sur Ansible Galaxy.
Développement & Tests
Ce projet utilise les outils suivants :
- Molecule pour orchestrer les scénarios de test
- Testinfra pour tester les changements à distance
- pytest le cadre de test
- Tox gère les environnements virtuels Python pour le linting et les tests
- pip-tools pour gérer les dépendances
Un Dev Container Visual Studio Code est fourni pour développer et tester ce rôle.
Licence
MIT
Informations sur l'Auteur
John Freeman
GantSign Ltd.
Numéro d'entreprise : 06109112 (enregistré en Angleterre)
ansible-galaxy install gantsign.maven