srsp.oracle-java
srsp.oracle-java para Ansible Galaxy
Resumen
Nombre del rol en Ansible Galaxy: srsp.oracle-java
Este rol de Ansible tiene las siguientes características relacionadas con el JDK de Oracle:
- Instala el JDK de Oracle en versiones del 8 al 13.
- Instala las extensiones de criptografía de Java (JCE) opcionales. Sólo se necesitan para cualquier versión de JDK <= 8u152.
- Se instala en sistemas operativos CentOS, Debian/Ubuntu, SUSE y macOS.
Este rol se basa en williamyeh.oracle-java, pero quería versiones de Java más recientes y decidí dejar de dar soporte a versiones más antiguas.
Si prefieres OpenJDK, prueba geerlingguy.java.
Descarga automática desde Oracle
Atención: En el pasado, este rol descargaba todos los JDK directamente del sitio de Oracle. Oracle ha restringido esta posibilidad poco a poco. Ahora no puedes descargar ninguna versión de JDK 8 sin iniciar sesión en Oracle. Para JDK 11, solo puedes descargar una versión más antigua. JDK 13 se puede descargar en este momento.
Dado que esto cambia de manera no determinística cada vez que Oracle lanza una nueva versión de Java, no debes confiar en ello. Recomiendo descargar el JDK manualmente e instalarlo con este rol.
Variables del rol
Uso básico
Esto intentará descargar el JDK de Oracle e instalarlo.
- hosts: all
roles:
- srsp.oracle-java
vars:
# Deberías establecer esto:
- java_version: 13
# Puedes omitir esto (el rol usará la última versión que conoce):
- java_subversion: 0.2
Ejemplos
Instalar JDK descargado manualmente
Coloca el archivo JDK descargado para tu sistema en el directorio files
y establece java_download_from
como local
:
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 201
- java_download_from: local
Instalar desde tu espejo
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 172
- java_download_from: mirror
- java_mirror: "http://some.url/in/your/network/jdk-8u172-macosx-x64.dmg"
Descargar JDK en la máquina local (prefetch)
Si solo deseas tener el JDK en tu máquina local (por ejemplo, para usar los archivos en la prueba de moléculas o para subirlo a tu espejo de intranet corporativa), puedes usar el
playbook prefetch.yml
en este rol:
ansible-playbook prefetch.yml
Modifica el playbook según tus necesidades.
Si ejecutas desde la línea de comandos
ansible-playbook --ask-become-pass playbook.yml
Variables opcionales
Defaults configurables por el usuario:
# Versión de Java
java_version: 8
# Subversión de Java
java_subversion: 201
# ¿Descargar Java directamente desde Oracle?
# - oracle: Descargar del sitio de Oracle sobre la marcha.
# - mirror: Descargar desde la URL definida en 'java_mirror'.
# - local: Copiar desde el directorio `files` del rol o el playbook en la máquina de control.
java_download_from: oracle
# Dependiendo del valor de 'java_download_from', ocurren diferentes cosas aquí:
# - oracle: No necesitas establecerlo. Se completa automáticamente con el espejo de descarga de Oracle.
# - mirror: Debes establecer el espejo desde el cual deseas descargar. Necesitas establecer la URL completa incluyendo el archivo, como en el ejemplo a continuación. Si también deseas el JCE, necesitas establecer 'jce_zip_url' también.
# - local: 'java_mirror' no se usa, por lo tanto, el valor se ignora.
#java_mirror: "https://private-repo.com/java/jdk-8u172-macosx-x64.dmg"
java_mirror: "http://download.oracle.com/otn-pub/java"
# ¿Eliminar archivos descargados temporalmente?
java_remove_download: true
# ¿Establecer $JAVA_HOME?
java_set_java_home: true
# ¿Instalar JCE?
java_install_jce: false
Para otras opciones configurables, lee el archivo tasks/set-role-variables.yml
; por ejemplo, para ver las combinaciones de java_version
/java_subversion
soportadas.
¡Quiero instalar un JDK que aún no soportas!
¡No hay problema! Debes especificar el número de compilación correspondiente en las variables java_build
y jdk_tarball_hash
, además de java_version
y java_subversion
, por ejemplo:
# archivo: playbook.yml
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 141
- java_build: 15
- jdk_tarball_hash: 336fa29ff2bb4ef291e347e091f7f4a7
Licencia
Licenciado bajo la Licencia Apache V2.0. Consulta el archivo LICENSE para más detalles.
Desarrollo
Pruebas
Las pruebas utilizan molecule
. Dado que este rol necesita un JDK de Oracle, los contenedores de prueba de moléculas montarán /tmp/java
, por lo que el JDK se persiste en la máquina local y sigue disponible, cuando el contenedor de prueba ha sido destruido. También puedes precargar el archivo de instalación y colocarlo en /tmp/java
.
Esto ejecutará todo el ciclo de pruebas contra el escenario predeterminado:
molecule test
Si deseas trabajar en una distribución específica, usa algo como esto:
molecule converge --scenario-name opensuse15
Si quieres probar todo, emite:
molecule test --all
Esto tomará un tiempo.
Oracle JDK 8 to 13 for CentOS/Fedora/Debian/Ubuntu/Suse/MacOSX
ansible-galaxy install srsp.oracle-java