oraclejdk

ansible-role-oraclejdk

Ansible-роль для установки Oracle JDK.

Платформа Платформа Платформа Платформа Платформа Платформа Платформа

OracleJDK OracleJDK

Аннотация

Эта 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
  • jar
  • java
  • javac
  • jcmd
  • jconsole
  • jmap
  • jps
  • jstack
  • jstat
  • jstatd
Это свойство позволяет определить, какие альтернативы должны быть настроены для 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 role to install Oracle JDK 8/9

Установить
ansible-galaxy install frieder/ansible-role-oraclejdk
Лицензия
mit
Загрузки
99
Владелец