Comcast.sdkman
Rôle Ansible : Comcast.sdkman
Un rôle Ansible qui réalise les fonctions suivantes :
- Installer SDKMAN
- Installer/désinstaller des logiciels gérés par SDKMAN candidats
- Définir les versions par défaut de l'SDK
- Gérer le fichier de configuration SDKMAN :
/path/to/sdkman/etc/config
- Vider les caches SDKMAN
Avertissement : Oracle a rendu l'installation de leurs JDK de plus en plus difficile, ce qui a freiné la possibilité de les installer via SDKMAN. Envisagez d'utiliser OpenJDK à la place ou d'installer/gérer le JDK Oracle par d'autres moyens.
Exigences
Aucune.
Variables de Rôle
Consultez les valeurs par défaut pour une description de chaque variable modifiable.
Dépendances
Aucune.
Exemple de Playbook
Voici un exemple !
- hosts: serveurs
roles:
- role: Comcast.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 conscient des paquets installés *sans* SDKMAN, par exemple les JDK 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
Remarques Supplémentaires
Si vous souhaitez sauter 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 la balise sdkman_privilege
. Passez le drapeau --skip-tags
en ligne de commande avec cette balise pour contourner toute étape qui a peut-être déjà été complétée par votre administrateur système (par exemple, l'installation de paquets système).
Tester ce rôle avec Alpine Linux a été un véritable défi. Les versions récentes de JDK (>-11) disponibles via SDKMAN ne sont pas compatibles avec Alpine. À la place, il est recommandé d'installer un JDK/JRE via le dépôt de paquets apk
. Ceci étant dit, je ne suis actuellement pas sûr de la bonne exécution des paquets SDKMAN sur Alpine. Votre expérience peut varier. Vous avez été prévenu.
Licence
Informations sur l'Auteur
- Elliot Weiser chez Comcast
An Ansible role that installs/manages SDKMAN
ansible-galaxy install Comcast.sdkman