java

Ansible Роль: Java

Тесты Ansible Galaxy Лицензия

Роль для установки Java JDK.

Требования

  • Ansible Core >= 2.12

  • Линейка Linux

    • Семейство Debian

      • Debian

        • Buster (10)
        • Bullseye (11)
      • Ubuntu

        • Bionic (18.04)
        • Focal (20.04)
        • Jammy (22.04)
    • Семейство RedHat

      • Rocky Linux

        • 8
      • Fedora

        • 35
    • Семейство SUSE

      • openSUSE

        • 15.4
    • Примечание: другие версии могут работать, но не были протестированы.

Переменные роли

Следующие переменные изменят поведение этой роли (значения по умолчанию показаны ниже):

# Версия Java
# Укажите '8', '11', '17' или '21' для получения последней версии патча этой
# версии.
java_version: '21.0.2+13'

# Основной каталог установки для любой дистрибуции Java
java_install_dir: '/opt/java'

# Каталог для хранения файлов, загруженных для установки Java на удаленной машине
java_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"

# Место, где пакеты для установки Java можно найти на локальной машине
# локальные пакеты будут использоваться в предпочтение загрузки новых пакетов.
java_local_archive_dir: '{{ playbook_dir }}/files'

# Нужно ли использовать установочные пакеты из локального архива (если они доступны)
java_use_local_archive: true

# Если это установка по умолчанию, скрипты профиля будут записаны для установки
# переменной окружения JAVA_HOME и добавления каталога bin в переменную окружения PATH.
java_is_default_installation: true

# Имя группы фактов Ansible, относящихся к этой установке Java.
#
# Переопределите, если хотите использовать эту роль более одного раза для установки нескольких версий
# Java.
#
# например, java_fact_group_name: java_8
# изменит факт дома Java на:
# ansible_local.java_8.general.home
java_fact_group_name: java

# SHA-256 для JDK redistributable
java_redis_sha256sum:

# Место зеркала для загрузки JDK (например, https://example.com/provisioning/files)
java_redis_mirror:

# Имя файла для файла установки JDK redistributable
java_redis_filename:

# Тайм-аут для ответа загрузки JDK в секундах
java_download_timeout_seconds: 600

# Тайм-аут для API Adoptium
java_api_timeout_seconds: 30

Пример сценариев

По умолчанию эта роль установит последнюю стабильную версию JDK, предоставленную Adoptium, которая была протестирована и известна как работоспособная с этой ролью:

- hosts: servers
  roles:
    - role: gantsign.java

Вы можете установить конкретную версию JDK, указав java_version.

- hosts: servers
  roles:
    - role: gantsign.java
      java_version: '8.0.402+6'

Примечание: с помощью curl и jq вы можете просмотреть доступные версии, запустив следующую команду:

for i in 21 17 11 8; do (curl --silent http \
  "https://api.adoptium.net/v3/info/release_names?version=%5B$i,$(($i + 1)))\
&release_type=ga" | jq --raw-output '.releases[]' | sed -E 's/^jdk\-?//'); done

Вы можете установить несколько версий JDK, используя эту роль более одного раза:

- hosts: servers
  roles:
    - role: ansible-role-java
      java_version: '8'
      java_is_default_installation: false
      java_fact_group_name: java_8

    - role: ansible-role-java
      java_version: '11'
      java_is_default_installation: true
      java_fact_group_name: java

Чтобы выполнить оффлайн установку, вам нужно указать немного больше информации (т.е. java_major_version, java_release_name, java_redis_filename и java_redis_sha256sum). Например, для выполнения оффлайн установки 11.0.22+7:

# Перед выполнением оффлайн установки загрузите
# `OpenJDK11U-jdk_x64_linux_hotspot_11.0.22_7.tar.gz` в
# `{{ playbook_dir }}/files/` на локальном компьютере.
- hosts: servers
  roles:
    - role: gantsign.java
      java_major_version: '11'
      java_version: '11.0.22+7'
      java_release_name: 'jdk-11.0.22+7'
      java_redis_filename: 'OpenJDK11U-jdk_x64_linux_hotspot_11.0.22_7.tar.gz'
      java_redis_sha256sum: '25cf602cac350ef36067560a4e8042919f3be973d419eac4d839e2e0000b2cc8'

Факты ролей

Эта роль экспортирует следующие факты Ansible для использования другими ролями:

  • ansible_local.java.general.version

    • напр. 8u402
  • ansible_local.java.general.home

    • напр. /opt/java/jdk8u402

Переопределение java_fact_group_name изменит названия фактов, например:

java_fact_group_name: java_8

изменит названия фактов на:

  • ansible_local.java_8.general.version
  • ansible_local.java_8.general.home

Другие роли от GantSign

Вы можете найти больше ролей от GantSign на Ansible Galaxy.

Разработка и тестирование

Этот проект использует следующие инструменты:

  • Molecule для организации тестовых сценариев
  • Testinfra для тестирования изменений на удаленной машине
  • pytest как фреймворк тестирования
  • Tox управляет виртуальными окружениями Python для линтинга и тестирования
  • pip-tools для управления зависимостями

Предоставлен контейнер для разработки Visual Studio Code для разработки и тестирования этой роли.

Лицензия

MIT

Информация об авторе

Джон Фриман

GantSign Ltd. Номер компании: 06109112 (записана в Англии)

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