gantsign.sdkman_init
Rol de Ansible: Inicializar SDKMAN
Rol para inicializar SDKMAN, el gestor de kits de desarrollo de software. Este rol permite instalar SDKs específicos como parte de tu provisión de Ansible y establecer qué versiones se deben usar por defecto.
Importante: este rol requiere que SDKMAN ya esté instalado. Puedes usar nuestro rol gantsign.sdkman para instalar SDKMAN.
Requisitos
Ansible >= 2.9
Distribución de Linux
Familia Debian
Debian
- Stretch (9)
- Buster (10)
- Bullseye (11)
Ubuntu
- Bionic (18.04)
- Focal (20.04)
Familia RedHat
Rocky Linux
- 8
Fedora
- 35
Familia SUSE
openSUSE
- 15.3
Nota: otras versiones probablemente funcionen, pero no han sido probadas.
Variables del Rol
Las siguientes variables cambiarán el comportamiento de este rol:
# SDKMAN se inicializa por usuario, por lo que debes especificar al menos un usuario
users:
- username: # Usuario para inicializar SDKMAN
sdkman_install:
- candidate: # Nombre del SDK candidato, por ejemplo, java
version: # Versión del candidato a instalar
path: # Opcional. Para añadir una instalación de SDK existente a SDKMAN.
# La `version` del SDK existente no puede ser la misma que ninguna
# de las que proporciona SDKMAN. La cadena de versión es solo un
# identificador, así que puedes darle cualquier valor que desees (siempre
# que no choque con otras versiones para este candidato).
sdkman_default:
_candidate_sdk_name_here_: # Opcional. Versión por defecto
Ejemplo de Playbooks
Este es un ejemplo de configuración para este rol por sí solo (sin el rol necesario para instalar SDKMAN).
- hosts: servers
roles:
- role: gantsign.sdkman_init
users:
- username: example_username
sdkman_install:
- candidate: java
version: '8.0.181-zulu'
- candidate: java
version: '10'
path: '/opt/java/jdk-10.0.2'
- candidate: maven
version: '3.5.4'
sdkman_default:
java: '10'
maven: '3.5.4'
Este es un ejemplo completo que usa el rol gantsign.sdkman
para instalar SDKMAN. Observa cómo el rol gantsign.sdkman_init
se puede usar más de una vez con etiquetas de Ansible para instalar condicionalmente SDKs específicos.
- hosts: servers
roles:
- role: gantsign.sdkman
sdkman_users:
- example_username
- role: gantsign.sdkman_init
tags:
- java
users:
- username: example_username
sdkman_install:
- candidate: java
version: '8.0.181-zulu'
- candidate: java
version: '10'
path: '/opt/java/jdk-10.0.2'
sdkman_default:
java: '10'
- role: gantsign.sdkman_init
tags:
- java
- maven
users:
- username: example_username
sdkman_install:
- candidate: maven
version: '3.5.4'
sdkman_default:
maven: '3.5.4'
Más Roles de GantSign
Puedes encontrar más roles de GantSign en Ansible Galaxy.
Desarrollo y Pruebas
Este proyecto utiliza Molecule para ayudar en el desarrollo y las pruebas; el rol es probado mediante Testinfra y pytest.
Para desarrollar o probar, necesitarás tener instalados los siguientes:
Debido a que lo anterior puede ser complicado de instalar, este proyecto incluye Molecule Wrapper. Molecule Wrapper es un script de shell que instala Molecule y sus dependencias (aparte de Linux) y luego ejecuta Molecule con el comando que le pases.
Para probar este rol usando Molecule Wrapper, ejecuta el siguiente comando desde la raíz del proyecto:
./moleculew test
Nota: algunas de las dependencias necesitan permiso de sudo
para instalar.
Licencia
Apache 2
Información del Autor
John Freeman
GantSign Ltd.
Número de empresa: 06109112 (registrada en Inglaterra)
Ansible role for initializing the SDKMAN software development kit manager.
ansible-galaxy install gantsign.sdkman_init