fernandrone.ansible_sdkman
Rôle Ansible : fernandrone.ansible_sdkman
Un rôle Ansible qui effectue les fonctions suivantes :
- Installer SDKMAN
- Installer/désinstaller des logiciels gérés par SDKMAN candidats
- Définir des versions par défaut de SDK
- Gérer le fichier de configuration de SDKMAN :
/path/to/sdkman/etc/config
- Vider les caches de SDKMAN
Avertissement : Oracle a rendu l'installation de leurs JDK de plus en plus difficile, ce qui a nui à la possibilité de les installer via SDKMAN. Envisagez d'utiliser l'OpenJDK à la place ou d'installer/gérer le JDK d'Oracle par d'autres moyens.
Exigences
Aucune.
Variables de Rôle
Voir les valeurs par défaut pour une description de chaque variable modifiable.
Dépendances
Aucune.
Exemple de Playbook
Voici un exemple !
- hôtes: serveurs
rôles:
- rôle: 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 }
# Utilisez cette syntaxe si vous voulez que SDKMAN soit au courant des paquets installés *sans* SDKMAN, par exemple les JDK d'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
Notes Supplémentaires
Si vous voulez ignorer des étapes nécessitant une élévation de privilèges (c'est-à-dire des commandes sudo
), ce rôle a marqué ces tâches avec le tag sdkman_privilege
. Passez le drapeau --skip-tags
en ligne de commande avec ce tag pour contourner toute étape qui pourrait avoir déjà été complétée par votre administrateur système (par exemple, installation de paquets système).
Tester ce rôle avec Alpine Linux a été un défi. Les versions récentes de JDK (>-11) disponibles via SDKMAN ne sont pas compatibles avec Alpine. Il est donc recommandé d'installer un JDK/JRE via le dépôt de paquets apk
. Cela dit, je ne sais pas comment fonctionnent les paquets SDKMAN sur Alpine. Cela peut varier. Vous avez été prévenu.
Licence
Informations sur l'Auteur
An Ansible role that installs/manages SDKMAN
ansible-galaxy install fernandrone.ansible_sdkman