oraclejdk
ansible-role-oraclejdk
Ansible-роль для установки Oracle JDK.
Аннотация
Эта Ansible роль устанавливает Oracle JDK и Java Cryptography Extension (по желанию) на целевом хосте. OpenJDK не поддерживается. Она была протестирована с Oracle JDK 8u144/8u151 и JDK 9u181/9.0.1 на следующих дистрибутивах Linux.
- Ubuntu 16.04
- Debian 9
- RHEL 7.4
- CentOS 7.3
- Fedora 26
- SLE 12 SP2
- openSUSE 42.2
Зависимости
Ansible >= 2.x (тестировалось с 2.3.2.0 и 2.4.0.0)
Дополнительно данная роль требует установки следующих пакетов на целевом хосте.
tar
- Всегда нужен для извлечения JDK tar.gz архиваunzip
- Нужен только если необходимо установить JCE для JDK8
Установка
Чтобы использовать эту роль, её необходимо сначала скачать с Ansible Galaxy. Для установки роли выполните команду ниже на вашей управляющей машине Ansible. Более подробную информацию можно найти в официальной документации.
ansible-galaxy install frieder.oraclejdk
Эта команда всегда будет загружать последнюю версию из Galaxy. Другой вариант — загрузить роль с Github и указать конкретную версию. Это позволит лучше контролировать, какую версию этой роли использовать. Создайте файл requirements.yml
и поместите в него следующее содержимое.
---
- name: frieder.oraclejdk
src: https://github.com/frieder/ansible-role-oraclejdk
version: 2.0.0
Затем вы можете выполнить ansible-galaxy install -r ./requirements.yml --ignore-errors
, и это загрузит все зависимости, определённые в этом списке. Параметр --ignore-errors
обеспечит обработку всего списка, даже если некоторые зависимости уже загружены. Полный обзор возможных записей для requirements.yml
можно найти здесь.
Переменные роли
Все переменные роли определены в defaults/main.yml
. Эти значения можно переопределить в плейбуке (см. примеры внизу).
Переменная | Значение по умолчанию | Описание |
---|---|---|
oraclejdk_license_accept | false | При установке JDK это должно быть установлено в true, иначе выполнение завершится с ошибкой. Не требуется при удалении JDK. |
oraclejdk_state | present | Определяет, добавлять или удалять JDK с целевого хоста. Возможные значения: [present, absent] . |
oraclejdk_cleanup | true | Удалить все временные файлы/папки (локальные и удалённые) после установки. Если установлено в true, это приведёт к изменению состояния. |
oraclejdk_dl_dir | /tmp/oraclejdk | Папка (локальная и удалённая), в которую будут загружены/скопированы/извлечены архивы. |
oraclejdk_home | В зависимости от значения oraclejdk_state это свойство принимает разные значения. В случае present назначается строка, указывающая на желаемое местоположение JAVA_HOME. В случае absent берётся список предыдущих местоположений JDK, которые теперь должны быть удалены. В этом случае необходимо предоставить список с хотя бы одной записью. | |
oraclejdk_profile_file | /etc/profile.d/java.sh | Файл, в котором роль установит экспорт JAVA_HOME и PATH. |
oraclejdk_cookie | Cookie:oraclelicense=accept-securebackup-cookie | Печенье, необходимое для автоматических загрузок с oracle.com. Проверка лицензии выполняется другой переменной. |
oraclejdk_url | URL архива JDK на oracle.com или локальном корпоративном репозитории (рекомендуется). | |
oraclejdk_url_user | Если требуется простая HTTP-аутентификация, имя пользователя можно указать здесь. | |
oraclejdk_url_pass | Если требуется простая HTTP-аутентификация, пароль можно указать здесь. | |
oraclejdk_checksum | SHA256 контрольная сумма архива JDK. Используется для проверки, что загруженный файл действителен. Чтобы отключить эту проверку, просто укажите пустое значение контрольной суммы (oraclejdk_checksum: '' ). |
|
oraclejdk_sethome | true | Если установлено в true, обновит глобальную переменную JAVA_HOME, чтобы указывать на каталог установки JDK, и добавит бинарные файлы в переменную PATH. Также смотрите переменную oraclejdk_profile_file . |
oraclejdk_alternative_upd | true | Если установлено в true, установит альтернативу для java (update-alternatives --config java ) на текущий JDK. |
oraclejdk_alternative_prio | 1 | Приоритет, используемый для команды update-alternatives . JDK с самым высоким приоритетом выигрывает. |
oraclejdk_alternative_items |
|
Это свойство позволяет определить, какие альтернативы должны быть настроены для JDK. |
oraclejdk_jce_install | false | Если установлено в true, будет установлена и добавлена последняя версия Java Cryptography Extension (JCE) к JDK. Обратите внимание, что в JDK9 безлимитная сила ключа включена по умолчанию и никаких дополнительных действий не требуется. Для дополнительной информации обратитесь к рассылке security-dev. |
oraclejdk_jce_name | UnlimitedJCEPolicyJDK8 | Только JDK8. Имя папки внутри архива JCE. |
oraclejdk_jce_url | Только JDK8. URL архива JCE на oracle.com или локальном корпоративном репозитории (рекомендуется). | |
oraclejdk_jce_checksum | Только JDK8. SHA256 контрольная сумма архива JCE. Чтобы отключить эту проверку, просто укажите пустое значение контрольной суммы (oraclejdk_jce_checksum: '' ). |
Примеры плейбуков
Ниже приведены несколько примеров использования этой роли в Ansible плейбуке.
JDK8 и JDK9 вместе, устанавливаем домашний каталог для JDK8, обновляем альтернативы для обоих JDK с различными приоритетами
- hosts: jdk
pre_tasks:
- name: Установить необходимые пакеты (127.0.0.1)
delegate_to: 127.0.0.1
run_once: true
package:
name: '{{ item }}'
state: present
with_items:
- tar
- unzip
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_sethome: false
oraclejdk_alternative_prio: 100
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk8u151
oraclejdk_alternative_prio: 200
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
oraclejdk_jce_install: true
oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'
JDK8 с минимальной конфигурацией
- hosts: jdk8
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk8_151
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
JDK8 с JCE
- hosts: jdk8
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/java-8-151
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
oraclejdk_jce_install: true
oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'
JDK8 полная конфигурация
- hosts: jdk8
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_cleanup: true
oraclejdk_dl_dir: /tmp/java_download
oraclejdk_home: /opt/java/java-8-151
oraclejdk_sethome: true
oraclejdk_alternative_upd: true
oraclejdk_alternative_prio: 123
oraclejdk_alternative_items:
- jar
- java
- javac
- jcmd
- jconsole
- jmap
- jps
- jstack
- jstat
- jstatd
oraclejdk_profile_file: /etc/profile.d/java.sh
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
oraclejdk_jce_install: true
oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'
JDK9
- hosts: jdk9
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'
JDK9 без проверки контрольной суммы
- hosts: jdk9
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: ''
JDK9 добавление нового JDK, удаление старых JDK
- hosts: jdk9
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: ''
- role: frieder.oraclejdk
oraclejdk_state: absent
oraclejdk_home:
- /opt/java/jdk9.0.1
- /opt/java/java-8-151
ansible-galaxy install frieder/ansible-role-oraclejdk