ojdk

Открытый комплект для разработки на Java

Эта роль предназначена для управления Открытым комплектом для разработки на Java (OpenJDK) на большинстве операционных систем.

OpenJDK - это бесплатная и открытая референсная реализация Java Platform, Standard Edition (J2SE), как определено в Java Community Process (JCP). Она распространяется по GNU Общей публичной лицензии версии 2 с исключением линковки и включает: виртуальную машину HotSpot (JVM) и javac (официальный компилятор Sun, не путать с: ECJ, GCJ, Jikes и др.)

Поскольку это референсная реализация, она предоставляет ожидаемый общий набор возможностей (другие реализации могут добавлять классы или не только J2SE...) Поэтому существуют некоторые незначительные различия с Oracle JDK и также в модели релиза и платной поддержке.

Начало

Этот раздел посвящен начальным настройкам для работы с ролью.

Требования

Эта роль не зависит от других ролей.

Эта роль использует менеджер пакетов нативного дистрибутива и сконфигурированные репозитории.

Эта роль работает для дистрибутивов, для которых существует сборка (например, см. https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms для почти полного и актуального списка). Также обратите внимание, что доступные версии могут различаться в зависимости от главного релиза вашего дистрибутива, а нумерация тоже отличается.

v6 v7 v8 v9 v10 v11 v12 релиз дистрибутива
7 8 Alpine 3.3 / 3.4 / 3.5 / 3.6 / 3.7 / 3.8 / 3.9
7 8 9 Alpine edge
1.6.0 1.7.0 1.8.0 ALT Linux Sisyphus
7 8 10 Arch Linux
1.6.0 1.7.0 1.8.0 CentOS 6
1.6.0 1.7.0 1.8.0 11 CentOS 7
6 7 Debian 7 (Wheezy)
7 Debian 8 (Jessie)
8 Debian 9 (Stretch)
8 11 Debian 10 (Buster)
8 11 12 Debian Sid
1.8.0 9 11 ... Fedora 27 / 28
1.8.0 ... 11 ... Fedora 29 / Rawhide
(порт) (+порт) 8 (+порт) FreeBSD 10
(порт) (+порт) 8 (+порт) 11 FreeBSD 11 / 12
1.7.0 Mageia 4.1
1.8.0 Mageia 5.1 / 6.1 / Caudron
7 8 NetBSD 7.0 / 7.1 / 7.2
8 NetBSD 8.0
1.7.0 1.8.0 9 10 11 12 OpenMandriva Cooker
1.6.0 1.7.0 OpenMandriva Lx 2013.0
1.6.0 1.7.0 1.8.0 OpenMandriva Lx 2014.2
1.7.0 1.8.0 OpenMandriva Lx 3.0
1_8_0 10 11 openSUSE Leap 15.0
1_7_0 1_8_0 openSUSE Leap 42.3
1_8_0 9 10 11 openSUSE Tumbleweed
1.6.0 ROSA 2012.1 / Entreprise Desktop
1.7.0 ROSA 2014.1
1.8.0 ROSA 2016.1
(7-)7 8 Slackware 14.1/14.0/13.37/Current
6-6 (7-)7 (8-)8 9-9 Slackware 14.2
6 7 Ubuntu 14.04 LTS (Trusty Thar)
8 9 Ubuntu 16.04 LTS (Xenial Xerus)
8 11 Ubuntu 18.04 LTS (Bionic Beaver) / 18.10 (Cosmic Cuttlefish)

Установка

Создайте или добавьте в файл зависимостей вашу роль следующие строки:

- src: http://github.com/gilcot/ansible-ojdk.git
  scm: git
  version: 1.0.0
  name: openjdk
- src: gilcot.openjdk
  version: 1.0.0
  name: openjdk

С использованием этого файла установите роль на вашем контроллере:

# $roles - это путь к папке ролей, если вы не используете по умолчанию
# $specs - это файл требований, созданный ранее
# последняя опция принудительное переопределение, полезно для обеспечения изменения версии
ansible-galaxy install -p $roles -r $specs -f

Использование

Этот раздел касается интеграции роли в ваши плейбуки.

Переменные

Эта роль использует очень немного переменных:

ojdk_version

Это версия JDK, которую нужно установить.
Обратите внимание, это не версия пакета и не номер в названии пакета! См. таблицу выше
Это значение обязательно и должно быть целым числом.

ojdk_state

Это желаемое состояние; и поэтому является обязательным. Это может быть:

  • present для установки пакета, если он еще не установлен,
  • absent для удаления пакета, если он все еще присутствует,
  • все другие значения, принимаемые нижележащим модулем (например, latest для обновления пакета до последнего исправления).

ojdk_gpg_uncheck

Это булево значение (no/false или yes/true), используемое с некоторыми менеджерами пакетов для отключения проверки подписей/сертификатов. Это может быть полезно для отключения такой проверки в редких случаях.

ojdk_repository

Эта переменная используется несколькими менеджерами пакетов для установки дополнительного репозитория. Формат этой строки (URL или путь) и значение зависит от ОС.

дистрибутив обязательно используется для
AIX путь с пакетами AIX (обязательно для установки)
Debian-based URL для альтернативного репозитория, где можно найти нужную версию OpenJDK
FreeBSD переопределение каталога исходных портов (пакет создается из исходников, так как по умолчанию нет бинарного)
HP-UX репозиторий, из которого устанавливается или обновляется пакет
Mac OSX абсолютный путь к файлу пакета
OpenBSD переопределение каталога исходных портов (пакет создается из исходников, так как по умолчанию нет бинарного)
Red Hat-based URL для альтернативного репозитория, где можно найти нужную версию OpenJDK
Solaris местоположение для установки пакета (должно быть допустимым путем для pkgadd или допустимым путем репозитория с определениями в /etc/opt/csw/pkgutil.conf)
Windows либо абсолютный путь к упакованному файлу, либо альтернативный URL для репозитория Chocolatey или путь к папке с файлами .nupkg)

Обратите внимание, что для некоторых дистрибутивов, таких как CentOS и Ubuntu, может быть полезно добавить репозиторий (либо вручную, либо с помощью предыдущей задачи) перед вызовом этой роли. Этот параметр выполняет очень базовую настройку.

Условия

Так как она добавляет или удаляет пакеты из системы, требуются повышенные привилегии, и вы должны вызывать роль соответствующим образом.

Эта роль также использует информацию о семействе ОС и дистрибутиве (название и главная версия). Поэтому либо разрешите сбор фактов, либо предоставьте их любым другим способом.

Примеры

Теперь вы готовы использовать это в своих плейбуках.
Просто учтите, что операции должны выполняться от имени пользователя root (именно поэтому в следующих примерах используются повышенные привилегии).

Чтобы установить (по умолчанию) JDK12 на группу servlets:

- hosts: servlets
  become: yes
  gather_facts: yes
  roles:
    - { role: openjdk, ojdk_version: 12 }

Чтобы удалить JDK5 (для примера, так как его не существует) на dummy host:

- hosts: dummy
  become: yes
  gather_facts: yes
  roles:
    - { role: openjdk, ojdk_version: 5, ojdk_state: absent }

(то же самое, с использованием чистого синтаксиса YAML)

- hosts: dummy
  become: yes
  gather_facts: yes
  roles:
    - role: openjdk
      ojdk_version: 5
      ojdk_state: absent

Теперь, если ваш инвентарный файл контроллера выглядит так:

[dummies]
dummy

[olders]
foo
bar

[newers]
baz
qix

[servlets:children]
olders
newers

[dummies:vars]
ojdk_version = 5
ojdk_state = absent

[olders:vars]
ojdk_version = 8

[newers:vars]
ojdk_version = 11

[servlets:vars]
ojdk_state = present

То ваш плейбук становится:

- hosts: dummy
  become: yes
  roles:
    - openjdk

Разное

Статус сборки

Лицензия

Эта роль распространяется на условиях GNU GPLv3 (см. файл LICENSE)

Авторы

gilcot является стойким защитником свободного программного обеспечения и использует систему Ansible для развертывания.

Вклад

  • Оцените эту роль на Ansible Galaxy
  • Сообщите о проблемах, чтобы помочь улучшить ее
  • Запросите внедрение кода
  • Поблагодарите автора(ов) с помощью:
О проекте

Ansible role to manage OpenJDK package

Установить
ansible-galaxy install gilcot/ansible-ojdk
Лицензия
gpl-3.0
Загрузки
100
Владелец