oracle-java
srsp.oracle-java для Ansible Galaxy
Резюме
Имя роли в Ansible Galaxy: srsp.oracle-java
Эта роль Ansible имеет следующие функции, связанные с Oracle JDK:
- Установка Oracle JDK версий с 8 по 13.
- Установка дополнительных Java Cryptography Extensions (JCE). Необходимы только для версий JDK <= 8u152.
- Установка для операционных систем CentOS, Debian/Ubuntu, SUSE и macOS.
Эта роль основана на williamyeh.oracle-java, но я хотел более современные версии Java и решил прекратить поддержку старых версий.
Если вы предпочитаете OpenJDK, попробуйте geerlingguy.java.
Автоматическая загрузка с Oracle
Внимание: Ранее эта роль загружала все JDK непосредственно с сайта Oracle. Oracle постепенно закрыл эту возможность. Теперь вы не можете скачать ни одну версию JDK 8 без входа в Oracle. Для JDK 11 можно скачать только одну старую версию. JDK 13 можно скачать на данный момент.
Поскольку это изменение происходит каждый раз, когда Oracle выпускает новую версию Java, вам не следует на это полагаться. Я рекомендую загружать JDK вручную и устанавливать его с помощью этой роли.
Переменные роли
Основное использование
Это попытается скачать JDK с Oracle и установить его.
- hosts: all
roles:
- srsp.oracle-java
vars:
# Вы должны установить это:
- java_version: 13
# Это можно опустить (роль будет использовать последнюю известную версию):
- java_subversion: 0.2
Примеры
Установка вручную загруженного JDK
Поместите загруженный файл JDK для вашей системы в директорию files
и установите java_download_from
на local
:
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 201
- java_download_from: local
Установка с вашего зеркала
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 172
- java_download_from: mirror
- java_mirror: "http://some.url/in/your/network/jdk-8u172-macosx-x64.dmg"
Загрузка JDK на локальную машину (предварительная загрузка)
Если вы просто хотите JDK на вашей локальной машине (например, для использования файлов для теста молекулы или для загрузки на корпоративное зеркало), вы можете использовать prefetch.yml
в этой роли:
ansible-playbook prefetch.yml
Измените плейбук в соответствии с вашими потребностями.
Если запускать из командной строки
ansible-playbook --ask-become-pass playbook.yml
Дополнительные переменные
Параметры по умолчанию, которые можно настроить:
# Версия Java
java_version: 8
# Подверсия Java
java_subversion: 201
# Загружать ли Java непосредственно с Oracle
# - oracle: Загружать с сайта Oracle на лету.
# - mirror: Загружать из URL, определенного в 'java_mirror'.
# - local: Копировать из директории `files` роли или плейбука на управляющей машине.
java_download_from: oracle
# В зависимости от значения 'java_download_from' происходит следующее:
# - oracle: Вам не нужно устанавливать это. Оно автоматически заполняется ссылкой Oracle.
# - mirror: Вам нужно установить зеркало, из которого хотите загрузить. Необходимо указать полный URL, включая файл, как в примере ниже. Если вам также нужен JCE, нужно установить 'jce_zip_url'.
# - local: 'java_mirror' не используется, следовательно, значение игнорируется.
#java_mirror: "https://private-repo.com/java/jdk-8u172-macosx-x64.dmg"
java_mirror: "http://download.oracle.com/otn-pub/java"
# Удалять временно загруженные файлы?
java_remove_download: true
# Установить $JAVA_HOME?
java_set_java_home: true
# Установить JCE?
java_install_jce: false
Для других настраиваемых параметров, читайте файл tasks/set-role-variables.yml
; например, чтобы увидеть поддерживаемые комбинации java_version
/java_subversion
.
Я хочу установить JDK, который вы еще не поддерживаете!
Не проблема! Вам нужно указать соответствующий номер сборки Java в переменных java_build
и jdk_tarball_hash
, кроме java_version
и java_subversion
, например:
# файл: playbook.yml
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 141
- java_build: 15
- jdk_tarball_hash: 336fa29ff2bb4ef291e347e091f7f4a7
Лицензия
Лицензируется под Apache License V2.0. Подробности см. в LICENCE файле.
Разработка
Тестирование
Тесты используют molecule
. Поскольку для этой роли требуется JDK от Oracle, контейнеры тестирования molecule будут монтировать /tmp/java
, чтобы JDK сохранялся на локальной машине и оставался доступным после уничтожения контейнера проверки. Вы также можете предварительно загрузить файл установки и поместить его в /tmp/java
.
Это выполнит весь цикл тестирования против сценария по умолчанию:
molecule test
Если вы хотите работать с определенным дистрибутивом, используйте что-то вроде этого:
molecule converge --scenario-name opensuse15
Если вы хотите протестировать все, выполните:
molecule test --all
Это займет некоторое время.
Oracle JDK 8 to 13 for CentOS/Fedora/Debian/Ubuntu/Suse/MacOSX
ansible-galaxy install srsp/ansible-oracle-java