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:
- desde GitHub
- src: http://github.com/gilcot/ansible-ojdk.git
scm: git
version: 1.0.0
name: openjdk
- o desde Ansible Galaxy
- 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
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
Ansible role to manage OpenJDK package
ansible-galaxy install gilcot.ojdk