sdkman_init
Ansible Роль: SDKMAN инициализация
Роль для инициализации SDKMAN — менеджера комплектов для разработки программного обеспечения. Эта роль позволяет устанавливать определенные SDK в рамках вашей настройки Ansible и задавать, какие версии будут использоваться по умолчанию.
Важно: эта роль требует, чтобы SDKMAN уже был установлен. Вы можете использовать нашу роль gantsign.sdkman для установки SDKMAN.
Требования
Ansible >= 2.9
Дистрибутив Linux
Семейство Debian
Debian
- Stretch (9)
- Buster (10)
- Bullseye (11)
Ubuntu
- Bionic (18.04)
- Focal (20.04)
Семейство RedHat
Rocky Linux
- 8
Fedora
- 35
Семейство SUSE
openSUSE
- 15.3
Примечание: другие версии, вероятно, будут работать, но не были протестированы.
Переменные роли
Следующие переменные изменят поведение данной роли:
# SDKMAN инициализируется для каждого пользователя, поэтому вы должны указать хотя бы одного пользователя
users:
- username: # Пользователь, для которого инициализируется SDKMAN
sdkman_install:
- candidate: # Название SDK, например, java
version: # Версия SDK для установки
path: # Необязательно. Для добавления существующей установки SDK в SDKMAN.
# Версия существующего SDK не может совпадать ни с одной из
# предоставленных SDKMAN. Строка версии — это просто
# идентификатор, поэтому вы можете задать любое значение, которое вам нравится (если
# оно не совпадает с другими версиями для этого кандидата).
sdkman_default:
_candidate_sdk_name_here_: # Необязательно. Версия по умолчанию
Пример Плейбуков
Это пример конфигурации для этой роли (без необходимой роли для установки SDKMAN).
- hosts: servers
roles:
- role: gantsign.sdkman_init
users:
- username: example_username
sdkman_install:
- candidate: java
version: '8.0.181-zulu'
- candidate: java
version: '10'
path: '/opt/java/jdk-10.0.2'
- candidate: maven
version: '3.5.4'
sdkman_default:
java: '10'
maven: '3.5.4'
Это полный пример, который использует роль gantsign.sdkman
для установки SDKMAN. Обратите внимание, как роль gantsign.sdkman_init
может использоваться несколько раз с тегами Ansible для условной установки определенных SDK.
- hosts: servers
roles:
- role: gantsign.sdkman
sdkman_users:
- example_username
- role: gantsign.sdkman_init
tags:
- java
users:
- username: example_username
sdkman_install:
- candidate: java
version: '8.0.181-zulu'
- candidate: java
version: '10'
path: '/opt/java/jdk-10.0.2'
sdkman_default:
java: '10'
- role: gantsign.sdkman_init
tags:
- java
- maven
users:
- username: example_username
sdkman_install:
- candidate: maven
version: '3.5.4'
sdkman_default:
maven: '3.5.4'
Другие Роли от GantSign
Вы можете найти больше ролей от GantSign на Ansible Galaxy.
Разработка и Тестирование
Этот проект использует Molecule для помощи в разработке и тестировании; роль тестируется с помощью Testinfra и pytest.
Для разработки или тестирования вам нужно установить следующее:
Поскольку вышеуказанное может быть сложно установить, этот проект включает Molecule Wrapper. Molecule Wrapper — это скрипт оболочки, который устанавливает Molecule и его зависимости (кроме Linux), а затем выполняет Molecule с переданной командой.
Чтобы протестировать эту роль с помощью Molecule Wrapper, выполните следующую команду из корневой директории проекта:
./moleculew test
Примечание: некоторые зависимости требуют разрешения sudo
для установки.
Лицензия
Apache 2
Информация об Авторе
Джон Фриман
GantSign Ltd. Компания № 06109112 (зарегистрирована в Англии)
Ansible role for initializing the SDKMAN software development kit manager.
ansible-galaxy install gantsign/ansible_role_sdkman_init