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
  • jar
  • java
  • javac
  • jcmd
  • jconsole
  • jmap
  • jps
  • jstack
  • jstat
  • jstatd
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
Über das Projekt

Ansible role to install Oracle JDK 8/9

Installieren
ansible-galaxy install frieder.oraclejdk
GitHub Repository
Lizenz
mit
Downloads
113
Besitzer