gantsign.java

Rol de Ansible: Java

Pruebas Ansible Galaxy Licencia

Rol para instalar el JDK de Java.

Requisitos

  • Ansible Core >= 2.12

  • Distribución de Linux

    • Familia Debian

      • Debian

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

        • Bionic (18.04)
        • Focal (20.04)
        • Jammy (22.04)
    • Familia RedHat

      • Rocky Linux

        • 8
      • Fedora

        • 35
    • Familia SUSE

      • openSUSE

        • 15.4
    • Nota: otras versiones pueden funcionar, pero no han sido probadas.

Variables de la Rol

Las siguientes variables cambiarán el comportamiento de esta rol (los valores por defecto se muestran a continuación):

# Número de versión de Java
# Especificar '8', '11', '17' o '21' para obtener la última versión corregida de esa
# versión.
java_version: '21.0.2+13'

# Directorio base de instalación para cualquier distribución de Java
java_install_dir: '/opt/java'

# Directorio para almacenar archivos descargados para la instalación de Java en la máquina remota
java_download_dir: "{{ x_ansible_download_dir | default(ansible_env.HOME + '/.ansible/tmp/downloads') }}"

# Ubicación donde se pueden encontrar los paquetes de instalación de Java en la máquina local
# se usarán paquetes locales en lugar de descargar nuevos paquetes.
java_local_archive_dir: '{{ playbook_dir }}/files'

# Si usar paquetes de instalación en el archivo local (si están disponibles)
java_use_local_archive: true

# Si esta es la instalación por defecto, se escribirán scripts de perfil para establecer
# la variable de entorno JAVA_HOME y agregar el directorio bin a la variable de entorno PATH.
java_is_default_installation: true

# Nombre del grupo de hechos de Ansible relacionados con esta instalación de Java.
#
# Sobrescribir si desea usar esta rol más de una vez para instalar múltiples versiones
# de Java.
#
# e.g. java_fact_group_name: java_8
# cambiaría el hecho del hogar de Java a:
# ansible_local.java_8.general.home
java_fact_group_name: java

# El SHA-256 para el redistribuible de JDK
java_redis_sha256sum:

# Ubicación espejo para la descarga de JDK (por ejemplo, https://example.com/provisioning/files)
java_redis_mirror:

# Nombre del archivo para el archivo de instalación redistribuible de JDK
java_redis_filename:

# Tiempo de espera para la respuesta de descarga de JDK en segundos
java_download_timeout_seconds: 600

# El tiempo de espera para la API de Adoptium
java_api_timeout_seconds: 30

Ejemplos de Playbooks

Por defecto, esta rol instalará la última versión LTS del JDK proporcionado por Adoptium que ha sido probado y se sabe que funciona con esta rol:

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

Puedes instalar una versión específica del JDK especificando el java_version.

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

Nota: con curl y jq puedes ver las versiones disponibles ejecutando el siguiente comando:

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

Puedes instalar múltiples versiones del JDK usando esta rol más de una vez:

- 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

Para realizar una instalación offline, necesitas especificar un poco más de información (es decir, java_major_version, java_release_name, java_redis_filename y java_redis_sha256sum). Por ejemplo, para realizar una instalación offline de 11.0.22+7:

# Antes de realizar la instalación offline, descarga
# `OpenJDK11U-jdk_x64_linux_hotspot_11.0.22_7.tar.gz` a
# `{{ playbook_dir }}/files/` en la máquina local.
- 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'

Hechos de la Rol

Esta rol exporta los siguientes hechos de Ansible para ser usados por otras roles:

  • ansible_local.java.general.version

    • por ejemplo, 8u402
  • ansible_local.java.general.home

    • por ejemplo, /opt/java/jdk8u402

Sobrescribir java_fact_group_name cambiará los nombres de los hechos, por ejemplo:

java_fact_group_name: java_8

Cambiaría el nombre de los hechos a:

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

Más Roles de GantSign

Puedes encontrar más roles de GantSign en Ansible Galaxy.

Desarrollo y Pruebas

Este proyecto utiliza las siguientes herramientas:

  • Molecule para orquestar escenarios de prueba
  • Testinfra para probar los cambios en la remota
  • pytest el marco de pruebas
  • Tox gestiona entornos virtuales de Python para análisis y pruebas
  • pip-tools para gestionar dependencias

Se proporciona un Contenedor de Desarrollo de Visual Studio Code para desarrollar y probar esta rol.

Licencia

MIT

Información del Autor

John Freeman

GantSign Ltd. Compañía No. 06109112 (registrada en Inglaterra)

Instalar
ansible-galaxy install gantsign.java
Licencia
mit
Descargas
149.3k
Propietario