fernandrone.ansible_sdkman
Rol de Ansible: fernandrone.ansible_sdkman
Un rol de Ansible que realiza las siguientes funciones:
- Instalar SDKMAN
- Instalar/desinstalar software gestionado por SDKMAN candidatos
- Establecer versiones predeterminadas de SDK
- Gestionar el archivo de configuración de SDKMAN:
/path/to/sdkman/etc/config
- Limpiar las cachés de SDKMAN
Advertencia: Oracle ha dificultado cada vez más la instalación de sus JDK, lo que ha impedido la capacidad de instalarlos a través de SDKMAN. Considera usar OpenJDK en su lugar o instalar/gestionar el JDK de Oracle por otros medios.
Requisitos
Ninguno.
Variables del Rol
Consulta los valores predeterminados para una descripción de cada variable que se puede sobrescribir.
Dependencias
Ninguna.
Ejemplo de Playbook
¡Aquí tienes un ejemplo!
- hosts: servidores
roles:
- rol: fernandrone.ansible_sdkman
sdkman_user: vagrant
sdkman_group: vagrant
sdkman_auto_answer: true
sdkman_update: true
sdkman_uninstall_packages:
- { candidate: groovy, version: 1.8.9 }
sdkman_install_packages:
- { candidate: java, version: 8.0.202-zulu }
- { candidate: gradle, version: '3.5' }
- { candidate: gradle, version: 2.14.1 }
- { candidate: maven, version: 3.5.0 }
- { candidate: maven, version: 3.3.9 }
# Usa esta sintaxis si quieres que SDKMAN reconozca paquetes instalados *sin* SDKMAN, por ejemplo, JDKs de Oracle
- { candidate: java, version: 1.8.0-oracle, localpath: /Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk }
sdkman_defaults:
gradle: '3.5'
maven: 3.3.9
java: 8.0.202-zulu
sdkman_flush_caches_before:
- temp
sdkman_flush_caches_after:
- archives
- broadcast
- candidates
- temp
sdkman_offline_mode: false
sdkman_update_alternatives:
- candidate: java
name: java
link: /usr/bin/java
- candidate: java
name: javac
link: /usr/bin/javac
sdkman_fix_permissions: false
Notas Adicionales
Si deseas omitir cualquier paso que requiera escalación de privilegios (es decir, comandos sudo
), este rol ha etiquetado esas tareas con la etiqueta sdkman_privilege
. Usa la opción --skip-tags
en la línea de comandos con esta etiqueta para omitir cualquier paso que ya haya sido completado por tu administrador del sistema (por ejemplo, instalar paquetes del sistema).
Probar este rol con Alpine Linux ha sido un desafío. Las compilaciones más recientes de JDK (>-11) disponibles a través de SDKMAN no son compatibles con Alpine. En su lugar, se recomienda instalar un JDK/JRE a través del repositorio de paquetes apk
. Dicho esto, actualmente no estoy seguro de qué tan bien funcionan los paquetes de SDKMAN en Alpine. Puede que varíe. Se te ha advertido.
Licencia
Información del Autor
An Ansible role that installs/manages SDKMAN
ansible-galaxy install fernandrone.ansible_sdkman