maven
Роль Ansible: Maven
Роль для установки инструмента сборки Apache Maven.
Требования
Ansible Core >= 2.12
Дистрибутив Linux
Семейство Debian
Debian
- Buster (10)
- Bullseye (11)
Ubuntu
- Bionic (18.04)
- Focal (20.04)
Семейство RedHat
Rocky Linux
- 8
Fedora
- 34
Семейство SUSE
openSUSE
- 15.2
Примечание: другие версии, скорее всего, тоже будут работать, но не были протестированы.
Java SE Development Kit (JDK)
Необходимая версия JDK зависит от версии Apache Maven
Версия Maven Минимальная версия 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
Переменные роли
Следующие переменные изменят поведение этой роли (значения по умолчанию указаны ниже):
# Номер версии Maven
maven_version: '3.9.4'
# Зеркало для загрузки распаковываемого пакета Maven
maven_mirror: "http://archive.apache.org/dist/maven/maven-{{ maven_version|regex_replace('\\..*', '') }}/{{ maven_version }}/binaries"
# Основной каталог установки дистрибутива Maven
maven_install_dir: /opt/maven
# Каталог для хранения файлов, загруженных для установки Maven
maven_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"
# Время в секундах, за которое загрузка Maven завершится
maven_download_timeout: 10
# Использовать ли прокси при загрузке Maven (если переменная окружения прокси присутствует)
maven_use_proxy: true
# Проверять ли сертификаты HTTPS при загрузке Maven
maven_validate_certs: true
# Если это стандартная установка, будут созданы символические ссылки на mvn и mvnDebug в /usr/local/bin
maven_is_default_installation: true
# Имя группы фактов Ansible, относящихся к этой установке Maven.
#
# Переопределите, если хотите использовать эту роль несколько раз для установки разных версий
# Maven.
#
# Например, maven_fact_group_name: maven_3_3
# изменит факт домашнего каталога Maven на:
# ansible_local.maven_3_2.general.home
maven_fact_group_name: maven
Поддерживаемые версии Maven
Следующие версии Maven поддерживаются без дополнительных конфигураций (для других версий следуйте инструкциям по расширенной настройке):
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
Расширенная настройка
Следующая переменная роли зависит от версии Maven; чтобы использовать версию Maven не преднастроенную этой ролью, вы должны настроить переменную ниже:
# SHA256 сумма для распаковываемого пакета (т.е. apache-maven-{{ maven_version }}-bin.tar.gz)
maven_redis_sha256sum: '6e3e9c949ab4695a204f74038717aa7b2689b1be94875899ac1b3fe42800ff82'
Примеры плейбуков
По умолчанию эта роль установит последнюю поддерживаемую версию Maven:
- hosts: servers
roles:
- role: gantsign.maven
Вы можете установить конкретную версию Maven, указав maven_version
(замечание: если такая версия не поддерживается этой ролью, то потребуется дополнительная конфигурация - смотрите
Расширенная настройка):
- hosts: servers
roles:
- role: gantsign.maven
maven_version: '3.3.9'
Вы можете установить несколько версий Maven, используя эту роль несколько раз:
- 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
Факты роли
Эта роль экспортирует следующие факты Ansible для использования другими ролями:
ansible_local.maven.general.version
- Например,
3.3.9
- Например,
ansible_local.maven.general.home
- Например,
/opt/maven/apache-maven-3.3.9
- Например,
Переопределение maven_fact_group_name
изменит имена фактов, например:
maven_fact_group_name: maven_3_2
Изменит имена фактов на:
ansible_local.maven_3_2.general.version
ansible_local.maven_3_2.general.home
Связанные роли
Вы можете найти полезными следующие связанные роли:
gantsign.java для установки JDK.
gantsign.maven-notifier для предоставления уведомления в графическом интерфейсе, когда сборка завершается.
- Устанавливает расширение Maven Notifier для Maven, автором которого является Жан-Кристоф Гей.
Больше ролей от GantSign
Вы можете найти больше ролей от GantSign на Ansible Galaxy.
Разработка и тестирование
Этот проект использует следующие инструменты:
- Molecule для организации сценариев тестирования
- Testinfra для тестирования изменений на удаленном сервере
- pytest - тестовая система
- Tox управляет виртуальными окружениями Python для линтинга и тестирования
- pip-tools для управления зависимостями
Предоставляется контейнер разработки Dev Container для разработки и тестирования этой роли.
Лицензия
MIT
Информация об авторе
Джон Фриман
GantSign Ltd. Номер компании 06109112 (зарегистрирована в Англии)
ansible-galaxy install gantsign/ansible-role-maven