frieder.oraclejdk
ansible-role-oraclejdk
Eine Ansible-Rolle zur Installation des Oracle JDK.
Zusammenfassung
Diese Ansible-Rolle installiert Oracle JDK und die Java Cryptography Extension (optional) auf dem Zielhost. OpenJDK wird nicht unterstützt. Es wurde mit Oracle JDK 8u144/8u151 und JDK 9u181/9.0.1 auf den folgenden Linux-Distributionen getestet.
- Ubuntu 16.04
- Debian 9
- RHEL 7.4
- CentOS 7.3
- Fedora 26
- SLE 12 SP2
- openSUSE 42.2
Abhängigkeiten
Ansible >= 2.x (getestet mit 2.3.2.0 und 2.4.0.0)
Zusätzlich benötigt diese Rolle die folgenden Pakete, die auf dem Zielhost installiert sein müssen.
tar
- Immer erforderlich, um das JDK tar.gz-Archiv zu extrahieren.unzip
- Nur erforderlich, wenn die JCE für JDK8 installiert werden soll.
Installation
Um diese Rolle zu verwenden, muss sie zuerst von Ansible Galaxy heruntergeladen werden. Um die Rolle zu installieren, führen Sie den folgenden Befehl auf Ihrer Ansible-Controller-Maschine aus. Für weitere Informationen lesen Sie bitte die offizielle Dokumentation.
ansible-galaxy install frieder.oraclejdk
Der obige Befehl zieht immer die neueste Version von Galaxy. Eine andere Möglichkeit besteht darin, die Rolle von GitHub herunterzuladen und eine bestimmte Versionsnummer anzugeben. Dies ermöglicht eine bessere Kontrolle darüber, welche Version dieser Rolle verwendet wird. Erstellen Sie eine requirements.yml
und fügen Sie den folgenden Inhalt ein.
---
- name: frieder.oraclejdk
src: https://github.com/frieder/ansible-role-oraclejdk
version: 2.0.0
Anschließend können Sie ansible-galaxy install -r ./requirements.yml --ignore-errors
ausführen, um alle in dieser Liste definierten Abhängigkeiten herunterzuladen. --ignore-errors
stellt sicher, dass die gesamte Liste verarbeitet wird, selbst wenn einige Abhängigkeiten bereits heruntergeladen wurden. Eine gute Übersicht über mögliche Einträge für requirements.yml
finden Sie hier.
Rollenvariablen
Alle Rollenvariablen sind in defaults/main.yml
definiert. Diese Werte können im Playbook überschrieben werden (siehe Beispiele am Ende).
Variable | Standard | Beschreibung |
---|---|---|
oraclejdk_license_accept | false | Bei der Installation eines JDK muss dies auf true gesetzt werden, andernfalls schlägt das Play fehl. Nicht erforderlich beim Entfernen eines JDK. |
oraclejdk_state | present | Definiert, ob ein JDK auf dem Zielhost hinzugefügt oder entfernt werden soll. Mögliche Werte sind [present,absent] . |
oraclejdk_cleanup | true | Entfernt alle temporären Dateien/Ordner (sowohl lokal als auch remote) nach der Installation. Wenn auf true gesetzt, führt dies zu "geänderten" Plays. |
oraclejdk_dl_dir | /tmp/oraclejdk | Der Ordner (sowohl lokal als auch remote), in den die Archive heruntergeladen/kopiert/entpackt werden. |
oraclejdk_home | Abhängig vom Wert von oraclejdk_state hat diese Eigenschaft unterschiedliche Werte. Im Fall von present wird es eine einzelne Zeichenfolge sein, die auf den gewünschten Standort von JAVA_HOME verweist. Im Fall von absent wird es eine Liste früherer JDK-Standorte sein, die jetzt entfernt werden sollten. In diesem Fall geben Sie eine Liste mit mindestens einem Eintrag an. | |
oraclejdk_profile_file | /etc/profile.d/java.sh | Die Datei, in der die Rolle JAVA_HOME und PATH exportiert. |
oraclejdk_cookie | Cookie:oraclelicense=accept-securebackup-cookie | Das Cookie, das für automatisierte Downloads von oracle.com erforderlich ist. Die Lizenzprüfung erfolgt mit einer anderen Variablen. |
oraclejdk_url | Die URL des JDK-Archivs entweder auf oracle.com oder in einem lokalen Unternehmensrepository (empfohlen). | |
oraclejdk_url_user | Falls eine einfache HTTP-Authentifizierung erforderlich ist, kann hier ein Benutzername angegeben werden. | |
oraclejdk_url_pass | Falls eine einfache HTTP-Authentifizierung erforderlich ist, kann hier ein Passwort angegeben werden. | |
oraclejdk_checksum | Die SHA256-Prüfziffer des JDK-Archivs. Dies wird verwendet, um zu überprüfen, ob die heruntergeladene Datei gültig ist. Um diese Überprüfung zu deaktivieren, geben Sie einfach einen leeren Prüfwert an (oraclejdk_checksum: '' ). |
|
oraclejdk_sethome | true | Wenn auf true gesetzt, wird die globale Variable JAVA_HOME auf das Installationsverzeichnis des JDK aktualisiert und die Binärdateien zum PATH hinzugefügt. Siehe auch die Variable oraclejdk_profile_file . |
oraclejdk_alternative_upd | true | Wenn auf true gesetzt, wird die Alternative für Java (update-alternatives --config java ) auf das aktuelle JDK gesetzt. |
oraclejdk_alternative_prio | 1 | Die Priorität, die für den Befehl update-alternatives verwendet wird. Das JDK mit der höchsten Priorität gewinnt. |
oraclejdk_alternative_items |
|
Mit dieser Eigenschaft kann definiert werden, welche Art von Alternativen für das JDK konfiguriert werden sollen. |
oraclejdk_jce_install | false | Wenn auf true gesetzt, wird die neueste Java Cryptography Extension (JCE) zum JDK installiert und hinzugefügt. Bitte beachten Sie, dass bei JDK9 die unbegrenzte Schlüssellänge standardmäßig aktiviert ist und keine zusätzlichen Maßnahmen erforderlich sind. Weitere Informationen finden Sie in der security-dev-Mailingliste. |
oraclejdk_jce_name | UnlimitedJCEPolicyJDK8 | Nur JDK8. Der Name des Ordners im JCE-Archiv. |
oraclejdk_jce_url | Nur JDK8. Die URL des JCE-Archivs entweder auf oracle.com oder in einem lokalen Unternehmensrepository (empfohlen). | |
oraclejdk_jce_checksum | Nur JDK8. Die SHA256-Prüfziffer des JCE-Archivs. Um diese Überprüfung zu deaktivieren, geben Sie einfach einen leeren Prüfwert an (oraclejdk_jce_checksum: '' ). |
Beispiel-Playbooks
Hier sind einige Beispiele, wie man diese Rolle in einem Ansible-Playbook verwendet.
JDK8 & JDK9 zusammen, Home für JDK8 setzen, Alternativen für beide JDKs mit unterschiedlichen Prioritäten aktualisieren
- hosts: jdk
pre_tasks:
- name: Benötigte Pakete installieren (127.0.0.1)
delegate_to: 127.0.0.1
run_once: true
package:
name: '{{ item }}'
state: present
with_items:
- tar
- unzip
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_sethome: false
oraclejdk_alternative_prio: 100
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk8u151
oraclejdk_alternative_prio: 200
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
oraclejdk_jce_install: true
oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'
JDK8 mit minimaler Konfiguration
- hosts: jdk8
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk8_151
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
JDK8 mit JCE
- hosts: jdk8
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/java-8-151
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
oraclejdk_jce_install: true
oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'
JDK8 vollständige Konfiguration
- hosts: jdk8
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_cleanup: true
oraclejdk_dl_dir: /tmp/java_download
oraclejdk_home: /opt/java/java-8-151
oraclejdk_sethome: true
oraclejdk_alternative_upd: true
oraclejdk_alternative_prio: 123
oraclejdk_alternative_items:
- jar
- java
- javac
- jcmd
- jconsole
- jmap
- jps
- jstack
- jstat
- jstatd
oraclejdk_profile_file: /etc/profile.d/java.sh
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/8u151-b12/e758a0de34e24606bca991d704f6dcbf/jdk-8u151-linux-x64.tar.gz'
oraclejdk_checksum: 'sha256:c78200ce409367b296ec39be4427f020e2c585470c4eed01021feada576f027f'
oraclejdk_jce_install: true
oraclejdk_jce_url: 'http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip'
oraclejdk_jce_checksum: 'sha256:f3020a3922efd6626c2fff45695d527f34a8020e938a49292561f18ad1320b59'
JDK9
- hosts: jdk9
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: 'sha256:2cdaf0ff92d0829b510edd883a4ac8322c02f2fc1beae95d048b6716076bc014'
JDK9 ohne Prüfwertprüfung
- hosts: jdk9
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: ''
JDK9 neues JDK hinzufügen, alte JDKs entfernen
- hosts: jdk9
roles:
- role: frieder.oraclejdk
oraclejdk_license_accept: true
oraclejdk_home: /opt/java/jdk9.0.1
oraclejdk_url: 'http://download.oracle.com/otn-pub/java/jdk/9.0.1+11/jdk-9.0.1_linux-x64_bin.tar.gz'
oraclejdk_checksum: ''
- role: frieder.oraclejdk
oraclejdk_state: absent
oraclejdk_home:
- /opt/java/jdk9.0.1
- /opt//opt/java/java-8-151
ansible-galaxy install frieder.oraclejdk