fernandrone.ansible_sdkman
Ansible Роль: fernandrone.ansible_sdkman
Ansible роль, которая выполняет следующие функции:
- Устанавливает SDKMAN
- Устанавливает/удаляет программное обеспечение кандидаты, управляемое SDKMAN
- Устанавливает значения по умолчанию для версий SDK
- Управляет конфигурационным файлом SDKMAN:
/path/to/sdkman/etc/config
- Очищает кэши SDKMAN
Внимание: Oracle сделала установку своих JDK всё более сложной, что препятствует возможности установки их через SDKMAN. Рассмотрите вариант использования OpenJDK или установки/управления Oracle JDK другими способами.
Требования
Нет.
Переменные роли
См. defaults для описания каждой переменной, которую можно переопределить.
Зависимости
Нет.
Пример плейбука
Вот пример!
- hosts: servers
roles:
- role: fernandrone.ansible_sdkman
sdkman_user: vagrant
sdkman_group: vagrant
sdkman_auto_answer: true
sdkman_update: true
sdkman_uninstall_packages:
- { candidate: groovy, version: 1.8.9 }
sdkman_install_packages:
- { candidate: java, version: 8.0.202-zulu }
- { candidate: gradle, version: '3.5' }
- { candidate: gradle, version: 2.14.1 }
- { candidate: maven, version: 3.5.0 }
- { candidate: maven, version: 3.3.9 }
# Используйте этот синтаксис, если хотите, чтобы SDKMAN знал о пакетах, установленных *без* SDKMAN, например, Oracle JDK
- { candidate: java, version: 1.8.0-oracle, localpath: /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk }
sdkman_defaults:
gradle: '3.5'
maven: 3.3.9
java: 8.0.202-zulu
sdkman_flush_caches_before:
- temp
sdkman_flush_caches_after:
- archives
- broadcast
- candidates
- temp
sdkman_offline_mode: false
sdkman_update_alternatives:
- candidate: java
name: java
link: /usr/bin/java
- candidate: java
name: javac
link: /usr/bin/javac
sdkman_fix_permissions: false
Дополнительные заметки
Если вы хотите пропустить любые шаги, которые требуют повышения привилегий (т.е. команд sudo
), эта роль пометила такие задачи тегом sdkman_privilege
. Используйте флаг --skip-tags
в командной строке с этим тегом, чтобы пропустить любые шаги, которые уже могли быть выполнены вашим системным администратором (например, установка системных пакетов).
Тестирование этой роли с Alpine Linux оказалось непростой задачей. Более новые сборки JDK (>11), доступные через SDKMAN, не совместимы с Alpine. Вместо этого рекомендуется установить JDK/JRE через репозиторий пакетов apk
. С учетом сказанного, я в данный момент не уверен, как хорошо работают пакеты SDKMAN на Alpine. Результат может отличаться. Вы предупреждены.
Лицензия
Информация об авторе
An Ansible role that installs/manages SDKMAN
ansible-galaxy install fernandrone.ansible_sdkman