srsp.oracle-java
srsp.oracle-java für Ansible Galaxy
Zusammenfassung
Rollenname in Ansible Galaxy: srsp.oracle-java
Diese Ansible-Rolle bietet folgende Funktionen im Zusammenhang mit dem Oracle JDK:
- Installation des Oracle JDK in den Versionen 8 bis 13.
- Installation der optionalen Java Cryptography Extensions (JCE). Nur benötigt für JDK-Versionen <= 8u152.
- Installation für die Betriebssysteme CentOS, Debian/Ubuntu, SUSE und macOS.
Diese Rolle basiert auf williamyeh.oracle-java, aber ich wollte aktuellere Java-Versionen und habe entschieden, die Unterstützung für ältere Versionen zu streichen.
Wenn Sie OpenJDK bevorzugen, probieren Sie geerlingguy.java.
Automatischer Download von Oracle
Achtung: Früher konnte diese Rolle alle JDKs direkt von der Oracle-Seite herunterladen. Oracle hat diese Möglichkeit schrittweise eingeschränkt. Jetzt können Sie keine Version des JDK 8 mehr ohne Oracle-Login herunterladen. Für JDK 11 können Sie nur eine ältere Version herunterladen. JDK 13 kann momentan heruntergeladen werden.
Da sich dies jedes Mal ändert, wenn Oracle eine neue Java-Version veröffentlicht, sollten Sie sich nicht darauf verlassen. Ich empfehle, das JDK manuell herunterzuladen und es mit dieser Rolle zu installieren.
Rollenvariablen
Grundlegende Verwendung
Dies wird versuchen, das JDK von Oracle herunterzuladen und zu installieren.
- hosts: all
roles:
- srsp.oracle-java
vars:
# Dies sollten Sie setzen:
- java_version: 13
# Dies können Sie weglassen (die Rolle verwendet dann die neueste bekannte Version):
- java_subversion: 0.2
Beispiele
Manuell heruntergeladenes JDK installieren
Legen Sie die heruntergeladene JDK-Datei für Ihr Zielsystem im Verzeichnis files
ab und setzen Sie java_download_from
auf local
:
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 201
- java_download_from: local
Von Ihrem Mirror installieren
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 172
- java_download_from: mirror
- java_mirror: "http://some.url/in/your/network/jdk-8u172-macosx-x64.dmg"
JDK auf lokalen Rechner herunterladen (pre-fetch)
Wenn Sie das JDK nur auf Ihrem lokalen Rechner haben möchten (z.B. um die Dateien für den Moleculetest zu verwenden oder um es auf Ihren Unternehmens-Intranet-Mirror hochzuladen), können Sie das prefetch.yml
-Playbook in dieser Rolle verwenden:
ansible-playbook prefetch.yml
Passen Sie das Playbook nach Ihren Bedürfnissen an.
Wenn Sie direkt von der Kommandozeile aus arbeiten
ansible-playbook --ask-become-pass playbook.yml
Optionale Variablen
Benutzerkonfigurierbare Standardwerte:
# Java-Version
java_version: 8
# Java-Unterversion
java_subversion: 201
# Ob Java direkt von Oracle heruntergeladen werden soll
# - oracle: Direkt von der Oracle-Website herunterladen.
# - mirror: Von der in 'java_mirror' definierten URL herunterladen.
# - local: Kopiert aus dem Verzeichnis `files` der Rolle oder des Playbooks auf der Steuerungsmaschine.
java_download_from: oracle
# Abhängig vom Wert von 'java_download_from' passieren hier verschiedene Dinge:
# - oracle: Sie müssen es nicht setzen. Es ist mit dem Oracle-Download-Mirror vorausgefüllt.
# - mirror: Sie müssen den Mirror angeben, von dem Sie herunterladen möchten. Sie müssen die vollständige URL einschließlich der Datei angeben, wie im Beispiel unten. Wenn Sie auch das JCE wollen, müssen Sie 'jce_zip_url' ebenfalls setzen.
# - local: 'java_mirror' wird nicht verwendet, daher wird der Wert ignoriert.
#java_mirror: "https://private-repo.com/java/jdk-8u172-macosx-x64.dmg"
java_mirror: "http://download.oracle.com/otn-pub/java"
# Temporär heruntergeladene Dateien entfernen?
java_remove_download: true
# $JAVA_HOME setzen?
java_set_java_home: true
# JCE installieren?
java_install_jce: false
Für andere konfigurierbare Optionen lesen Sie die Datei tasks/set-role-variables.yml
, um beispielsweise die unterstützten Kombinationen von java_version
/java_subversion
zu sehen.
Ich möchte ein JDK installieren, das Sie noch nicht unterstützen!
Kein Problem! Sie müssen die entsprechende Java-Build-Nummer in den Variablen java_build
und jdk_tarball_hash
zusätzlich zu java_version
und java_subversion
angeben, beispielsweise:
# Datei: playbook.yml
- hosts: all
roles:
- srsp.oracle-java
vars:
- java_version: 8
- java_subversion: 141
- java_build: 15
- jdk_tarball_hash: 336fa29ff2bb4ef291e347e091f7f4a7
Lizenz
Lizenziert unter der Apache License V2.0. Siehe die LICENSE-Datei für Einzelheiten.
Entwicklung
Testen
Die Tests verwenden molecule
. Da diese Rolle ein JDK von Oracle benötigt, werden die Molecule-Testcontainer /tmp/java
einhängen, sodass das JDK auf dem lokalen Rechner gespeichert bleibt und auch verfügbar ist, wenn der Testcontainer gelöscht wurde. Sie können auch die Installationsdatei vorladen und nach /tmp/java
legen.
Dies führt den gesamten Testzyklus gegen das Standard-Szenario aus:
molecule test
Wenn Sie an einer bestimmten Distribution arbeiten möchten, verwenden Sie so etwas wie:
molecule converge --scenario-name opensuse15
Wenn Sie alles testen möchten, geben Sie ein:
molecule test --all
Das kann eine Weile dauern.
Oracle JDK 8 to 13 for CentOS/Fedora/Debian/Ubuntu/Suse/MacOSX
ansible-galaxy install srsp.oracle-java