frieder.oraclejdk

ansible-role-oraclejdk

Un rol de Ansible para instalar Oracle JDK.

Plataforma Plataforma Plataforma Plataforma Plataforma Plataforma Plataforma

OracleJDK OracleJDK

Resumen

Este rol de Ansible instala Oracle JDK y la Extensión de Criptografía de Java (opcional) en el host objetivo. OpenJDK no es compatible. Ha sido probado con Oracle JDK 8u144/8u151 y JDK 9u181/9.0.1 en las siguientes distribuciones de Linux.

  • Ubuntu 16.04
  • Debian 9
  • RHEL 7.4
  • CentOS 7.3
  • Fedora 26
  • SLE 12 SP2
  • openSUSE 42.2

Dependencias

Ansible >= 2.x (probadó con 2.3.2.0 y 2.4.0.0)

Además, este rol requiere que se instalen los siguientes paquetes en el host objetivo.

  • tar - Siempre necesario para extraer el archivo tar.gz de JDK
  • unzip - Solo necesario si se debe instalar JCE para JDK8

Instalación

Para usar este rol, primero debe descargarse de Ansible Galaxy. Para instalar el rol, ejecute el siguiente comando en su máquina de control de Ansible. Para más información, consulte la documentación oficial.

ansible-galaxy install frieder.oraclejdk

El comando anterior siempre descargará la última versión de Galaxy. Otra opción es descargar el rol desde Github y definir una versión específica para obtener. Esto permite un mejor control sobre qué versión de este rol se va a usar. Crea un requirements.yml y coloca el siguiente contenido en él.

---
- name: frieder.oraclejdk
  src: https://github.com/frieder/ansible-role-oraclejdk
  version: 2.0.0

Luego puedes ejecutar ansible-galaxy install -r ./requirements.yml --ignore-errors y descargará todas las dependencias definidas en esta lista. --ignore-errors se asegurará de que toda la lista se procese incluso si algunas dependencias ya han sido descargadas. Una buena visión general de las posibles entradas para requirements.yml se puede encontrar aquí.

Variables del rol

Todas las variables del rol están definidas en defaults/main.yml. Se pueden sobrescribir estos valores en el playbook (ver ejemplos al final).

Variable Predeterminado Descripción
oraclejdk_license_accept false Al instalar un JDK, esto debe establecerse en true, de lo contrario, el play fallará. No es necesario al eliminar un JDK.
oraclejdk_state present Define si se debe agregar o eliminar un JDK del host objetivo. Los valores posibles son [present,absent].
oraclejdk_cleanup true Eliminar todos los archivos/carpeta temporales (tanto locales como remotos) después de la instalación. Al establecerse en true, esto resultará en plays "cambiados".
oraclejdk_dl_dir /tmp/oraclejdk La carpeta (tanto local como remota) a la que se descargan/copiará/extráerá los archivos.
oraclejdk_home Dependiendo del valor de oraclejdk_state, esta propiedad tendrá diferentes valores. En caso de present tomará un solo string apuntando a la ubicación deseada de JAVA_HOME. En caso de absent tomará una lista de las ubicaciones anteriores de JDK que ahora se deben eliminar. En este caso, proporciona una lista con al menos una entrada.
oraclejdk_profile_file /etc/profile.d/java.sh El archivo en el que el rol establecerá la exportación de JAVA_HOME y PATH.
oraclejdk_cookie Cookie:oraclelicense=accept-securebackup-cookie La cookie requerida para descargas automatizadas desde oracle.com. La verificación de la licencia se realiza con una variable diferente.
oraclejdk_url La URL del archivo JDK, ya sea en oracle.com o en un repositorio corporativo local (recomendado).
oraclejdk_url_user En caso de que se requiera autenticación HTTP simple, se puede proporcionar un nombre de usuario aquí.
oraclejdk_url_pass En caso de que se requiera autenticación HTTP simple, se puede proporcionar una contraseña aquí.
oraclejdk_checksum El checksum SHA256 del archivo JDK. Esto se usa para verificar que el archivo descargado es válido. Para desactivar esta verificación, simplemente proporciona un valor de checksum vacío (oraclejdk_checksum: '').
oraclejdk_sethome true Cuando se establece en true, actualizará la variable global JAVA_HOME para apuntar al directorio de instalación del JDK y añadirá los binarios a la variable PATH. También debes observar la variable oraclejdk_profile_file.
oraclejdk_alternative_upd true Cuando se establece en true, configurará la alternativa para java (update-alternatives --config java) al JDK actual.
oraclejdk_alternative_prio 1 La prioridad utilizada para el comando update-alternatives. El JDK con la prioridad más alta gana.
oraclejdk_alternative_items
  • jar
  • java
  • javac
  • jcmd
  • jconsole
  • jmap
  • jps
  • jstack
  • jstat
  • jstatd
Esta propiedad permite definir qué tipo de alternativas deberían configurarse para el JDK.
oraclejdk_jce_install false Cuando se establece en true, instalará y añadirá la última Extensión de Criptografía de Java (JCE) al JDK. Tenga en cuenta que con JDK9 la fuerza de clave ilimitada está habilitada de forma predeterminada y no se requieren acciones adicionales. Para más información, consulte la lista de correo de seguridad-dev.
oraclejdk_jce_name UnlimitedJCEPolicyJDK8 Solo JDK8. El nombre de la carpeta dentro del archivo JCE.
oraclejdk_jce_url Solo JDK8. La URL del archivo JCE ya sea en oracle.com o en un repositorio corporativo local (recomendado).
oraclejdk_jce_checksum Solo JDK8. El checksum SHA256 del archivo JCE. Para desactivar esta verificación, simplemente proporciona un valor de checksum vacío (oraclejdk_jce_checksum: '').

Ejemplos de Playbooks

A continuación, algunos ejemplos de cómo usar este rol en un playbook de Ansible.

JDK8 y JDK9 juntos, establecer home para JDK8, actualizar alternativas para ambos JDK con diferentes prioridades

- hosts: jdk
  pre_tasks:
  - name: Instalar paquetes requeridos (127.0.0.1)
    delegate_to: 127.0.0.1
    run_once: true
    package:
      name: '{{ item }}'
      state: present
    with_items:
    - tar
    - unzip
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk9.0.1
    oraclejdk_sethome: false
    oraclejdk_alternative_prio: 100
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
    oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk8u151
    oraclejdk_alternative_prio: 200
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
    oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
    oraclejdk_jce_install: true
    oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
    oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'

JDK8 con configuración mínima

- hosts: jdk8
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk8_151
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
    oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'

JDK8 con JCE

- hosts: jdk8
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/java-8-151
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
    oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
    oraclejdk_jce_install: true
    oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
    oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'

Configuración completa de JDK8

- hosts: jdk8
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_cleanup: true
    oraclejdk_dl_dir: /tmp/java_download
    oraclejdk_home: /opt/java/java-8-151
    oraclejdk_sethome: true
    oraclejdk_alternative_upd: true
    oraclejdk_alternative_prio: 123
    oraclejdk_alternative_items:
    - jar
    - java
    - javac
    - jcmd
    - jconsole
    - jmap
    - jps
    - jstack
    - jstat
    - jstatd
    oraclejdk_profile_file: /etc/profile.d/java.sh
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
    oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
    oraclejdk_jce_install: true
    oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
    oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'

JDK9

- hosts: jdk9
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk9.0.1
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
    oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'

JDK9 sin verificación de checksum

- hosts: jdk9
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk9.0.1
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
    oraclejdk_checksum: ''

JDK9 añadir nuevo JDK, eliminar JDKs antiguos

- hosts: jdk9
  roles:
  - role: frieder.oraclejdk
    oraclejdk_license_accept: true
    oraclejdk_home: /opt/java/jdk9.0.1
    oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
    oraclejdk_checksum: ''
  - role: frieder.oraclejdk
    oraclejdk_state: absent
    oraclejdk_home: 
    - /opt/java/jdk9.0.1
    - /opt//opt/java/java-8-151
Acerca del proyecto

Ansible role to install Oracle JDK 8/9

Instalar
ansible-galaxy install frieder.oraclejdk
Licencia
mit
Descargas
113
Propietario