gilcot.ojdk
Open Java Development Kit
Ce rôle est destiné à gérer le Kit de développement Java Open (OpenJDK) sur la plupart des systèmes d'exploitation.
OpenJDK est une implémentation gratuite et open-source de
la plateforme Java, Édition Standard (J2SE), définie par le
Processus de la communauté Java (JCP).
Il est sous la
Licence Publique Générale GNU version 2 avec exception de liaison et inclut : la machine virtuelle HotSpot
(JVM) et
javac
(compilateur officiel de Sun, pas ECJ,
GCJ,
Jikes, etc.)
Étant donné qu'il s'agit d'une référence, il fournit un dénominateur commun attendu (les autres implémentations peuvent ajouter des classes ou pas seulement J2SE...) Il y a donc quelques différences mineures avec Oracle JDK et aussi dans le modèle de publication et le support payant.
Démarrage
Cette section traite des réglages initiaux pour faire fonctionner le rôle.
Exigences
Ce rôle ne dépend d'aucun autre rôle.
Ce rôle utilise le gestionnaire de paquets natif de la distribution et les dépôts configurés.
Ce rôle fonctionne pour les distributions pour lesquelles il y a une version construite (voir, par exemple, https://wiki.openjdk.java.net/display/Build/Supported+Build+Platforms pour une liste presque complète et à jour). Notez également que les versions disponibles peuvent varier selon la version majeure de votre distribution, et la numérotation diffère également.
v6 | v7 | v8 | v9 | v10 | v11 | v12 | version de la distribution |
---|---|---|---|---|---|---|---|
7 |
8 |
Alpine 3.3 / 3.4 / 3.5 / 3.6 / 3.7 / 3.8 / 3.9 | |||||
7 |
8 |
9 |
Alpine edge | ||||
1.6 .0 |
1.7 .0 |
1.8 .0 |
ALT Linux Sisyphus | ||||
7 |
8 |
10 |
|
Arch Linux | |||
1.6 .0 |
1.7 .0 |
1.8 .0 |
CentOS 6 | ||||
1.6 .0 |
1.7 .0 |
1.8 .0 |
11 |
CentOS 7 | |||
6 |
7 |
Debian 7 (Wheezy) | |||||
7 |
Debian 8 (Jessie) | ||||||
8 |
Debian 9 (Stretch) | ||||||
8 |
11 |
Debian 10 (Buster) | |||||
8 |
11 |
12 |
Debian Sid | ||||
1.8 .0 |
9 |
11 |
... | Fedora 27 / 28 | |||
1.8 .0 |
... | 11 |
... | Fedora 29 / Rawhide | |||
(port) | (+port) |
8 (+port) |
FreeBSD 10 | ||||
(port) | (+port) |
8 (+port) |
11 |
FreeBSD 11 / 12 | |||
1.7 .0 |
Mageia 4.1 | ||||||
1.8 .0 |
Mageia 5.1 / 6.1 / Caudron | ||||||
7 |
8 |
NetBSD 7.0 / 7.1 / 7.2 | |||||
8 |
NetBSD 8.0 | ||||||
1.7 .0 |
1.8 .0 |
9 |
10 |
11 |
12 |
OpenMandriva Cooker | |
1.6 .0 |
1.7 .0 |
OpenMandriva Lx 2013.0 | |||||
1.6 .0 |
1.7 .0 |
1.8 .0 |
OpenMandriva Lx 2014.2 | ||||
1.7 .0 |
1.8 .0 |
OpenMandriva Lx 3.0 | |||||
1_8 _0 |
10 |
11 |
openSUSE Leap 15.0 | ||||
1_7 _0 |
1_8 _0 |
openSUSE Leap 42.3 | |||||
1_8 _0 |
9 |
10 |
11 |
openSUSE Tumbleweed | |||
1.6 .0 |
ROSA 2012.1 / Entreprise Desktop | ||||||
1.7 .0 |
ROSA 2014.1 | ||||||
1.8 .0 |
ROSA 2016.1 | ||||||
(7-)7 |
8 |
Slackware 14.1/14.0/13.37/Current | |||||
6-6 |
(7-)7 |
(8-)8 |
9-9 |
Slackware 14.2 | |||
6 |
7 |
Ubuntu 14.04 LTS (Trusty Thar) | |||||
8 |
9 |
Ubuntu 16.04 LTS (Xenial Xerus) | |||||
8 |
11 |
Ubuntu 18.04 LTS (Bionic Beaver) / 18.10 (Cosmic Cuttlefish) |
Installation
Créez ou ajoutez ces lignes à votre fichier de dépendance des rôles :
- depuis GitHub
- src: http://github.com/gilcot/ansible-ojdk.git
scm: git
version: 1.0.0
name: openjdk
- ou depuis Ansible Galaxy
- src: gilcot.openjdk
version: 1.0.0
name: openjdk
En utilisant ce fichier, installez le rôle sur votre hôte de contrôle :
# $roles est le chemin du dossier des rôles, si vous n'utilisez pas la valeur par défaut
# $specs est le fichier de besoins créé précédemment
# dernière option pour forcer la substitution, utile pour s'assurer du changement de version
ansible-galaxy install -p $roles -r $specs -f
Utilisation
Cette section concerne l'intégration du rôle dans vos playbooks.
Variables
Ce rôle utilise très peu de variables :
ojdk_version
C'est la version du JDK à installer.
Attention, ce n'est ni la version du paquet ni le numéro dans le nom du paquet ! Voir tableau ci-dessus
Cette valeur est obligatoire et doit être un entier.
ojdk_state
C'est l'état souhaité ; et donc c'est obligatoire. Il peut être :
present
pour installer le paquet s'il n'est pas déjà installé,absent
pour supprimer le paquet s'il est encore présent,- toutes les autres valeurs acceptées par le module sous-jacent (par exemple,
latest
pour mettre à jour le paquet à la dernière version disponible.)
ojdk_gpg_uncheck
C'est un booléen (no
/false
ou yes
/true
) utilisé avec certains
gestionnaires de paquets pour désactiver la vérification des signatures/certificats. Cela peut être utile de désactiver cette vérification dans certains cas rares.
ojdk_repository
Ceci est utilisé par quelques gestionnaires de paquets, pour définir un dépôt supplémentaire. Ce format de chaîne (URL ou chemin) et son utilisation dépendent du système d'exploitation.
distribution | obligatoire | utilisé pour |
---|---|---|
AIX | ✓ | chemin avec des paquets AIX (requise pour l'installation) |
Basé sur Debian | ✗ | URL vers un dépôt alternatif où trouver la version OpenJDK souhaitée |
FreeBSD | ✗ | remplacer le répertoire source par défaut (le paquet est construit à partir du source car aucun binaire n'est disponible par défaut) |
HP-UX | ✓ | le dépôt à partir duquel installer ou mettre à jour le paquet |
Mac OSX | ✗ | le chemin absolu vers le fichier du paquet |
OpenBSD | ✗ | remplacer le répertoire source par défaut (le paquet est construit à partir du source car aucun binaire n'est disponible par défaut) |
Basé sur Red Hat | ✗ | URL vers un dépôt alternatif où trouver la version OpenJDK souhaitée |
Solaris | ✓ | emplacement pour installer le paquet (doit être un chemin acceptable pour pkgadd ou un chemin de dépôt valide avec définition trouvée dans /etc/opt/csw/pkgutil.conf ) |
Windows | ✗ | soit le chemin absolu vers le fichier du paquet, soit une URL alternative vers un flux Chocolatey ou un chemin vers un dossier contenant des fichiers .nupkg |
Notez que pour certaines distributions, comme CentOS et Ubuntu, il peut être utile d'ajouter le dépôt (soit manuellement soit via une tâche précédente) avant d'appeler ce rôle. Ce paramètre fait très peu de réglages.
Conditions
Comme il ajoute ou supprime des paquets du système, des privilèges d'escalade sont utilisés et vous devez appeler le rôle en conséquence.
Ce rôle utilise également les faits de la famille d'OS et de la distribution (nom et version majeure). Ainsi, soit autorisez la collecte des faits, soit fournissez-les d'une manière ou d'une autre.
Exemples
Maintenant, vous êtes prêt à l'utiliser dans vos playbooks.
Soyez simplement conscient que les opérations doivent être effectuées en tant qu'utilisateur root (c'est pourquoi l'escalade des privilèges est utilisée dans les exemples suivants).
Pour installer (état par défaut) JDK12 sur mon groupe de servlets :
- hosts: servlets
become: yes
gather_facts: yes
roles:
- { role: openjdk, ojdk_version: 12 }
Pour supprimer JDK5 (exemple à des fins, car cela n'existe pas) sur un hôte fictif :
- hosts: dummy
become: yes
gather_facts: yes
roles:
- { role: openjdk, ojdk_version: 5, ojdk_state: absent }
(le même, en utilisant la syntaxe YAML pure)
- hosts: dummy
become: yes
gather_facts: yes
roles:
- role: openjdk
ojdk_version: 5
ojdk_state: absent
OK, maintenant, si votre inventaire de contrôleur est comme :
[dummies]
dummy
[olders]
foo
bar
[newers]
baz
qix
[servlets:children]
olders
newers
[dummies:vars]
ojdk_version = 5
ojdk_state = absent
[olders:vars]
ojdk_version = 8
[newers:vars]
ojdk_version = 11
[servlets:vars]
ojdk_state = present
Alors votre playbook devient simplement :
- hosts: dummy
become: yes
roles:
- openjdk
Divers
Licence
Ce rôle est copyleft sous la GNU GPLv3 (voir le fichier LICENCE)
Auteurs
gilcot est un fervent défenseur des logiciels libres et jure uniquement par le système Ansible pour les déploiements.