frieder.oraclejdk
ansible-role-oraclejdk
Un rol de Ansible para instalar Oracle JDK.
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 JDKunzip
- 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 |
|
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
ansible-galaxy install frieder.oraclejdk