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) |
Установка
Создайте или добавьте в файл зависимостей вашу роль следующие строки:
- из GitHub
- src: http://github.com/gilcot/ansible-ojdk.git
scm: git
version: 1.0.0
name: openjdk
- или из Ansible Galaxy
- 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 install gilcot/ansible-ojdk