gilcot.ojdk

Kit de Desarrollo Abierto de Java

Este rol es para gestionar el Kit de Desarrollo Abierto de Java (OpenJDK) en la mayoría de los sistemas operativos.

OpenJDK es una implementación de referencia gratuita y de código abierto de la Plataforma Java, Edición Estándar (J2SE), definida por el Proceso de Comunidad Java (JCP). Está bajo la Licencia Pública General de GNU versión 2 con excepción de enlace e incluye la máquina virtual HotSpot (JVM), y javac (el compilador oficial de Sun, no: ECJ, GCJ, Jikes, etc.)

Como es una referencia, proporciona un denominador común esperado (otras implementaciones pueden agregar clases o no solo J2SE...) Por lo tanto, hay algunas diferencias menores con el Oracle JDK y también en el modelo de lanzamiento y soporte pago.

Comienzo

Esta sección trata sobre la configuración inicial para hacer que el rol funcione.

Requisitos

Este rol no depende de otro rol.

Este rol utiliza el gestor de paquetes nativo de la distribución y los repositorios configurados.

Este rol funciona para distribuciones para las que hay una construcción (vea, por ejemplo, https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms para una lista casi completa y actualizada). También tenga en cuenta que las versiones disponibles pueden variar según la versión principal de su distribución, y la numeración también es diferente.

v6 v7 v8 v9 v10 v11 v12 versión de distribución
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
(port) (+port) 8 (+port) FreeBSD 10
(port) (+port) 8 (+port) 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 / Escritorio Empresarial
1.7.0 ROSA 2014.1
1.8.0 ROSA 2016.1
(7-)7 8 Slackware 14.1/14.0/13.37/Actual
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)

Instalación

Crea o añade a tu archivo de dependencias de roles estas líneas:

- 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

Usando ese archivo, instala el rol en tu host controlador:

# $roles es la ruta de la carpeta de roles, si no estás usando la predeterminada
# $specs es el archivo de requisitos creado anteriormente
# la última opción fuerza la sobreescritura, útil para asegurar el cambio de versión
ansible-galaxy install -p $roles -r $specs -f

Uso

Esta sección se trata de la integración del rol en tus playbooks.

Variables

Este rol utiliza muy pocas variables:

ojdk_version

Es la versión de JDK a instalar.
Ten cuidado, ¡no es ni la versión del paquete ni el número en el nombre del paquete! Consulta la tabla anterior
Este valor es obligatorio y debe ser un entero.

ojdk_state

Este es el estado deseado; por lo tanto, es obligatorio. Puede ser:

  • present para instalar el paquete si aún no está,
  • absent para eliminar el paquete si aún está,
  • todos los otros valores aceptados por el módulo subyacente (por ejemplo, latest para actualizar el paquete a la última versión corregida).

ojdk_gpg_uncheck

Es un booleano (no/false o yes/true) que se usa con algunos gestores de paquetes para desactivar la verificación de firmas/certificados. Esto puede ser útil para desactivar dicha verificación en algunos casos raros.

ojdk_repository

Este se utiliza en algunos gestores de paquetes, para establecer un repositorio adicional. Este formato de cadena (URL o una ruta) y significado es dependiente del sistema operativo.

distribución obligatorio usado para
AIX ruta con paquetes AIX (requerido para instalar)
Basado en Debian URL a repositorio alternativo donde encontrar la versión deseada de OpenJDK
FreeBSD sobrescribir el directorio de origen de los puertos por defecto (el paquete se compila a partir del código fuente ya que no hay binario disponible por defecto)
HP-UX el repositorio desde el cual instalar o actualizar el paquete
Mac OSX la ruta absoluta al archivo del paquete
OpenBSD sobrescribir el directorio de origen de los puertos por defecto (el paquete se compila a partir del código fuente ya que no hay binario disponible por defecto)
Basado en Red Hat URL a repositorio alternativo donde encontrar la versión deseada de OpenJDK
Solaris ubicación de donde instalar el paquete (debe ser una ruta aceptable para pkgadd o una ruta de repositorio válida con una definición que se encuentra en /etc/opt/csw/pkgutil.conf)
Windows ya sea la ruta absoluta al archivo empacado, o una URL alternativa a la alimentación de Chocolatey o la ruta a una carpeta con archivos .nupkg

Ten en cuenta que para algunas distribuciones, como CentOS y Ubuntu, puede ser útil añadir el repositorio (ya sea manualmente o en una tarea anterior) antes de llamar a este rol. Este parámetro realiza una configuración muy básica.

Condiciones

Como agrega o elimina paquetes del sistema, se utilizan privilegios de escalación y debes llamar al rol en consecuencia.

Este rol también utiliza datos sobre la familia del sistema operativo y la distribución (nombre y versión principal). Por lo tanto, debes permitir la recopilación de datos o proporcionarlos de una forma u otra.

Ejemplos

Ahora estás listo para usarlo en tus playbooks.
Solo ten en cuenta que las operaciones deben realizarse como usuario root (por eso se utilizan privilegios de escalación en los siguientes ejemplos).

Para instalar (estado por defecto) JDK12 en mi grupo de servlets:

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

Para eliminar JDK5 (solo como ejemplo, ya que no existe) en el host dummy:

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

(lo mismo, usando la sintaxis pura de YAML)

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

Bien, ahora, si tu inventario del controlador es como:

[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

Entonces tu playbook simplemente se convierte en:

- hosts: dummy
  become: yes
  roles:
    - openjdk

Varios

Estado de la construcción

Licencia

Este rol está bajo copyleft de la GNU GPLv3 (ver archivo LICENSE)

Autores

gilcot es un firme defensor del Software Libre y solo confía en el sistema Ansible para despliegues.

Contribuciones

  • Valora este rol en Ansible Galaxy
  • Envía problemas para ayudar a mejorarlo
  • Solicita la fusión de código
  • Agradece al autor(es) con:
Acerca del proyecto

Ansible role to manage OpenJDK package

Instalar
ansible-galaxy install gilcot.ojdk
Licencia
gpl-3.0
Descargas
111
Propietario