fernandrone.ansible_sdkman

Rôle Ansible : fernandrone.ansible_sdkman

Rôle Galaxy Téléchargements Licence Apache 2.0 État de la construction

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

Apache 2.0

Informations sur l'Auteur

À propos du projet

An Ansible role that installs/manages SDKMAN

Installer
ansible-galaxy install fernandrone.ansible_sdkman
Licence
apache-2.0
Téléchargements
75
Propriétaire
YAML Engineer. Likes Go.